1

我无法在链接点击时传递 Google Analytics 参数。似乎问题是在参数被拾取之前打开了新页面。这会导致 httpfox "ns binding error" 出现红线。

从 SO 和 Google 看来,解决方案是使用延迟 1,000 毫秒的 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 参数?

4

1 回答 1

2

一种可能的方法:

$('.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调用超时)。

于 2013-09-12T23:19:57.950 回答