如何在GTM中动态索引数据层标签?

时间:2016-11-15 20:59:58

标签: javascript arrays wordpress google-tag-manager

我正在使用DuracellTomi数据层插件将购物车数据从woocommerce推送到GTM模型来处理一些跟踪。

DuracellTomi插件以下列格式将内容推送到transactionProducts []数组:

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

我想循环遍历这个数组并将其拆分为三个独立的数组,即价格表,skulist和quantitylist。目前我预计这样做会有一些变化

  //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变量,而是使用。格式。)

1 个答案:

答案 0 :(得分: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

}

希望这有助于你:)