【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つの部分に分かれています。