如何使用复杂数组创建 GTM 数据层变量
How to create GTM data layer variable with complex array
在 Google 跟踪代码管理器中,预定义的变量类型 "Data Layer Variable" 存在,并带有变量名称的输入。在 key/value 对的标准单层中,这很容易。
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输入的变量名:
当您在 GTM 中定义 DataLayer 变量时,您不需要在变量名称中指定 "dataLayer",即。它应该只是:
product.0.productInfo.productName
在 Google 跟踪代码管理器中,预定义的变量类型 "Data Layer Variable" 存在,并带有变量名称的输入。在 key/value 对的标准单层中,这很容易。
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输入的变量名:
当您在 GTM 中定义 DataLayer 变量时,您不需要在变量名称中指定 "dataLayer",即。它应该只是:
product.0.productInfo.productName