如何通过 GTM 中的数据层标签动态索引?

How can I dynamically index through datalayer tags in GTM?

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

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

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

我想遍历此数组并将其拆分为三个单独的数组:价格表、skulist 和数量表。目前我预计这样做是因为

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

您需要创建 3 个变量类型的自定义 javascript 函数,从 dataLayer 中选择您需要的值并将其 returns 放入数组中。 像

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

}

希望对您有所帮助:)