當(dāng)我們?cè)噲D從各種網(wǎng)站分析的報(bào)表中解讀各種指標(biāo)和數(shù)據(jù)的時(shí)候,需要去了解它們的定義(Definition)和計(jì)算規(guī)則(Computation Rule),其中必須要具備的基礎(chǔ)知識(shí)就是在網(wǎng)站中通常以何種方式獲取數(shù)據(jù)。下面就介紹數(shù)據(jù)獲取的基本方式,以及原始數(shù)據(jù)是以何種形式存在的。
常見(jiàn)的數(shù)據(jù)獲取方式
其實(shí)網(wǎng)站的數(shù)據(jù)統(tǒng)計(jì)(早期叫流量統(tǒng)計(jì))由來(lái)已久,因?yàn)榫W(wǎng)站管理員需要了解和監(jiān)控網(wǎng)站的訪問(wèn)狀況,通常需要記錄和統(tǒng)計(jì)網(wǎng)站流量的基礎(chǔ)數(shù)據(jù),但隨著網(wǎng)站在技術(shù)和運(yùn)營(yíng)上的不斷發(fā)展,人們對(duì)數(shù)據(jù)的要求越來(lái)越高,以求實(shí)現(xiàn)更加精細(xì)的運(yùn)營(yíng)來(lái)提升網(wǎng)站的質(zhì)量,所以網(wǎng)站的數(shù)據(jù)獲取方式也隨著網(wǎng)站技術(shù)的進(jìn)步和人們對(duì)網(wǎng)站數(shù)據(jù)需求的加深而不斷地發(fā)展。從使用發(fā)展的情況來(lái)看,主要分為3類(lèi):網(wǎng)站日志文件(Log FiIes)、Web Beacons(俗稱(chēng)打點(diǎn))、JS頁(yè)面標(biāo)記(JavaScript Tags)。其實(shí)這3種數(shù)據(jù)獲取方式也反映了一個(gè)進(jìn)階的過(guò)程,從網(wǎng)站日志到JS標(biāo)記,每一項(xiàng)后面使用的技術(shù)都是對(duì)前面技術(shù)的部分沿用和改進(jìn),規(guī)避之前技術(shù)可能存在的一些缺陷和不足,我們可以大致了解一下數(shù)據(jù)獲?。―ata Capture)的基本知識(shí)和發(fā)展過(guò)程。
1.網(wǎng)站日志文件
記錄網(wǎng)站日志文件的方式是最原始的數(shù)據(jù)獲取方式,主要在服務(wù)端完成,在網(wǎng)站的應(yīng)用服務(wù)器配置相應(yīng)的寫(xiě)日志的功能就能實(shí)現(xiàn),如圖2-1所示。
圖2-1 網(wǎng)站日志文件數(shù)據(jù)獲取方式
網(wǎng)站的應(yīng)用服務(wù)器輸出的日志所記錄的其實(shí)是用戶(hù)終端為了滿(mǎn)足用戶(hù)的訪問(wèn)需要,對(duì)服務(wù)器發(fā)起的所有的資源請(qǐng)求,這些資源請(qǐng)求不僅包含頁(yè)面請(qǐng)求,頁(yè)面展現(xiàn)的所有相關(guān)元素請(qǐng)求也會(huì)被記錄,如圖片、CSS、文件(Flash、視頻、音樂(lè)等),另外一些iframe也會(huì)被當(dāng)成請(qǐng)求記錄。所以原始的日志文件記錄了很多統(tǒng)計(jì)中用不到的內(nèi)容,這些內(nèi)容產(chǎn)生的篩選和過(guò)濾工作帶來(lái)了巨大成本,同時(shí)導(dǎo)致了統(tǒng)計(jì)數(shù)據(jù)的不準(zhǔn)確。日志文件的另外一個(gè)缺陷就是由于數(shù)據(jù)獲取在服務(wù)端進(jìn)行,很多用戶(hù)在頁(yè)面端的操作(如點(diǎn)擊、Ajax的使用等)無(wú)法被記錄,限制了一些指標(biāo)的統(tǒng)計(jì)和計(jì)算。
2.Web Beacons
為了避免網(wǎng)站日志文件形式給應(yīng)用服務(wù)器帶來(lái)的額外壓力,以及過(guò)量的日志記錄導(dǎo)致數(shù)據(jù)篩選過(guò)濾的成本,于是就出現(xiàn)了Web Beacons的數(shù)據(jù)獲取方式,貌似還沒(méi)有正規(guī)的中文翻譯,一般被稱(chēng)為打點(diǎn)。Web Beacons的實(shí)現(xiàn)方式是在需要統(tǒng)計(jì)的網(wǎng)站頁(yè)面或者模塊上嵌入一個(gè)1×1像素的透明圖片,用戶(hù)完全察覺(jué)不到,當(dāng)用戶(hù)訪問(wèn)該網(wǎng)頁(yè)的同時(shí)會(huì)請(qǐng)求透明圖片,并完成頁(yè)面訪問(wèn)的記錄工作,就像是在紙上畫(huà)了一個(gè)不易看到的小點(diǎn)來(lái)標(biāo)記那張紙,如圖2-2所示。
圖2-2 Web Beacons數(shù)據(jù)獲取方式
Web Beacons的方式實(shí)現(xiàn)了日志記錄服務(wù)器與網(wǎng)站應(yīng)用服務(wù)器的分離,使用獨(dú)立的日志記錄和處理服務(wù)器避免了應(yīng)用服務(wù)器的額外壓力,而且可控的圖片嵌入方式大幅度降低了日志記錄數(shù)(對(duì)于一般的網(wǎng)站頁(yè)面而言,當(dāng)請(qǐng)求一個(gè)頁(yè)面時(shí),傳統(tǒng)網(wǎng)站日志記錄數(shù)是6到10條,也就是說(shuō),使用Web Beacons的方式記錄的日志數(shù)量大約只有原始服務(wù)器日志的1/8,傳統(tǒng)的流量統(tǒng)計(jì)工具如AWStats、Webalizer等用Hits這個(gè)指標(biāo)來(lái)記錄原始記錄數(shù),一般是正常頁(yè)面瀏覽PV的6到10倍,對(duì)于某些復(fù)雜的站點(diǎn)甚至是20多倍),保證了數(shù)據(jù)統(tǒng)計(jì)的效率和準(zhǔn)確性。
而Web Beacons的最大劣勢(shì)就是獲取信息的有限性,尤其是記錄的來(lái)源頁(yè)面(Referral)為圖片所在的頁(yè)面,而不是該頁(yè)面的前一個(gè)頁(yè)面,同時(shí)由于與網(wǎng)站應(yīng)用服務(wù)器分離,用戶(hù)cookie等信息的記錄也有可能丟失。所以單純使用Web Beacons的形式無(wú)法完全獲取網(wǎng)站分析指標(biāo)需要的信息,于是就出現(xiàn)了JS頁(yè)面標(biāo)記。
3.JS頁(yè)面標(biāo)記
JS頁(yè)面標(biāo)記同樣是對(duì)Web Beacons的改進(jìn),彌補(bǔ)Web Beacons在信息獲取上的不足。JS頁(yè)面標(biāo)記同樣需要在頁(yè)面端進(jìn)行處理,只是嵌入的不再是圖片,而是JS標(biāo)記代碼,當(dāng)用戶(hù)訪問(wèn)網(wǎng)頁(yè)時(shí)同時(shí)出發(fā)并執(zhí)行JS代碼,JS代碼會(huì)將一些統(tǒng)計(jì)需要的信息以URL參數(shù)的形式附帶在圖片請(qǐng)求地址的后面,然后再向日志服務(wù)器請(qǐng)求圖片,這樣日志服務(wù)器就可以獲取比較完整的訪問(wèn)數(shù)據(jù)。如圖2-3所示。
圖2-3 JS頁(yè)面標(biāo)記數(shù)據(jù)獲取方式
JS頁(yè)面標(biāo)記的方式具備了數(shù)據(jù)獲取的靈活性和可控性,以及獲取信息的完整性等優(yōu)勢(shì),同時(shí)可以監(jiān)控頁(yè)面端的各種操作,如點(diǎn)擊、Ajax等,唯一的缺點(diǎn)就是當(dāng)用戶(hù)禁用JS功能時(shí),所有的信息將無(wú)法獲取。
通過(guò)以上對(duì)三類(lèi)數(shù)據(jù)獲取方式的介紹,我們可以來(lái)比較下它們的優(yōu)缺點(diǎn),見(jiàn)表2-1。
表2-1 三種數(shù)據(jù)獲取方式的比較
所以,JS頁(yè)面標(biāo)記方式因?yàn)槠涫褂渺`活性、可獲取數(shù)據(jù)的豐富度和統(tǒng)計(jì)得到的指標(biāo)的相對(duì)準(zhǔn)確性成為目前最常用的一種數(shù)據(jù)獲取方式。下面來(lái)簡(jiǎn)單比較一下網(wǎng)站的日志文件和JS標(biāo)記所獲取的數(shù)據(jù)具備哪些信息、記錄的方式有何不同。