Google Analytics与百度统计原理

  

Google Analytics与百度统计原理

  百度统计的工作原理分析

  百度统计提供的JS,实质上是往页面中引入hm.baidu.com/h.js的这段代码,该代码的内容会根据后面的参数有所不同,h.js?后面的参数就是你在百度统计里的id。

  获取该h.js代码的同时,百度统计会往你的浏览器写入一个名字为“HMACCOUNT”的cookie,该cookie的过期时间为2038年,所以只要你没有清空浏览器cookie,基本就永不过期。

  h.js被下载后,便执行其脚本获取一些浏览器相关信息和访问来源,获取的信息包括屏幕尺寸、颜色深度、flash版本、用户语言等。

  从js代码中可以得到,所有参数包括这些:”cc,cf,ci,ck,cl,cm,cp,cw,ds,ep,et,fl,ja,ln,lo,lt,nv,rnd,sb,se,si,st,su,sw,sse,v”。这些参数的意义大致如下:

  cc: 不知道,一般为1

  cf:url参数hmsr的值

  ci:url参数hmci的值

  ck:是否支持cookie 1:0

  cl:颜色深度 如 “32-bit”

  cm:url参数hmmd的值

  cp:url参数hmpl的值

  cw:url参数hmkw的值

  ds:屏幕尺寸,如 ’1024×768′

  ep:初始值为’0′,时间变量,反映页面停留时间,格式大概是:现在时间-载入时间+“,”+另一个很小的时间值

  et:初始值为’0′,如果ep时间变量不是0的话,它会变成其他

  fl:flash版本

  ja:java支持 1:0

  ln:语言 zh-cn

  lo: 不知道,一般为0

  lt:日期 time.time(),如“1327847756”,在首次请求没有

  nv: 不知道,一般为1或者0

  rnd:十位随机数字

  sb:如果是360se浏览器该值等于‘17’

  se: 和搜索引擎相关

  si:统计代码id

  st:

  su:上一页document.referrer

  sw: 不知道,估计和搜索引擎有关,一般为空

  sse:不知道,估计和搜索引擎有关,一般为空

  v:统计代码的版本 ,目前该值为“1.0.17”

  当这些参数都设置完毕了(有些参数并没有赋值),筛选出已经赋值了的参数,并作为hm.baidu.com/hm.gif的参数拼凑出一个url,如:http://upload.chinaz.com//?cc=1&ck=1&cl=32-bit&ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn 。然后请求该图片。

  百度统计服务端,通过接收到这个请求,并从这个图片的网址附带的参数获取相关信息,记录访客访问记录;当页面被用户关闭的时候,同样会触发一次请求hm.gif的过程,但这个过程不是所有浏览器和所有关闭动作都支持。