Google跟踪代码管理器 - 如何避免数据丢失

时间:2013-12-02 13:01:07

标签: google-analytics google-tag-manager

我正在使用Google跟踪代码管理器向Google Analytic注册活动。有一次,我正在更改下拉菜单的更改网址。我想在Google Analytics上跟踪同一事件。我担心如果在GA注册事件之前页面被更改会发生什么。如果GTM中有一项功能可以确保在GA注册事件之前页面没有更改,请告诉我。

以下是将在更改下拉列表时执行的代码

var targetCityChangedEventName = "TargetCityChanged";

$("#location", topHeader).bind({
        "change": function(ev, obj) {
            dataLayer.push({event : targetCityChangedEventName });
            var url = "http://" + window.location.host + "/" + $(this).val();
            window.location = url;
     }
});

2 个答案:

答案 0 :(得分:5)

如果您正在使用ga.js(异步分析),您可以在“高级配置”下的标记模板中设置命中回调(返回功能的宏)并在那里进行重定向(可能您需要单独的分析仅标记更改事件。)

如果您使用通用分析,不久之前在Tag Manager Google Group上进行了讨论,其中Googles Brian Kuhn suggested采用以下方式(我尚未对此进行测试):

  

与此同时,你试过这个吗?

dataLayer.push({callback:
 function() {
     alert(123);   
});
  

然后,创建一个读取“回调”键的dataLayer宏。然后,   使用该宏作为UA标记上“要设置的字段”对的值,   在字段名称“hitCallback”下。

而不是提醒您进行重定向。

如果不清楚,点击回调是一种可以传递给跟踪调用的函数,并在跟踪调用执行后执行。

答案 1 :(得分:0)

我只需插入延迟即可解决同样的问题。 dataLayer.push不需要返回任何内容,因此在dataLayer.push执行的99%的情况下,100毫秒的延迟就足够了。

dataLayer.push({ ... });
setTimeout( function(){ window.location = ...; }, 100 );

请注意,GTM预览/调试模式会出现误报 - 您必须确保您的代码实际被触发,在我的情况下,我的事件是虚拟网页浏览,我可以在RealTime Analytics中看到结果。没有延迟,我可以看到标签没有被解雇。