Google Analytics代码DIY 一
GA代表Google Analytics。
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src=’" + gaJsHost + "google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E")); </script><script type="text/javascript">
try { var pageTracker = _gat._getTracker("UA-4130899-1");
pageTracker._trackPageview(); }
catch(err) {}
</script>上面是最基本的GA代码,分为两个部分。
第一部分(加粗部分):
- 通过一条(正则表达式)JavaScript三元运算符,定义了gaJsHost 变量。我们不需要非常了解正则表达式的原理,但看得出来这一行是在让GA自动辨认代码所在页面的URL地址是哪种前缀,如https等等,了解即可。
- 通过最常用的(JS内置函数)DOM对象函数 document.write,把一串html代码写入到所在页面。(unescape 函数的用途就不细说了。)这串html代码的目的是让页面去GA的服务器下载一个叫ga.js的统计功能文件,用来进行实现GA的统计。上面的gaJsHost 变量,决定了ga.js文件的URL地址的细微不同。
第一部分的代码就实现了两个目的。但是我们可以看出有很多可以DIY的地方:
ga.js文件可以放在本地,如把ga.js放在http://www.chinawebanalytics.cn/ga.js。那么第一部分的代码可简化为:
<script src="ga.js" type="text/javascript"> </script>
或者是
<script src="http://www.chinawebanalytics.cn/ga.js" type="text/javascript"></script>举这个例子主要是为了解析代码作用。
实现上这样做的唯一好处是能让ga.js的加载速度=本站速度。随着GA的连接速度越来越好,这种作法也大可不必了。另外,ga.js会不定期被GA不通知的情况更新,所以如果下载了ga.js,也许没过多久就不是最新版本了。
简化GA的监测代码。如果你的网站很清楚就是http://开头的,而不是https://开头。那么第一部分可以直接这样写,四行变一行:(PS.我有电脑洁癖症)。后方有Cloudream同学的更精简方法。
<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
第二部分(未加粗部分):
- try catch语句的作用是,在与GA服务器通信的过程中,防止意外错误造成页面停止Loading。
- 定义 pageTracker 实例对象,并根据你的帐户ID关联上。pageTracker 类下面有很多函数,希望以后的文章里与讲几个函数的作用。
- pageTracker._trackPageview() 函数是指记录一个PV,并把该页面的地址返回给GA服务器。
第二部分的代码就实现了两个目的,关联你的帐户ID,并记录页面的PV与相应的URL地址。同样,这里的DIY更是无穷无尽了:
定义第一次打开该页面,才记作一次PV,如果不是,则不记。通过判断window.name是否为空值,来确定这个页面窗口在浏览器中是否第一次打开。结合地写一些其它相辅助的代码,可以实现对垃圾流量的过滤。
try {
var pageTracker = _gat._getTracker("UA-4130899-1");
if(!window.name){
pageTracker._trackPageview();}
} catch(err) {}一个PV两处记。你可以建立与两个ID的联系,让访问数据同时记入两个ID的统计数据库。
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-4130899-1");
var pageTracker1 = _gat._getTracker("UA-8888888-1");
pageTracker._trackPageview();
pageTracker1._trackPageview();}
catch(err) {}
</script>