Google Analytics與百度統(tǒng)計(jì)的統(tǒng)計(jì)數(shù)據(jù)都是有差異的,而且差異非常大,其根本原因在于數(shù)據(jù)統(tǒng)計(jì)的原理和機(jī)制是不同的。下面分享一下Google Analytics與百度統(tǒng)計(jì)做出的原理分析。
百度統(tǒng)計(jì)的工作原理分析
百度統(tǒng)計(jì)提供的JS,實(shí)質(zhì)上是往頁(yè)面中引入hm.baidu.com/h.js的這段代碼,該代碼的內(nèi)容會(huì)根據(jù)后面的參數(shù)有所不同,h.js?后面的參數(shù)就是你在百度統(tǒng)計(jì)里的id。
獲取該h.js代碼的同時(shí),百度統(tǒng)計(jì)會(huì)往你的瀏覽器寫(xiě)入一個(gè)名字為“HMACCOUNT”的cookie,該cookie的過(guò)期時(shí)間為2038年,所以只要你沒(méi)有清空瀏覽器cookie,基本就永不過(guò)期。
h.js被下載后,便執(zhí)行其腳本獲取一些瀏覽器相關(guān)信息和訪問(wèn)來(lái)源,獲取的信息包括屏幕尺寸、顏色深度、flash版本、用戶語(yǔ)言等。
從js代碼中可以得到,所有參數(shù)包括這些:”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”。這些參數(shù)的意義大致如下:
cc: 不知道,一般為1
cf:url參數(shù)hmsr的值
ci:url參數(shù)hmci的值
ck:是否支持cookie 1:0
cl:顏色深度 如 “32-bit”
cm:url參數(shù)hmmd的值
cp:url參數(shù)hmpl的值
cw:url參數(shù)hmkw的值
ds:屏幕尺寸,如 ’1024×768′
ep:初始值為’0′,時(shí)間變量,反映頁(yè)? 嬙A羰奔洌袷醬蟾攀牽合衷謔奔?-載入時(shí)間+“,”+另一個(gè)很小的時(shí)間值
et:初始值為’0′,如果ep時(shí)間變量不是0的話,它會(huì)變成其他
fl:flash版本
ja:java支持 1:0
lo: 不知道,一般為0
lt:日期 time.time(),如“1327847756”,在首次請(qǐng)求沒(méi)有
nv: 不知道,一般為1或者0
rnd:十位隨機(jī)數(shù)字
sb:如果是360se瀏覽器該值等于‘17’
se: 和搜索引擎相關(guān)
si:統(tǒng)計(jì)代碼id
st:
su:上一頁(yè)document.referrer
sw: 不知道,估計(jì)和搜索引擎有關(guān),一般為空
sse:不知道,估計(jì)和搜索引擎有關(guān),一般為空
v:統(tǒng)計(jì)代碼的版本 ,目前該值為“1.0.17”
當(dāng)這些參數(shù)都設(shè)置完畢了(有些參數(shù)并沒(méi)有賦值),篩選出已經(jīng)賦值了的參數(shù),并作為hm.baidu.com/hm.gif的參數(shù)拼湊出一個(gè)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 。然后請(qǐng)求該圖片。
百度統(tǒng)計(jì)服務(wù)端,通過(guò)接收到這個(gè)請(qǐng)求,并從這個(gè)圖片的網(wǎng)址附帶的參數(shù)獲取相關(guān)信息,記錄訪客訪問(wèn)記錄;當(dāng)頁(yè)面被用戶關(guān)閉的時(shí)候,同樣會(huì)觸發(fā)一次請(qǐng)求hm.gif的過(guò)程,但這個(gè)過(guò)程不是所有瀏覽器和所有關(guān)閉動(dòng)作都支持。
使用使用Wireshark(一款網(wǎng)絡(luò)抓包工具)測(cè)試可以發(fā)現(xiàn),瀏覽器總共向服務(wù)器端發(fā)送了4次請(qǐng)求:
請(qǐng)求一段js腳本。
加載完畢時(shí)候出發(fā)一次請(qǐng)求,并傳遞參數(shù)
退出頁(yè)面時(shí)候,發(fā)出一次請(qǐng)求,并傳遞參數(shù),與上面對(duì)比,發(fā)現(xiàn)ep參數(shù)有變化。
百度統(tǒng)計(jì)是基于cookie的,當(dāng)請(qǐng)求js腳本的時(shí)候,會(huì)在你電腦里保存一個(gè)永久cookie,該cookie作為你的用戶標(biāo)識(shí)。同時(shí)發(fā)現(xiàn),但退出 時(shí)候參 數(shù)ep從最開(kāi)始的0變?yōu)榱恕?289%2C115”,轉(zhuǎn)義后是“7289,115”這是兩個(gè)毫秒單位,即7.2秒和0.1秒的意思。同時(shí)前兩次請(qǐng)求 hm.gif的時(shí)候lt參數(shù)(時(shí)間,javascript:(new Date).getTime())是不變的。rnd隨機(jī)數(shù)每次都變。
Google Analytics的工作原理
當(dāng)用戶訪問(wèn)了一個(gè)包含Google Analytics統(tǒng)計(jì)代碼的頁(yè)面,這段代碼會(huì)被用戶的瀏覽器執(zhí)行,而這段代碼的作用就是用來(lái)收集這位訪客的信息,比如瀏覽頁(yè)面的URL、瀏覽器類(lèi)型、操作系統(tǒng)、系統(tǒng)語(yǔ)言、屏幕分辨率等。
GA統(tǒng)計(jì)代碼隨后將這些訪客信息存儲(chǔ)到Cookie中,Cookie是一段短小的文本,存放于本地,與訪問(wèn)的網(wǎng)站相關(guān)聯(lián),它被用來(lái)判斷一個(gè)用戶是初次訪問(wèn)還是多次訪問(wèn),頁(yè)面的推薦來(lái)源和隨后的頁(yè)面瀏覽信息等。
最后,所有的被收集到的信息會(huì)被發(fā)送到Google Analytics的數(shù)據(jù)服務(wù)器上。這個(gè)過(guò)程比較巧妙,我們知道服務(wù)器的日志文件會(huì)記錄每一次的文件請(qǐng)求信息,而Google Analytics收集數(shù)據(jù)的方式便是通過(guò)向服務(wù)器請(qǐng)求一個(gè)透明的1×1的GIF圖片文件,這個(gè)文件請(qǐng)求以及請(qǐng)求時(shí)間會(huì)在服務(wù)器日志中被記錄,而文件請(qǐng)求 信息包含了GA統(tǒng)計(jì)代碼收集的數(shù)據(jù)和Cookie信息,這樣,每當(dāng)這個(gè)GIF圖片收到請(qǐng)求申請(qǐng)時(shí),訪客的訪問(wèn)信息就會(huì)被Google Analytics數(shù)據(jù)服務(wù)器收集。
不過(guò)Google Analytics只是發(fā)送一張gif請(qǐng)求,很多時(shí)候會(huì)發(fā)送多張gif請(qǐng)求。假如有一個(gè)gif圖片無(wú)法統(tǒng)計(jì),那么GA會(huì)發(fā)送其他gif請(qǐng)求,
總結(jié):
網(wǎng)站分析大師Avinash曾經(jīng)說(shuō)過(guò)只要有數(shù)據(jù)有90%的準(zhǔn)確度,那么就可以及時(shí)采取行動(dòng)了。重要的是能夠看出趨勢(shì),進(jìn)而采取行動(dòng),然后進(jìn)行測(cè)試,不斷地優(yōu)化。
本文轉(zhuǎn)自網(wǎng)絡(luò),謝謝!