Google Analytics推出异步跟踪
Posted on 十二月 4, 2009
Filed Under 新闻资讯 | Leave a Comment
原创文章,转载请注明: 转载自网站分析 Web Analytics
本文链接地址: Google Analytics推出异步跟踪
从12月1日开始,Google Analytics推出了异步跟踪的方式,用户可以在同步跟踪与异步跟踪之间选择。异步的跟踪方式具有以下优点:
- 跟踪代码的加载速度更快,改善浏览器的执行效率
- 增强数据收集的准确性
- 消除因为JavaScript未完全加载引起的误差
下面是异步跟踪的代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>
这段代码最开始,在JavaScript中分配了一个变量名为_gap的数组。紧接着,在下面两行把两个API的调用放入了这个数组中。当跟踪代码初始化时,会将_gap从一个标准的数组转化成一个新的对象,然后执行之前放入的API调用。通过这个特性,你可以在跟踪代码被下载前,先将API调用准备好,而不用担心Race Condition(因为多线程执行造成的紊乱)。
第二部分代码会并发的加载跟踪代码。这部分代码在一个匿名的方法中执行,它会建立一个新的Script标签并且通过合适的协议引用跟踪代码。这样做,可以减少页面加载的时间。注意这里很前卫的使用了HTML5中新的“async”标记,它会告诉浏览器这段JavaScript代码可以异步的方式来加载。Firefox3.6是第一款支持这个特性的浏览器。如果与疑问,可以参考HTML5 async specification。
跟踪代码一旦被加载,会将_gap数组转化为一个Analytics _gaq 对象。这个对象会包装底层的_gap对象,并执行所有的命令,向Google Analytics发送数据。你页面上的代码甚至可以忽略这个事实,因为_gap.push这个语法可以在任何时候使用。在Asynchronous Tracking Usage Guide可以获得详细信息。
这种新的跟踪方式现在处于Beta测试,所有Google Analytics的账户都可以使用。
一个完整的例子:
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); </script> </head> <body> <p>Page Content</p> <script src="some_random_script.js"></script> <p>Page Content</p> <script type="text/javascript"> (function() { var ga = document.createElement('script'); ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; ga.setAttribute('async', 'true'); document.documentElement.firstChild.appendChild(ga); })(); </script> </body> </html>

Leave a Reply