百度統(tǒng)計(jì)的工作原理分析 百度統(tǒng)計(jì)提供的JS,實(shí)質(zhì)上是往頁面中引入#/h.js的這段代碼,該代碼的內(nèi)容會(huì)根據(jù)后面的參數(shù)有所不同,h.js?后面的參數(shù)就是你在百度統(tǒng)計(jì)里的id。 獲取該h.js代碼的同時(shí),百度統(tǒng)計(jì)會(huì)往你的瀏覽器寫入一個(gè)名字為“HMACCOUNT”的cookie,該cookie的過期時(shí)間為2038年,所以只要你沒有清空瀏覽器cookie,基本就永不過期。 h.js被下載后,便執(zhí)行其腳本獲取一些瀏覽器相關(guān)信息和訪問來源,獲取的信息包括屏幕尺寸、顏色深度、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ù)的意義大致如下:
當(dāng)這些參數(shù)都設(shè)置完畢了(有些參數(shù)并沒有賦值),篩選出已經(jīng)賦值了的參數(shù),并作為#/hm.gif的參數(shù)拼湊出一個(gè)url,如:http://#/hm.gif?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ù)端,通過接收到這個(gè)請(qǐng)求,并從這個(gè)圖片的網(wǎng)址附帶的參數(shù)獲取相關(guān)信息,記錄訪客訪問記錄;當(dāng)頁面被用戶關(guān)閉的時(shí)候,同樣會(huì)觸發(fā)一次請(qǐng)求hm.gif的過程,但這個(gè)過程不是所有瀏覽器和所有關(guān)閉動(dòng)作都支持。 使用使用Wireshark(一款網(wǎng)絡(luò)抓包工具)測試可以發(fā)現(xiàn),瀏覽器總共向服務(wù)器端發(fā)送了4次請(qǐng)求: 請(qǐng)求一段js腳本。 加載完畢時(shí)候出發(fā)一次請(qǐng)求,并傳遞參數(shù) 退出頁面時(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從最開始的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)用戶訪問了一個(gè)包含Google Analytics統(tǒng)計(jì)代碼的頁面,這段代碼會(huì)被用戶的瀏覽器執(zhí)行,而這段代碼的作用就是用來收集這位訪客的信息,比如瀏覽頁面的URL、瀏覽器類型、操作系統(tǒng)、系統(tǒng)語言、屏幕分辨率等。 GA統(tǒng)計(jì)代碼隨后將這些訪客信息存儲(chǔ)到Cookie中,Cookie是一段短小的文本,存放于本地,與訪問的網(wǎng)站相關(guān)聯(lián),它被用來判斷一個(gè)用戶是初次訪問還是多次訪問,頁面的推薦來源和隨后的頁面瀏覽信息等。 最后,所有的被收集到的信息會(huì)被發(fā)送到Google Analytics的數(shù)據(jù)服務(wù)器上。這個(gè)過程比較巧妙,我們知道服務(wù)器的日志文件會(huì)記錄每一次的文件請(qǐng)求信息,而Google Analytics收集數(shù)據(jù)的方式便是通過向服務(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í),訪客的訪問信息就會(huì)被Google Analytics數(shù)據(jù)服務(wù)器收集。 不過Google Analytics只是發(fā)送一張gif請(qǐng)求,很多時(shí)候會(huì)發(fā)送多張gif請(qǐng)求。假如有一個(gè)gif圖片無法統(tǒng)計(jì),那么GA會(huì)發(fā)送其他gif請(qǐng)求, 總結(jié): 網(wǎng)站分析大師Avinash曾經(jīng)說過只要有數(shù)據(jù)有90%的準(zhǔn)確度,那么就可以及時(shí)采取行動(dòng)了。重要的是能夠看出趨勢(shì),進(jìn)而采取行動(dòng),然后進(jìn)行測試,不斷優(yōu)化. |
|