30

Google オプティマイズを使用して A/B テストを作成しました。今、現在のexperimentIdとvariationIdをJavascriptで読みたいと思います。私の目標は、与えられたバリエーションに基づいて異なる JavaScript を実行することです。

ドキュメントでこれに関する情報を見つけることができないようです。出来ますか?

4

5 に答える 5

2

これを行うには、次の 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ます。もちろん、それは必要ありませんが、オブジェクトを整理したいだけです:)

于 2021-05-01T16:39:41.647 に答える