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%的準確度,那麼就可以及時採取行動了。重要的是能夠看出趨勢,進而採取行動,然後進行測試,不斷地最佳化。
文章來源:盧鬆鬆的部落格,轉載請註明本文地址,謝謝。