_gaq.push(Google Analytics)真的是异步的吗?

时间:2011-06-20 22:01:47

标签: google-analytics

根据documentation,Google Analytics异步跟踪代码是“异步”的,因为您可以在加载ga.js之前将push个项目添加到_gaq数组。加载后,会立即执行push次调用:

  

此时,_gaq不再是一个   数组,但[分析]对象,和   即时执行跟踪   方法是可能的。

这是否意味着在onclick中调用push(在加载ga.js之后)可以阻止我的其他代码,直到调用完成?还是真的异步?在这种情况下,可以导航离开我的网页,阻止调用push完成?

2 个答案:

答案 0 :(得分:1)

我可以确认导航离开该页面会阻止Google Analytics跟踪任何内容。可能的解决方法是使用target="_blank"在空白窗口中打开目标页面,或将_gaq.push调用包装在等待onload跟踪gif的自定义函数中。后者在响应用户点击之前导致延迟,这可能在高延迟网络(例如移动设备)上变得更加重要。

答案 1 :(得分:0)

我找到了unobfuscated version of ga.js。使用未添加到DOM的图像对象将跟踪信息发送给Google。处理程序被添加到图像的onload事件中。基于此,我不相信调用push会阻塞我的代码(至少不会长时间),并且无论在onload中做什么都将是异步的。这意味着离开页面可能会阻止我的某些分析跟踪被记录。如果有人能证实这些事情,我会将你的答案标记为正确。