サイトのクリック率やコンバージョン率を向上させるために、改善と効果測定は欠かせません。効果測定の有名な手法のひとつにABスプリットテストがあります。今回は僕がメインで使っているASP「A8.net」とサイト作成ツール「SIRIUS」の組み合わせでABスプリットテストを実装したので、その方法をシェアします。
ABスプリットテストとは
ABスプリットテストは複数のデザインや文章を用意し、時期に左右されないように閲覧者を分散させることで、どちらのデザインが効果的かを調べる手法です。多くの企業がABスプリットテストで広告を改善しています。前回のアメリカ大統領選挙でABスプリットテストが使用され、大きな話題になりましたね。
やりたいこと
- インプレッション数、クリック数、売上を計測したい
- ランダムではなく時間帯で振り分けたい
- 既存のABスプリットテストサービスは利用したくない
- Google Analyticsは使いたくない
今回ABスプリットテストをやるために方法を調べてみたところ、既存サービスやGoogle Analyticsを利用する方法ばかりがヒットしました。しかし既存サービスは使い方が複雑(やりたいことはシンプルなのに機能が多すぎ)ですし、Google AnalyticsはSEOアフィリエイターとして使いたくありませんでした。
そこで今回は自分で実装することにしました。最初はJavascriptでどうにかしようと思ったのですが、友人のアドバイスでPHPを使うことに決めました。つまり今回は、「トップページのファイル形式をindex.htmlではなくindex.phpに変更する」という妥協をしています。
僕は自演リンクを「http://www.example.com/」のように張っているため、ファイル形式をhtmlからphpに変更しても検索順位に影響はないはずです。もしも「http://www.example.com/index.html」にリンクを張っている方は、今回の手法は使わないようにご注意ください。
なお、今回のやり方はA8.netの利用規約に違反している可能性があります。自己責任でお願いします。あと僕はPHPに関して素人同然なので「動けばいいや」くらいの感覚で作成しています。一応動作確認はしていますが、何か不具合があるかもしれません。
ABスプリットテストの振り分け条件
- 30分毎にトップページAとトップページBに振り分ける
- トップページA、トップページB、その他のページの3種類で効果測定する
30分毎なら時期にほとんど左右されないのではないかと思います。もしかしたらどちらかのアクセス数が大きくなってしまうかもしれませんが、少なくとも月初、中旬、月末などには影響されません。また、今回のABスプリットテストはトップページのデザインだけを効果測定します。だからトップページ以外の数値は別カウントします。
1) index.phpを作成する
index.phpを作成し、中身は以下のように記述します。
<?php $minutes = (int)date('i'); echo '<?xml version="1.0" encoding="Shift_JIS"?>'; if($minutes < 30) { include("./indexa.html"); } else { include("./indexb.html"); } ?>
最初に現在の時刻(何分か)を取得しています。次はエラー回避のおまじないです。意味は後述します。そして0~29分だったらindexa.htmlの内容を表示し、30~59分だったらindexb.htmlの内容を表示します。リダイレクトではないので常にindex.phpのURLを維持します。
ファイル保存時の文字コードに注意してください。SIRIUSはデフォルトでSHIFT_JISです。
2) A8.netで効果測定用のサイトを登録する
ABスプリットテストの効果測定はA8.netの管理画面で確認します。そのためにトップページA用とトップページB用のサイトを登録します。僕は過去に登録して、全然報酬が発生していないサイトを2つ選びました。以下の画像のように名前をわかりやすく修正しました。
ここがA8.netの利用規約に違反している可能性がある部分です。念のため即時提携のプログラムだけ選んでABスプリットテストすることにしました。
3) ボタン画像を2種類用意する
ABスプリットテストは一度に1つの変更のみを計測するのが基本です。バナーやレイアウト、文言などを同時に変更してしまうと、効果測定してもどれが良かったのか判断することはできません。そこで今回はボタンの文言を変えることにしました。
アフィリエイトリンクを踏ませるためのボタンの文言を2種類用意します。1つは「◯◯◯の詳細はこちら」、もう1つは「◯◯◯公式サイト」です。SIRIUSでそれぞれのボタン画像を作成しましょう。
4) indexa.htmlとindexb.htmlを用意する
FTPソフトで既存のindex.htmlをダウンロードします。index.htmlをコピーして、indexa.htmlとindexb.htmlを作成します。先程作成したボタン画像に差し替えます。同時にA8.netで作成した効果測定用サイトのアフィリエイトリンクに修正します。
まとめるとこうなります。
ファイル名 | indexa.html | indexb.html |
ボタンの文言 | ◯◯◯の詳細はこちら | ◯◯◯公式サイト |
表示時間帯 | 0~29分 | 30~59分 |
A8.netの「掲載サイト」 | サイトA | サイトB |
最後に以下の1行目のコードを削除します。この1行を残したままだとエラーが発生してページが表示されないのでご注意ください。
<?xml version="1.0" encoding="Shift_JIS"?>
5) .htaccessを修正する
SIRIUSはデフォルトで「http://www.example.com/」にアクセスするとindex.htmlを表示する設定になっています。このままではindex.phpが表示されないため、.htaccessを修正します。
FTPクライアントで.htaccessをダウンロードし、テキストファイルで開きます。そこに以下のコードを挿入します。
DirectoryIndex index.php index.html
index.phpを優先して表示し、もしもindex.phpがなかったらindex.htmlを表示するという設定です。別にindex.htmlはいらないのですが、念のため残しています。
6) スマートフォン用の設定
SIRIUS上位版はスマートフォン用のHTMLを出力し、デバイスによって自動的に振り分けてくれます。このままではスマートフォンからアクセスすると404 NOT FOUNDになってしまいます。そこでスマートフォンからのアクセスにも対応しなければなりません。
対応は2つあります。
a) スマートフォン用のページも2種類用意し、しっかり振り分ける
b) スマートフォン用の表示をやめる
aの場合は「iphone」フォルダ内にもindex.php、indexa.html、indexb.htmlを準備しましょう。僕はbにしました。.htaccessのスマートフォン用振り分けコードを削除すればOKです。
7) アップロード&動作確認
index.php、indexa.html、indexb.html、.htaccessをアップロードします。すぐにブラウザとスマートフォンからアクセスし、きちんとサイトが表示されるか確認してください。いきなりindex.phpを書き換えるのは怖いので、僕はhoge.phpというテストページをアップロードし、動作確認をしてからファイル名をindex.phpに修正しました。
30分毎にボタン画像が切り替わっているかもチェックします。そして次の日にA8.netの管理画面を見て、ABスプリットテストの結果を確認します。最低でも2週間くらい続けたほうが正しく効果測定できるはずです。是非お試しください。
Twitterでも体験談をつぶやいています。宜しければフォローお願いします。
@uenon999をフォロー
参考になったと感じたらソーシャルメディアで共有お願いします!