Google跟踪代码管理器 - 在初始加载后推送事件无效

时间:2016-10-26 14:41:16

标签: javascript google-tag-manager

在我们的应用程序上实施了Google跟踪代码管理器,并且初始页面加载工作正常,如Tag Assistant的下图所示。

enter image description here

现在看起来似乎是3秒之后,没有进一步推动dataLayer变量被跟踪。

标题中我的初始dataLayer和Tag Manager代码。

<script>dataLayer = [];</script>
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-####" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-######');</script>

以下是'timed#'事件的调试代码。

var count = 1;

setInterval(function() {
    console.log(count);

    dataLayer.push({
        'event': 'timed' + count,
        'test': count
    });

    count++;
}, 5000);

这是在控制台中按预期连续循环,但它似乎只向Tag Manager添加了一个事件。

搜索了各种文档和其他问题,但只能找到根本不起作用的情况。虽然这似乎只适用于最初的捕获。

是否有一些可能错过的设置?

1 个答案:

答案 0 :(得分:0)

假设您有自定义HTML标记,并且内容是提供的,那么您需要做的就是在函数周围添加:

<script>
var count = 1;

setInterval(function() {
    console.log(count);

    dataLayer.push({
        'event': 'timed' + count,
        'test': count
    });

    count++;
}, 5000);

</script>

我测试了它并且使用脚本它会像你期望的那样触发它。这是因为它是一个自定义HTML标记,而不是Javascript标记,因此您需要声明内容是Javascript。