WordPressの管理画面にSSLを利用している場合の、Max A/Bプラグインの不具合について
だいぶ前にWordPressでA/Bテストを行うためのプラグインの紹介をしました。
最近、ウチで管理しているサイトでもこのプラグインを使ってA/Bテストをしようかと考えていたのですが、うまく行かずちょっとハマってしまったので、その対処方法をメモがてら残しておきたいと思います。
問題になるケース
まず、どういう場合にうまく行かなかったかというと、
WordPress HTTPSというプラグインを使って、管理画面にSSLを使用するように設定した状態でMax A/Bの設定を行ったとき、かつ、A/Bテストを行いたいページはSSLではない、という場合です。分かりにくいですね・・。具体的には以下の様な構成とランディングページを用意した場合にこの問題が発生します。
- WordPress管理画面(SSL対応済み)
- A/Bテストしたいランディングページ
- URL: http://example.com/lp/ & http://example.com/lp-2/ (httpsで無いことに注意)
これは使っているSSLのプラグインにもよるのかも知れませんが、Max A/Bの設定後、以下のように表示されたら、おそらく同じ問題が発生すると思います。
(設定方法は以前の記事を見てもらうとして)赤枠で囲った箇所のURLが「https」で始まっています。こうなると、今回説明する対処を行わないとMax A/Bは正常に動作しません。
対処方法
Max A/Bのテーブルのデータを直接編集
します。
まず、MySQLにログインしデータを見てみましょう。テーブル名は「wp_maxab_experiments」です。弊社ではマルチサイトで運用しているので「wp_5_maxab_experiments」となっていますが、適宜読み替えてください。
以下のようにhttpsで登録されていると思います。
mysql> select id, original_url, variation1_url from wp_5_maxab_experiments;
+----+-------------------------+---------------------------+
| id | original_url | variation1_url |
+----+-------------------------+---------------------------+
| 1 | https://example.com/lp/ | https://example.com/lp-2/ |
+----+-------------------------+---------------------------+
これを次のようにUPDATE文で変更します。
mysql> UPDATE wp_5_maxab_experiments SET original_url = 'http://example.com/lp/',
-> variation1_url = 'http://example.com/lp-2/' WHERE id = 1;
もう一度、Max A/Bの設定画面を開いてみます。以下のようにURLが「http」に変更されていればOKです。このあと、ランディングページにアクセスして、以下のようにVisitor, Conversion等の数値が正しく表示されていれば完了です。
ちょっと面倒ですね。当面はこれであまり困らないのでしばらく使ってみようかと思います。もっと良いプラグインが見つかればいいんですが・・。