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