Google跟踪代码管理器 - 数据层变量未定义

时间:2016-12-14 14:09:45

标签: javascript google-tag-manager

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

这个变量稍后在debuger中只包含'undefined'。

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

2 个答案:

答案 0 :(得分:3)

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

您的dataLayer变量应定义为

ecommerce.detail.products.0.id

(注意点符号的使用。)

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

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

答案 1 :(得分:0)

我向Nyuen回答说你需要选择'版本2' dataLayer。

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

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

一个。