Google 跟踪代码管理器 - 数据层变量未定义
Google Tag Manager - Data Layer Variable undefined
我想在 Google 跟踪代码管理器触发器中使用产品 ID 作为标签。
我有一个填充的数据层。
在 Chrome 控制台中我使用
dataLayer[1].ecommerce.detail.products[0].id
我得到一个有效的产品 ID 作为输出。
在 Google 跟踪代码管理器中时,我创建了一个自定义 javascript 变量并尝试:
function(){
var art_nr = dataLayer[1].ecommerce.detail.products[0].id;
return art_nr;
}
此变量稍后在调试器中仅包含 'undefined'。
我研究了几个小时,但我找不到关于如何做到这一点的简单解释。
您不能(或者至少我不相信您可以)在变量中使用它自己的名称来引用 dataLayer。您需要创建一个 DataLayer
类型的变量并使用标准 GTM 变量表示法调用它。
您的数据层变量应定义为
ecommerce.detail.products.0.id
(注意点符号的使用。)
在您的自定义 JS 变量中,您将使用双花括号格式调用它:
function(){
var art_nr = {{variableName}};
return art_nr;
}
我想补充一下 Nyuen 的回答,您需要 select 数据层的 'version 2'。
请记住,dataLayer 是一个 JavaScript 数组,专为 GTM 设计。
我发现这个 post: https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/ 很好地解释了数据层如何与 GTM 一起工作。
一个。
我想在 Google 跟踪代码管理器触发器中使用产品 ID 作为标签。 我有一个填充的数据层。 在 Chrome 控制台中我使用
dataLayer[1].ecommerce.detail.products[0].id
我得到一个有效的产品 ID 作为输出。
在 Google 跟踪代码管理器中时,我创建了一个自定义 javascript 变量并尝试:
function(){
var art_nr = dataLayer[1].ecommerce.detail.products[0].id;
return art_nr;
}
此变量稍后在调试器中仅包含 'undefined'。
我研究了几个小时,但我找不到关于如何做到这一点的简单解释。
您不能(或者至少我不相信您可以)在变量中使用它自己的名称来引用 dataLayer。您需要创建一个 DataLayer
类型的变量并使用标准 GTM 变量表示法调用它。
您的数据层变量应定义为
ecommerce.detail.products.0.id
(注意点符号的使用。)
在您的自定义 JS 变量中,您将使用双花括号格式调用它:
function(){
var art_nr = {{variableName}};
return art_nr;
}
我想补充一下 Nyuen 的回答,您需要 select 数据层的 'version 2'。
请记住,dataLayer 是一个 JavaScript 数组,专为 GTM 设计。
我发现这个 post: https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/ 很好地解释了数据层如何与 GTM 一起工作。
一个。