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 一起工作。

一个。