Google オプティマイズを使用して A/B テストを作成しました。今、現在のexperimentIdとvariationIdをJavascriptで読みたいと思います。私の目標は、与えられたバリエーションに基づいて異なる JavaScript を実行することです。
ドキュメントでこれに関する情報を見つけることができないようです。出来ますか?
Google オプティマイズを使用して A/B テストを作成しました。今、現在のexperimentIdとvariationIdをJavascriptで読みたいと思います。私の目標は、与えられたバリエーションに基づいて異なる JavaScript を実行することです。
ドキュメントでこれに関する情報を見つけることができないようです。出来ますか?
これを行うには、次の 3 つの方法があります。
1) Google アナリティクスの設定に応じて、Chrome コンソールから次のオブジェクトにアクセスし、GA プロパティ ID を渡すことができます。
Object.keys(window.gaData["YOUR-GA-PROPERTY ID"].experiments).forEach(function(key, index){
var value = window.gaData["YOUR-GA-PROPERTY ID"].experiments[key];
console.log("Info", key, value, index);
});
2) 誰かがすでに指摘しているように、_gaexp
実験 ID とバリアント番号を保存する Cookie にアクセスできます。
//READ THE COOKIE
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
};
// GET THE COOKIE
let getCookie = readCookie("_gaexp");
console.log('getCookie', getCookie);
// WILL RETURN A STRING IN THIS FORMAT
// GAX1.2.YOUREXPERIMENTID.18803.0
// The long number in the middle is your experiment ID
// The number at the end is your variant number (0)
// SPLIT THE COOKIE
let splitCookie = readCookie("_gaexp").split("!");
// SPLIT THE COOKIE SO YOU CAN ACCESS THE EXPERIMENT ID AND VARIANT NUMBER
3) そして最後に、あなたのdataLayer
.
やや面倒な方法ですが、オプティマイズ 360 では、各バリアントに JavaScript を追加できます (AB テスト/バリアントを編集する場合)。また、実験 ID とその他の情報を dataLayer に送信します。
例えば:
function returnDate() {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
return today;
}
var dateToday = returnDate();
var ABTest = {
id: 'YOUREXPERIMENTID',
name: 'Title of your test',
description: 'Test description',
date: dateToday, //The launch date of AB Test.
variant: 1,
totalVariants: 5
};
// AND THEN PUSH ALL THAT INFORMATION INTO THE DATALAYER
dataLayer.Tests.push(ABTest);
そのすべての情報にアクセスするには、window.dataLayer
オブジェクトにアクセスするだけです。
Googleタグマネージャーをどのように使用したか、に「Test」キーを追加しdataLayer.Tests
ます。もちろん、それは必要ありませんが、オブジェクトを整理したいだけです:)