【问题标题】:Google Tag Manager - Data Layer Variable undefinedGoogle 跟踪代码管理器 - 数据层变量未定义
【发布时间】:2016-12-14 14:09:45
【问题描述】:

我想在 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;
}

调试器后面的这个变量只包含“未定义”。

我现在研究了几个小时,但我找不到关于如何做到这一点的简单解释。

【问题讨论】:

    标签: javascript google-tag-manager


    【解决方案1】:

    您不能(或者至少我不相信您可以)在变量中使用自己的名称引用 dataLayer。您需要创建一个 DataLayer 类型变量并使用标准 GTM 变量表示法调用它。

    您的 dataLayer 变量应定义为

    ecommerce.detail.products.0.id
    

    (注意点符号的使用。)

    在您的自定义 JS 变量中,您可以使用双花括号格式调用它:

    function(){
        var art_nr =  {{variableName}};
        return art_nr;
    }
    

    【讨论】:

    • 现在我在调试器中看到了相应的变量,我似乎误导了自己。 ecommerce.detail.products.0.id 确实是正确的,也不需要自定义Javascript,这种表示法可以直接用在变量类型“数据层变量”中。以防万一有人偶然发现这个问题,可能会有所帮助。
    【解决方案2】:

    我会在 Nyuen 中添加您需要选择 dataLayer 的“版本 2”的答案。

    请记住,dataLayer 是专为 GTM 设计的 JavaScript 数组。

    我发现这篇文章:https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/ 很好地解释了 dataLayer 如何与 GTM 一起工作。

    A.

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多