Google Analyticsを使用して、同じURLの異なるバージョンでA/Bテストを実行できるかどうかを知りたい。
これまでのところ、xxx1.html
やxxx2.html
などの異なるURLでA/Bテストを実行してから、両方を比較しました。
しかし、私がしたいのは、同じURLを使用してA/Bテストを行うことですが、現在のバージョンと今後のバージョンで行います。それは可能ですか?
これを行うには、コンテンツAPIを使用します。設定するのは少し混乱しますが、このガイドの後にいくつかのヒントがあります: https://developers.google.com/analytics/solutions/experiments-client-side
まず、テンプレートのhead(ish)領域にjavascript/jQueryスクリプトが必要です。 expVers[]
内の各function()
は、実験の変形です。好きなだけ行うことができますが、2つまたは3つが最高のパフォーマンスを発揮し、3つのうちの1つはすぐにGoogleによって重み付けされます(数日)。これは、btnに赤またはオレンジのクラスを追加するための擬似コードです。
<!-- Include the content API snippet above this. The Google hosted snippet can fail for some reasons so I paste it in. -->
<script type="text/javascript">
// Set variants as indices
var getIndex = cxApi.chooseVariation(),
expVers = [
function() {
log = 'Variant 1';
$('.btn').addClass('red');
},
function() {
log = 'Variant 2';
$('.btn').addClass('orange');
}
];
</script>
これらは定義されているので、DOMがロードされた後にユーザーの変更を実際にトリガーする必要があります。これは少し簡単です。フッターのように下に配置してください。
<script type="text/javascript">
// Trigger and show variant to user
$(function() {
expVers[getIndex]();
console.log(log);
});
</script>
今、ガイドが実際に話していないことを考慮する3つのことがあります。
1)過去の実験を削除することはできません(分析APIを使用せずに)。そのため、メインプロパティでテストする代わりに、テストする新しいプロパティを作成します。テスト用、失敗用などの実験でメインプロパティをジャンクしたくありません。
2)IPがGoogleアナリティクスフィルターによって無視されていることを確認してください。無視されると、テストで結果が失われる可能性があります。これらの実験はCookieベースです。そのため、テストするときに、GA Cookieを削除して更新することで、切り替えバリアントまたは重み付けをテストできます。または このメソッドを使用する場合 、クエリ文字列を実行して、テスト中に表示するバリアントを「強制」することができます。また、上記のスニペットにはロギングがあります。これは、わかりにくいかもしれないより曖昧な、または「内部」の変更など、さまざまな理由で重要です。 F12(クロムインスペクター)を押して、コンソールタブを押します。起動されたバリアント、またはログに追加するその他の情報が表示されます。
3)この実験はクライアント側であるため、ページとしてしばらくの間 FOUC の状況が発生する可能性があります少なくとも1つのバリアントプールの最初のロード。つまり、3つのボタンの色をテストしているということです。デフォルトでは青であり、赤とオレンジのバリアントもテストするための実験を実行しています。そのため、ユーザーがヒットすると、青いボタンが一瞬表示され、JSが起動してそれらを赤またはオレンジに変更します。これは、DOMの準備が整うまでの遅延が原因で発生します(JSは、DOMの前に実行されないようです)。
JSが読み込まれて表示されるまで、CSSでボタンを非表示にしたり、読み込みオーバーレイを作成するなど、これを処理するさまざまな方法があります。各インスタンス/サイト/テーマには、FOUCやちらつきなどを避けるために、これを「光沢化」するさまざまな方法が必要な場合があります。わずかな変更であれば、おそらく一緒に生きることができます。実験の結果にわずかに影響を与える可能性があります。たとえば、ちらつきのロゴを考えてください。または、JSが起動する前に非常に遅い接続を使用しているユーザーに大きな遅延が発生する場合があります。
はい。
1つの方法は、コンテンツエクスペリメントAPIを使用することです: https://developers.google.com/analytics/solutions/experiments-client-side 。基本的には、Javascriptを使用してバリエーションを作成し、APIに表示するページを通知させます。 JSに慣れているなら、これがあなたの行きたい方法のようです。
もちろん、Optimizely、VWO、Unbounceなど、そのプロセスのほとんどを処理できる他のサービスがあるため、JSを記述する必要はありません。ただし、すべての人が特定の状況で機能するとは限りません。
代替方法
私の場合、サーバー側のアプリケーションがA/Bの提供を処理し、それらは別個のテンプレートでした。変更のためにDOMを操作するためにJavaScriptを使用したくないのですが、選択された回答に記載されているように、FOUCの状況に苦しんでいます。
「ページビュー」を送信した後、Googleアナリティクスにカスタムイベントを送信しました。
まず、カスタムイベントをGoogleアナリティクスに送信します
// For an "A" visitor:
ga('send', 'pageview');
ga('send', 'event', 'Visitor Variant', 'A', '', { nonInteraction: true });
// and for a "B" visitor:
ga('send', 'pageview');
ga('send', 'event', 'Visitor Variant', 'B', '', { nonInteraction: true });
「nonInteraction」フラグが必要です。そうでない場合、このイベントは2番目のページビューとしてカウントされ、すべての訪問者の直帰率を人為的に0%に減らします。
その後、セグメントを介してGoogleアナリティクスのA/Bを比較
レポートを作成するには、「訪問者バリアント」の「イベントカテゴリ」と「A」または「B」の「イベントアクション」を使用して、Googleアナリティクスでセグメントを作成します。 「Visitor Variant」、「A」、「B」のラベルはすべてカスタムであり、上記のJavaScriptとGoogleアナリティクスで一致すれば、好きなように変更できます。
免責事項
これはおそらく、Googleアナリティクスのカスタムイベントの標準的な使用法ではありませんが、私にとってはうまくいきました。