大家好,我是Tenly,平时比较少发文章,主要是原博客后台版本过旧,发文章不顺心。今天在宋星的允许下帮他更新了wordpress,并装了些插件,样貌大换新,一切令人兴奋。
这篇博客就讲点简单的技术问题吧,技术专家(如车东这样的人)可以直接忽略此文。感谢一楼评论的建议与更正。
以下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>
抛砖引玉的内容就到此了,今晚要早睡,明天还要上班了。欢迎“流”言。PS,强烈声明,本人不是做技术的,完全不懂编程,只是瞎研究了一下。
1. a = xx ? yy : zz; 并不是正则表达式,而是JavaScript三元运算符,用于简化 if (xx) {a=yy} else {a=zz},也可以没有a=,直接执行分支语句。
2.document.write 不是JS内置函数,而是浏览器DOM对象函数。
3.简化代码的话,type=”text/javascript”可以不写,浏览器都默认script元素为js语言。
4.声明pageTracker实例对象,JS没有“类”的概念。JS开发中更多用原型对象的概念。
5.if(window.name == “”) 可简写为 if(!window.name )
6.if后只有一句的话,可以删掉{} 写成 if(!window.name ) pageTracker._trackPageview(); 不过不建议这么做。
:P
万分感谢感谢,会即时更正.哈哈,看来技术牛人没有直接忽略此文了.
感谢分享,占沙发学习
不错的分享,还有一楼的同学,呵呵
本博客的第一篇技术解决方案的文章。顶一个先!
Tenly的加入弥补了这个博客技术性内容相对薄弱的问题,希望多多出类似好文!
另,关于这个领域,建议你能做一个内部交流分享。
潜水好久了,露个头儿~
关注您的博客很长时间了,学到了不少东西,谢谢~
感谢分享,之前从来就没怀疑过自己会去改,看来这是机会!
分析网站总算知道一点眉目了,谢谢分享你的技术成果。
原来是这些个意思 总算知道了一点
以前只知道放 不知道原来还可以自己去修改 谢谢老大分享
var pageTracker = _gat._getTracker(“UA-4130899-1”);
请问以上UA-后面的ID在哪儿找啊?
Возьму на свойстрах и риск)))
It’s the best time to make some plans for the longer term and it’s time to be happy. I have read this put up and if I may just I desire to recommend you some fascinating issues or tips. Perhaps you can write next articles relating to this article. I desire to read more things approximately it!