将 setTimeOut 添加到 Google Analytics Function



我在链接点击时无法传递Google Analytics参数。似乎问题是在选取参数之前打开了新页面。这会导致 httpfox 中的红线"ns 绑定错误"。

从SO和Google看来,解决方案似乎是使用具有1,000ms延迟的setTimeOut。

在Google-Tag-Manager中,我有以下自定义html:

 <script>
    $('.submit-incident.clearingfix a').click(function(event){
        dataLayer.push({
            'event':'GAevent',  
            'eventCategory': 'Report Submit', 
            'eventAction': 'Link Click', 
            'eventLabel': 'CTA'
        });
    });
</script>

我实际上不确定如何集成 setTimeOut,而不会简单地将整个事情延迟 1 秒。

这行不通。

<script>
    setTimeOut($('.submit-incident.clearingfix a').click(function(event){
        dataLayer.push({
            'event':'GAevent',  
            'eventCategory': 'Report Submit', 
            'eventAction': 'Link Click', 
            'eventLabel': 'CTA'
        });
    });),1000);
</script>

即使它这样做了,对我来说也没有意义。我如何将页面打开延迟一秒钟,以便Google Analytics有足够的时间来获取dataLayer参数?

一种可能的方法:

$('.submit-incident.clearingfix a').click(function(event){
    dataLayer.push({
        'event':'GAevent',  
        'eventCategory': 'Report Submit', 
        'eventAction': 'Link Click', 
        'eventLabel': 'CTA'
    });
    var target = this.href;
    setTimeout(function() { location.assign(target); }, 1000);
    event.preventDefault(); 
});

换句话说,您不是延迟整个事件处理程序的调用(这确实没有意义 - 您只需要等待push通过),而是延迟页面更改过程(设置location.assign调用超时)。

最新更新