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的過程,但這個過程不是所有瀏覽器和所有關閉動作都支援。
使用使用Wireshark(一款網路抓包工具)測試可以發現,瀏覽器總共向伺服器端發送了4次請求:
請求一段js腳本。
加載完畢時候出發一次請求,並傳遞參數
退出頁面時候,發出一次請求,並傳遞參數,與上方對比,發現ep參數有變化。
百度統計是基於cookie的,當請求js腳本的時候,會在你電腦裡保存一個永久cookie,該cookie作為你的使用者識別。同時發現,但退出時候參數ep從最開始的0變為了“7289%2C115”,轉義後是“7289,115”這是兩個毫秒單位,即7.2秒和0.1秒的意思。同時前兩次請求hm.gif的時候lt參數(時間,javascript:(new Date).getTime())是不變的。 rnd隨機數每次都變。
Google Analytics的工作原理
當使用者造訪了一個包含Google Analytics統計程式碼的頁面,這段程式碼會被使用者的瀏覽器執行,而這段程式碼的作用就是用來收集這位訪客的信息,例如瀏覽頁面的URL、瀏覽器類型、作業系統、系統語言、螢幕解析度等。
GA統計代碼隨後將這些訪客資訊儲存到Cookie中,Cookie是一段短小的文本,存放於本地,與訪問的網站相關聯,它被用來判斷一個用戶是初次訪問還是多次訪問,頁面的推薦來源和隨後的頁面瀏覽資訊等。
最後,所有的被收集到的資訊會被傳送到Google Analytics的資料伺服器上。這個過程比較巧妙,我們知道伺服器的日誌檔案會記錄每一次的文件請求訊息,而Google Analytics收集資料的方式便是透過向伺服器請求一個透明的1×1的GIF圖片文件,這個檔案請求以及請求時間會在伺服器日誌中被記錄,而檔案請求資訊包含了GA統計程式碼收集的資料和Cookie訊息,這樣,每當這個GIF圖片收到請求申請時,訪客的存取資訊就會被Google Analytics資料伺服器收集。
不過Google Analytics只是發送gif請求,很多時候會發送多張gif請求。假如有一個gif圖片無法統計,那麼GA會發送其他gif請求,
總結:
網站分析大師Avinash曾經說過只要有數據有90%的準確度,那就可以及時採取行動了。重要的是能夠看出趨勢,進而採取行動,然後進行測試,並不斷優化。
文章來源:盧松鬆的博客,轉載請註明本文地址,謝謝。
(責任編輯:揚揚) 作者盧鬆鬆部落格的個人空