Google Analyticsのカスタム変数でABテストしてみる
UIの変更なんかをする時に使われるABテストがカスタム変数を使うと簡単に出来たのでメモ。
タイプの振り分け
まずはPHPでユーザーをAタイプ、Bタイプに振り分ける
<?php if(isset($_COOKIE['type']) && $_COOKIE['type']){ $type = $_COOKIE['type']; }else{ $type = (rand(0, 1) == 0) ? 'a' : 'b'; setcookie('type', $type, strtotime('+7day'), '/'); } ?>
どっちのタイプに振り分けたかをCookieに保存することで途中で違うタイプに変わらないようにする。
あとは$typeの内容を見て表示を切り替えれば、ユーザーを振り分けることが出来る。
カスタム変数の定義
振り分けたタイプをGoogle Analytics側に通知するためにカスタム変数を使う。
<script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-xxxx");//自分のトラッキングコードを設定 pageTracker._setCustomVar(1, "user_type", "<?php echo $type ?>", 1); pageTracker._trackPageview(); } catch(err) {}</script>
カスタム変数を定義してるのが_setCustomVarという部分。
一つ目の引数はカスタム変数のインデックスとして1〜5まで設定出来るのでとりあえず1を設定。
既に使われているならかぶらないようにした方が良いかも。
二つ目の引数は変数名なので今回はざっくりとuser_typeと設定してみた。
三つ目の引数は変数の値なので、ここにuser_typeがAタイプなのかBタイプなのかを設定する。
四つ目の引数はスコープ。
ちょっとわかりにくいけど、ABテストみたいにAタイプのユーザーが途中でBタイプになったりすると困るような場合はCookieに設定してくれるビジターレベルの1を設定した方が良いかも。
セッション単位で値が変わって良いものならセッションレベルの2を設定するみたい。
結果をGoogle Analytics側で確認
メニューからアドバンスセグメントを選んで、アドバンスセグメントを新規作成する。
ディメンション>カスタム変数(キー1)を追加して値にuser_typeと入力。
「And」ステートメントを追加で、ディメンション>カスタム変数(値1)を追加して値にaと入力し、セグメント名をAタイプにして保存すると、Aタイプのユーザーだけ絞り込める。
同じようにカスタム変数(値1)にbと入力したセグメントを作ればBタイプのユーザーを絞り込める。
※_setCustomVarで設定したインデックスに対応しているため、インデックスを2にしてる場合はキー2、値2の組み合わせで作成する