当这些参数都设置完毕了(有些参数并没有赋值),筛选出已经赋值了的参数,并作为hm.baidu.com/hm.gif的参数拼凑出一个url,如:http://hm.baidu.com/hm.gif?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn。然后请求该图片。
百度统计服务端,通过接收到这个请求,并从这个图片的网址附带的参数获取相关信息,记录访客访问记录;当页面被用户关闭的时候,同样会触发一次请求hm.gif的过程,但这个过程不是所有浏览器和所有关闭动作都支持。
使用使用Wireshark(一款网络抓包工具)测试可以发现,浏览器总共向服务器端发送了4次请求:
请求一段js脚本。
加载完毕时候出发一次请求,并传递参数
退出页面时候,发出一次请求,并传递参数,与上面对比,发现ep参数有变化。
百度统计是基于cookie的,当请求js脚本的时候,会在你电脑里保存一个永久cookie,该cookie作为你的用户标识。同时发现,但退出时候参数ep从最开始的0变为了“7289%2C115”,转义后是“7289,115”这是两个毫秒单位,即7.2秒和0.1秒的意思。同时前两次请求hm.gif的时候lt参数(时间,javascript:(newDate).getTime())是不变的。rnd随机数每次都变。
GoogleAnalytics的工作原理
当用户访问了一个包含GoogleAnalytics统计代码的页面,这段代码会被用户的浏览器执行,而这段代码的作用就是用来收集这位访客的信息,比如浏览页面的URL、浏览器类型、操作系统、系统语言、屏幕分辨率等。
GA统计代码随后将这些访客信息存储到Cookie中,Cookie是一段短小的文本,存放于本地,与访问的网站相关联,它被用来判断一个用户是初次访问还是多次访问,页面的推荐来源和随后的页面浏览信息等。
最后,所有的被收集到的信息会被发送到GoogleAnalytics的数据服务器上。这个过程比较巧妙,我们知道服务器的日志文件会记录每一次的文件请求信息,而GoogleAnalytics收集数据的方式便是通过向服务器请求一个透明的1×1的GIF图片文件,这个文件请求以及请求时间会在服务器日志中被记录,而文件请求信息包含了GA统计代码收集的数据和Cookie信息,这样,每当这个GIF图片收到请求申请时,访客的访问信息就会被GoogleAnalytics数据服务器收集。
不过GoogleAnalytics只是发送一张gif请求,很多时候会发送多张gif请求。假如有一个gif图片无法统计,那么GA会发送其他gif请求,
总结:
网站分析大师Avinash曾经说过只要有数据有90%的准确度,那么就可以及时采取行动了。重要的是能够看出趋势,进而采取行动,然后进行测试,不断地优化。