谷歌分析trackEvent如何运作?

时间:2012-08-27 17:28:44

标签: javascript google-analytics

我试图了解这是如何工作的:

_gaq = _gaq || [];

_gaq.push(['trackEvent', 'something', 'bleee']);

好的,所以我明白了,我正在将数据推入一些魔术阵列。但谷歌的剧本如何知道我这样做了?它必须要么轮询这个数组(不太可能),要么当用户离开页面时它会对它做一些事情。

我发现在离开页面时发出请求通常会导致连接在请求完成之前关闭。

有人可以向我解释这个魔法是如何起作用的吗?

2 个答案:

答案 0 :(得分:5)

Google使用自定义.push()方法创建了自己的对象。因此,当你将某些东西推到“数组”上时,它会激活更多代码(一个函数)来创建跟踪像素和wallah。

Google这样做,以便在G.A.之前尝试使用_gaq数组的推送方法。片段已被评估,您只是创建一个命令队列以发送给Google(在标准数组中)。如果G.A.片段已经过评估,然后您实际上正在运行Google创建的自定义函数来替换.push方法。

  

此函数名为push,因此可以在该位置使用数组   在Google Analytics完全加载之前的_gaq。虽然分析是   loading,命令将被推送/排队到数组上。分析时   完成加载后,它用_gaq对象替换数组   执行所有排队的命令。后续调用_gaq.push   解析为此函数,该函数在按下时执行命令。

     

*来源:https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gaq#_gaq.push *

答案 1 :(得分:0)

加载库时,谷歌分析js库会读取数组_gaq。 _gaq只是在成功加载库时要调用的方法列表(及其参数)。 另一个网络分析系统Piwik使用相同的方法。