Google Analytics與百度統計原理分析

來源:互聯網
上載者:User

  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%的準確度,那麼就可以及時採取行動了。重要的是能夠看出趨勢,進而採取行動,然後進行測試,不斷地最佳化。

  文章來源:盧鬆鬆的部落格,轉載請註明本文地址,謝謝。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.