2016-11-15 3 views
0

DuracellTomiデータレイヤープラグインを使用して、woocommerceのカートデータをGTMモデルにプッシュして、トラッキングを処理しています。GTMでデータレイヤーのタグを動的にインデックスできますか?

DuracellTomiプラグインは次の形式でtransactionProducts []配列にコンテンツプッシュ:私はこの配列をループしたいと3つの別々のアレイ、料金表、skulist、及びquantitylistにそれをばらししたい

transactionProducts: Array[1] 
0 : Object 
category:"" 
currency:"USD" 
id:8 
name:"Test" 
price:100 
quantity:"1" 
sku:8 

。現在、私は

//Get Product Information 
    if(stack = {{transactionProducts}}){ 
    for(i = 0; i < stack.length; i++) { 
     if(stack.i.sku){ 
      skulisttemp.i = stack.i.sku; 
      } 
     if(stack.i.price){ 
      pricelisttemp.i = stack.i.price; 
      } 
     if(stack.i.sku){ 
      quantitylisttemp.i = stack.i.quantity; 
      } 
     } 
    {{skulist}} = skulisttemp; 
    {{pricelist}} = pricelisttemp; 
    {{quantitylist}} = quantitylisttemp; 

    } 

明らかにこれが原因でタグの参照が設定されているかの仕事に行くのではなく、誰もこれに対処し、どのような最善の方法を知っている場合、私は思ったんだけど上のいくつかのバリエーションとして、そう予想しますこれらの配列を通じてインデックスを作成することができます。 (知らない人には、大括弧で囲まれた配列の呼び出しはGTM変数では機能しません)。

+0

あなたの最後の文は、空中で終わります。カスタムHTMLタグで純粋なJavascriptを使用する方が効率的かもしれない状況があります(GTM変数の評価は高価な操作です)が、不完全な文では分かりにくいです。どのような場合でも、変数を割り当てることはできません。datalayer.pushを使用する必要があります。 –

答えて

0

3つの変数型カスタムjavascript関数を作成して、必要なものを選択する必要があります値をdataLayerから取得し、配列に返します。

function(){ 
var products = {{transactionProducts}}; 
var skuArray = []; 
for(i = 0; i < products.length; i++) { 
    if(products[i].sku){ 
     skuArray.push(products[i].sku) 
    } 
} 
return skuArray 

}

希望このような 何かがあなたを助けた:)

+0

これは私がやったこととほぼ同じです。お返事をありがとうございます。変数をカスタムhtmlに分割すると、実際に役立ちます。 – itchyspacesuit

関連する問題