【FAQ】サンクス(完了)ページで、テスト対象ページのどのパターンを見たか知りたい
QUESTION:
テスト対象ページを経由して到達したサンクス(完了)ページにて、テスト対象ページで表示されたパターンを知る方法はありますか。
ANSWER:
VWOのCookieの一つ、_vis_opt_exp_EXPERIMENT_ID_combi の値で判断できます。この記事では、VWOのプレキャンペーンJS機能を使って、クッキーの値をJavaScript変数に格納する方法をご紹介します。
クッキーの値を参照する
ユーザーがキャンペーンの対象になった際、_vis_opt_exp_EXPERIMENT_ID_combiというクッキーが設定されます。そのクッキーの値は1から始まり、1=コントロールが表示された、2=バリエーション1が表示された、3=バリエーション2が表示された、4=バリエーション3が表示された... ことを示します。
例)画像中の _vis_opt_exp_5_combi の値は 1 で、キャンペーンID 5 で コントロールが表示されたことを示しています。
ユーザーがテスト対象ページにいおいて、どのパターンが見たか、この_vis_opt_exp_EXPERIMENT_ID_combi の値から判断できます。サンクス(完了)ページにクッキーの値を読み込んで変数に格納するロジックを直接追加することもできますが、ここではVWOで追加する方法をご紹介します。
プレキャンペーンJSコードの利用
VWOからクッキーの値を読み込んでJS変数に格納するロジックを追加するには、コードエディタを利用します。このロジックを追加したいのはサンクス(完了)ページですので、プレキャンペーンJSで設定します。プレキャンペーンJSは、テスト対象以外のURL(ゴールページなど)の編集、JSコードの発火に利用できます。
※ サンクス(完了)ページは該当キャンペーンのゴールとして設定されている事が前提です。
//完了ページの場合のみ、クッキーの値を変数に格納
if(/complete/.test(document.URL)) {
var variation = getCookie('_vis_opt_exp_EXPERIMENT_ID_combi');
}
//指定されたクッキーの値を返す関数
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
上記例のコードは2つの部分に分かれています。
正規表現でコードが発火するページを限定した上で、指定したクッキーの値を返す関数を呼び出し、その結果をJS変数に格納する
この例では、complete という語句がページURLに含まれる場合、という条件で適用ページをサンクス(完了)ページに限定しています。適切な条件に書き換えてご利用ください。
条件に当てはまる場合、クッキーの値を読み込む関数 getCookie() を呼び出し、その結果をJS変数 variation に格納します。このJS変数はその後、他のJSコードで参照することが可能になります。
クッキーの値を返す getCookie() 関数
引数として取得したいクッキー名を指定すると、その値を返します。