1

我在 GTM(谷歌标签管理器)中创建了以下标签:

(function(window) {
    if (typeof(dataLayer[dataLayer.length-1].count) !== "undefined"){
        dataLayer.push({'count':dataLayer[dataLayer.length-1].count+1});
    } else {
        dataLayer.push({'count':1});
    }
})(window);

最初,当没有 "count" 推送到 dataLayer 时,if 语句返回 false 并推送 { "count" : 1}。之后 count 的值应该随着每次推送而增加。我的目标只是计算某个按钮的点击次数。

但是,似乎“if”语句从未经过验证,因此每次单击按钮都会导致将“0”-s 推送到 dataLayer。我知道这不是最好的解决方案,但我仍然无法找出为什么这不起作用。顺便说一句,当我在浏览器控制台中运行此代码时它正在工作。

4

1 回答 1

0

我不得不使用dataLayer.length-2而不是dataLayer.length-1访问count. 这是由于 GTM 在每次点击事件后将 gtm.click 推送到 dataLayer 造成的

于 2017-05-03T12:51:04.343 回答