中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

beforeunload丟失率統(tǒng)計(jì)

2019-04-03    來(lái)源:淘寶UED

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

用戶(hù)體驗(yàn)研究過(guò)程中,我們經(jīng)常需要使用前端腳本采集用戶(hù)訪(fǎng)問(wèn)行為相關(guān)的數(shù)據(jù),例如監(jiān)聽(tīng)鼠標(biāo)的點(diǎn)擊事件,記下點(diǎn)擊的位置及被點(diǎn)擊的元素等。一個(gè)不可避免問(wèn)題是,何時(shí)將采集到的數(shù)據(jù)發(fā)送到服務(wù)器呢?最直接的方案是每次收集到數(shù)據(jù)后立即發(fā)送,但這可能會(huì)帶來(lái)較多的HTTP請(qǐng)求,一方面降低頁(yè)面的性能,另一方面也增加了打點(diǎn)服務(wù)器的壓力。另一個(gè)方案是先將收集的數(shù)據(jù)緩存一下,然后按一定規(guī)則發(fā)送(比如每收集滿(mǎn)10條數(shù)據(jù)發(fā)一次,或者每隔5秒鐘發(fā)一次),其中最終極的方案是所有的數(shù)據(jù)都緩存起來(lái)直到離開(kāi)頁(yè)面之前(beforeunload事件觸發(fā)時(shí))再發(fā)送。不過(guò)這個(gè)終極方案也有自己的問(wèn)題,比如beforeunload這個(gè)事件可靠嗎?在這個(gè)事件中發(fā)送打點(diǎn)的丟失率有多少?近期我們就這些問(wèn)題做了一個(gè)研究,對(duì)這個(gè)丟失率也有了一個(gè)更具體的認(rèn)識(shí)。主要的研究過(guò)程如下:

首先我們需要收集數(shù)據(jù),這兒主要有兩個(gè)數(shù)據(jù):頁(yè)面加載時(shí)立即發(fā)送一個(gè)打點(diǎn),稱(chēng)為PV打點(diǎn);監(jiān)聽(tīng)頁(yè)面的beforeunload事件,在這個(gè)事件觸發(fā)時(shí)再發(fā)送一個(gè)打點(diǎn),稱(chēng)為unload打點(diǎn)。顯然,如果丟失率為0或非常小的話(huà),PV打點(diǎn)的數(shù)目和unload打點(diǎn)的數(shù)目應(yīng)該相等或非常接近。即丟失率的計(jì)算公式為:丟失率=(PV-unload)/PV*100%

如下圖所示:

按這個(gè)思路,我們?cè)谔詫氻?yè)面上進(jìn)行了抽樣埋點(diǎn),并取得了足夠多的PV及unload打點(diǎn)數(shù)據(jù)。但現(xiàn)實(shí)總是不完美的,整理這些數(shù)據(jù)的過(guò)程中,我們發(fā)現(xiàn)一些unload數(shù)據(jù)沒(méi)有對(duì)應(yīng)的PV數(shù)據(jù),也就是說(shuō),由于各種各樣的原因,不僅綁定beforeunload事件的unload打點(diǎn)有可能丟失,在頁(yè)面初始化時(shí)發(fā)送的PV打點(diǎn)也可能丟失,盡管這個(gè)概率非常低。于是,我們又為打點(diǎn)添加了一個(gè)pvid參數(shù),值為一個(gè)隨機(jī)生成的字符串,每一組PV/unload打點(diǎn)的pvid都是相同的。這樣,我們就能通過(guò)這個(gè)參數(shù)過(guò)濾出那些完整的PV/unload打點(diǎn)記錄,再經(jīng)過(guò)一些適當(dāng)?shù)恼,我們就得到了可以進(jìn)行統(tǒng)計(jì)的有效數(shù)據(jù)。

接下來(lái),根據(jù)上面的公式,我們算出了beforeunload打點(diǎn)的總丟失率,約為20.81%,整個(gè)過(guò)程如下圖所示:

使用上面的方法我們連續(xù)統(tǒng)計(jì)了若干天的數(shù)據(jù),發(fā)現(xiàn)beforeunload的總體丟失率維持在20%附近。接下來(lái),我們?cè)侔堰@個(gè)數(shù)據(jù)按瀏覽器進(jìn)行細(xì)分,看各個(gè)瀏覽器下這個(gè)丟失率是否有差異。

首先看一下當(dāng)前瀏覽器分布情況:

清洗過(guò)的日志數(shù)據(jù)再根據(jù)UA字段細(xì)分后的結(jié)果為:

從上圖可以看到,各大瀏覽器的表現(xiàn)并不一樣,其中份額占比最大的IE8在丟失率上表現(xiàn)最好,遠(yuǎn)低于總體平均水平,而chrome和safari卻遠(yuǎn)高于平均值。各瀏覽器的丟失率乘以它們各自的權(quán)重(市場(chǎng)份額)之后再求和,就得到了總的平均丟失率,在我們的實(shí)驗(yàn)中,這個(gè)總丟失率約為20%。

結(jié)論:使用beforeunload事件打點(diǎn)并不可靠,總丟失率在20%左右,其中各瀏覽器的表現(xiàn)各不相同;當(dāng)然在一些丟失率要求不高的采集任務(wù)中這個(gè)事件還是能派上用場(chǎng)的,比如說(shuō)統(tǒng)計(jì)頁(yè)面停留時(shí)間、頁(yè)面內(nèi)容曝光比例等。

最后需要特別說(shuō)明的是:丟失率與用戶(hù)瀏覽器分布情況、所采用的打點(diǎn)方式以及打點(diǎn)服務(wù)器響應(yīng)速度等因素都有關(guān),本結(jié)果僅供參考。

統(tǒng)計(jì)人:魚(yú)相、季札。

文章來(lái)源:淘寶UED

標(biāo)簽: beforeunload 丟失率統(tǒng)計(jì) 數(shù)據(jù)統(tǒng)計(jì) 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:說(shuō)說(shuō)知乎新版 Feed

下一篇:微信營(yíng)銷(xiāo)的六大利器