如何使用复杂数组创建GTM数据层变量

时间:2015-11-11 16:46:18

标签: google-tag-manager google-datalayer

在Google跟踪代码管理器中,存在预定义变量类型的“数据层变量”,其中包含变量名称的输入。在标准的单一级别的键/值对中,这很容易。

var dataLayer = [{"mykey":"myvalue"}];

鉴于数据层,您只需使用mykey作为输入到GTM的变量。但是,如果您使用CEDDL规范(http://www.w3.org/2013/12/ceddl-201312.pdf)结构,最终会得到一个深层嵌套的数组:

dataLayer = [
  {
    "product": [
      {
        "category": {
          "primaryCategory": "Auto Loans"
        },
        "productInfo": {
          "productID": "1",
          "productName": "PurchaseLoan",
          "description": "Auto finance loan"
        },
        "security": [
          "Analytics",
          "Personalization",
          "Recommendations"
        ]
      }
    ]
  }
]

所以真正的问题是:如何在上面的示例中访问“productName”的值?

在标准Javascript中,您可以像这样访问它: dataLayer[1].product[0].productInfo.productName 要么 dataLayer.1.product.1.productInfo.productName

...但这些选项都不起作用(有或没有dataLayer.1作为第一个节点)。

这是输入变量名称的UI: enter image description here

1 个答案:

答案 0 :(得分:1)

在GTM中定义DataLayer变量时,不需要在变量名中指定“dataLayer”,即。它应该只是:

product.0.productInfo.productName