2016-11-15 1 views
0

Ich benutze das DuracellTomi Datalayer-Plugin, um Einkaufswagendaten von woocommerce in ein GTM-Modell zu übertragen, um ein Tracking zu verarbeiten.Wie kann ich dynamische DataLayer-Tags in GTM dynamisch indizieren?

Der DuracellTomi Plugin schiebt Inhalte an die transactionProducts [] Array in dem folgenden Format:

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

möchte ich durch dieses Array-Schleife und entstapeln sie in drei separate Arrays, Preisliste, skulist und quantitylist . Derzeit antizipieren tue ich, um etwas Veränderung auf

//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; 

    } 

Offensichtlich ist dies nicht, weil, wie die Tag-Referenzierung zur Arbeit zu gehen eingerichtet ist, aber ich frage mich, ob jemand mit diesem behandelt hat und weiß, was den besten Weg, Indexierung durch diese Arrays könnte sein. (Für diejenigen, die nicht wissen, funktioniert die quadratische Klammer Array-Aufruf nicht mit GTM-Variablen und stattdessen die. Format wird stattdessen verwendet.)

+0

Ihr letzter Satz endet in der Luft. Es gibt Situationen, in denen es effizienter ist, reines Javascript in einem benutzerdefinierten HTML-Tag zu verwenden (das Bewerten von GTM-Variablen ist eine teure Operation), aber es ist schwer mit diesem unvollständigen Satz zu sagen. In jedem Fall können Sie keine Variablen auf diese Weise zuweisen, Sie müssten eine Datenschicht.push verwenden. –

Antwort

0

Sie müssten 3 variable Art benutzerdefinierte Javascript-Funktion, die Ihre benötigt Wert von dataLayer und gibt es in einem Array zurück. So etwas wie

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

}

Hoffnung dies hilft Sie :)

+0

Das ist fast genau das, was ich getan habe. Vielen Dank für Ihre Antwort. Das Aufteilen der Variablen in benutzerdefiniertes HTML hilft wirklich. – itchyspacesuit

Verwandte Themen