訪客站點(diǎn)停留時間和頁面停留時間的實(shí)現(xiàn)方案

站點(diǎn)停留時間(Time on Site,下文簡稱Ts) 和 頁面停留時間(Time on Page,下文簡稱Tp)是用戶體驗(yàn)分析及流量質(zhì)量監(jiān)控的重要指標(biāo)。但是極少有人知道網(wǎng)站訪問的平均時間(Average Time on Site)是怎么計(jì)算出來的。無論是使用競爭情報分析工具,還是某種網(wǎng)站分析解決方案(在網(wǎng)站分析解決方案中不論是WebLog還是JavaScript的標(biāo)簽方式獲得的數(shù)據(jù),都沒幾個人知道網(wǎng)站訪問平均時間是怎么算出來的)。
因此,寫這篇文章就是想要解釋清楚,Tp和Ts是如何計(jì)算的。
案例1:
有人訪問了你的網(wǎng)站主頁,你的網(wǎng)站分析工具則開始為這個訪問者計(jì)1個Session(會話)。接著這個訪問者又瀏覽了另外兩個頁面,然后離開了你的網(wǎng)站(離開網(wǎng)站可以是通過關(guān)閉瀏覽器,或在地址欄鍵入一個不同的網(wǎng)址,或是點(diǎn)擊了你網(wǎng)站上鏈接到其他網(wǎng)站的鏈接……)為了簡單點(diǎn),我們把這個過程當(dāng)做一個Session。

我們想要知道的如下:
Tp = 用戶在一個頁面上的停留時間(Time spent on a page);
Ts = 用戶在整個網(wǎng)站上的總停留時間(Time spent on the website)。

假設(shè)這個會話從9點(diǎn)開始:

目前,所有的網(wǎng)站分析工具都能精確的獲知一個頁面訪問請求發(fā)生的時間,但是這還不足以解釋Tp和Ts到底有多少,因?yàn)槲覀冞€需要更多的信息:

用戶沒有Bounce(跳出),點(diǎn)擊了首頁上的某個鏈接跳轉(zhuǎn)到了頁面2,目前的網(wǎng)站分析工具也能獲取頁面2的打開時間,而且能知道是同一個用戶,因此能輕易計(jì)算出首頁的Tp:
Tp(首頁) = 9:05 – 9:00 = 5 分鐘。
在頁面2上有某些內(nèi)容吸引了用戶,于是用戶繼續(xù)訪問了頁面3

從上圖看:
Tp(頁面2) = 9:30 – 9:05 = 25 分鐘。
用戶從頁面3退出,結(jié)束會話:

那么,這個用戶到底在頁面3上停留了多長時間呢?問題出現(xiàn)了,因?yàn)楫?dāng)前所有網(wǎng)站分析工具都沒有抓取用戶離開頁面3時的“時間戳”,這樣我們就無法計(jì)算該用戶到底在頁面3上停留了多長時間!因此:
Tp (頁面3) = 0 分鐘。
因?yàn)橄乱粋€頁面的請求時間無法提供!網(wǎng)站分析工具不知道用戶在會話最后一個頁面上的停留時間是多少了,對于絕大多數(shù)網(wǎng)站分析工具而言,都是如此。
讓我們用下圖來表示各個頁面網(wǎng)站分析工具統(tǒng)計(jì)的停留時間:

Tp (首頁) = 5 分鐘
Tp (頁面2) = 25 分鐘
Tp (頁面3) = 0 分鐘
那么,這個Session在整個網(wǎng)站上的訪問停留時間是多少呢?
Ts = 30 分鐘
合理嗎?
我覺得可能不太合理,因?yàn)槟悴恢涝L問者花在最后一個頁面上的時間是多少,因此網(wǎng)站分析工具給你的時間統(tǒng)計(jì)一般都會少于用戶實(shí)際在網(wǎng)站上停留的時間。
案例2:
用多Tab(標(biāo)簽頁面)的瀏覽器瀏覽網(wǎng)站時Time on Site和Time on Page如何被計(jì)算?
Firefox的多標(biāo)簽頁面瀏覽方式為其贏得了聲譽(yù),但是對計(jì)算Time on Page和Time on Site而言,這卻帶來了麻煩。當(dāng)用戶在另一個標(biāo)簽頁中打開同一個網(wǎng)站的鏈接,也就是同時通過兩個標(biāo)簽頁面來瀏覽同一個網(wǎng)站的時候,Time on Page和Time on Site會被計(jì)算成什么樣子?

這種情況混亂了網(wǎng)站分析工具對時間的計(jì)算。
下圖是一個普遍的用戶瀏覽網(wǎng)站場景,通過這個場景我們能夠理解多標(biāo)簽頁面瀏覽帶來的影響……

一個用戶來到上圖的首頁,然后在新的標(biāo)簽頁中打開了這個頁面上的一個鏈接,此時首頁占用了一個Tab頁,點(diǎn)擊鏈接新打開的頁面4占用了另一個Tab頁。這個時候,用戶瀏覽頁面4后沒有關(guān)閉頁面4,重新回到首頁的Tab繼續(xù)瀏覽首頁。在瀏覽首頁的過程中,用戶點(diǎn)擊了首頁上的另一個鏈接,跳轉(zhuǎn)轉(zhuǎn)到了頁面2,但沒有新開Tab,是當(dāng)前Tab頁打開。接著,用戶又切換到頁面4所在Tab,點(diǎn)擊鏈接進(jìn)入頁面5,在頁面5上關(guān)閉當(dāng)前Tab。再接著,用戶又點(diǎn)擊頁面2上的鏈接到了頁面3,當(dāng)然,還是同一個Tab。最后,在頁面3上關(guān)閉了這個Tab,會話結(jié)束。
Time on Site在這種情況下該如何計(jì)算呢?不同的網(wǎng)站分析工具對這種“多Tab型”的瀏覽行為有兩種計(jì)算方式。
方式一:
網(wǎng)站分析工具將上面的這種多Tab瀏覽的情況按Tab的不同,逐一進(jìn)行記錄,也就是發(fā)生下面的計(jì)算:
統(tǒng)計(jì)結(jié)果輸出:2個訪問過程(即2個Session),每個Session對應(yīng)一個Tab。
Session1(上圖中首頁所在Tab):
Tp (首頁) = 5 分鐘
Tp (頁面2) = 25 分鐘
Tp (頁面3) = 0 分鐘
Ts (同一Tab的整個訪問時長) = 30 分鐘
Session2(上圖中頁面4所在Tab):
Tp (頁面4) = 6 分鐘
Tp (頁面5) = 0 分鐘
Ts(新打開Tab的整個訪問時長) = 6 分鐘
這種情況下:網(wǎng)站分析工具的報告中會記錄2個Session,1個UV(Unique Visitor)。
方式二:
有一些網(wǎng)站分析工具會把這種多Tab合并為同一個訪問過程,以消除多個Tab(標(biāo)簽頁面)造成的影響。
還是上面那個例子,但是我們轉(zhuǎn)化一下表現(xiàn)方式——下圖標(biāo)示同樣的過程,不同的顏色代表不同的Tab。

統(tǒng)計(jì)結(jié)果輸出:1個訪問過程(即1個Session),在這個訪問過程中包含了兩個Tab。整個訪問過程通過“時間戳”被重新組織為上圖。
這個Session:
Tp (首頁) = 1 分鐘
Tp (頁面4) = 4 分鐘
Tp (頁面2) = 2 分鐘
Tp (頁面5) = 23 分鐘
Tp (頁面3) = 0 分鐘
Ts = 30分鐘
你認(rèn)為哪種統(tǒng)計(jì)方式更合理,更喜歡哪一種方式呢?
請一定要問清楚你的網(wǎng)站分析服務(wù)提供商,他們采取了上兩種方式中的哪一種來計(jì)算多Tab(標(biāo)簽頁面)瀏覽時的時間和訪問過程。
現(xiàn)在越來越多的人都在使用多Tab瀏覽,因此選用何種方式都將會對你網(wǎng)站分析最后的數(shù)據(jù)輸出有巨大影響——毫無疑問,兩種方式統(tǒng)計(jì)的最終數(shù)據(jù)肯定會有很明顯的差異。
解決方案:
獲取頁面(Tab)關(guān)閉時間(頁面關(guān)閉可以是通過關(guān)閉瀏覽器或Tab頁,或在地址欄鍵入一個不同的網(wǎng)址,或是點(diǎn)擊了你網(wǎng)站上鏈接到其他網(wǎng)站的鏈接……)
由部落邦(北京)科技有限責(zé)任公司自主研發(fā)的最新用戶體驗(yàn)可視化分析工具“邦分析”,獲取了頁面關(guān)閉時間,通過計(jì)算頁面打開與關(guān)閉的時間差,就能輕松準(zhǔn)確的獲取頁面停留時間及會話時間。

這個Session:
Tp (首頁) = 5 分鐘
Tp (頁面2) = 25 分鐘
Tp (頁面3) = 1 分鐘
Tp (頁面4) = 6 分鐘
Tp (頁面5) = 3 分鐘
Ts = 31分鐘
頁面停留時間是準(zhǔn)確獲取了,但其意義到底有多大?下一篇文章我們將詳細(xì)討論,敬請關(guān)注!
相關(guān)文章
Git提交文件到三個區(qū)的實(shí)現(xiàn)方法
本文主要介紹了Git提交文件到三個區(qū)的實(shí)現(xiàn)方法。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02
git如何還原到某次commit并強(qiáng)制推送遠(yuǎn)程
這篇文章主要介紹了git如何還原到某次commit并強(qiáng)制推送遠(yuǎn)程的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
RocketMQ單結(jié)點(diǎn)安裝/Dashboard安裝過程分享
RocketMq屬于天生集群,需要同時啟動nameServer和Broker進(jìn)行部署,在通過Dashboard進(jìn)行監(jiān)控,本文給大家介紹RocketMQ單結(jié)點(diǎn)安裝/Dashboard安裝過程,感興趣的朋友跟隨小編一起看看吧2024-07-07
VSCode gdb 調(diào)試 qemu u-boot 的方法詳解
這篇文章主要介紹了VSCode gdb 調(diào)試 qemu u-boot 的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
Scratch3.0二次開發(fā)之windows環(huán)境下打包成exe的流程
今天通過本文給大家分享Scratch3.0二次開發(fā)之windows環(huán)境下打包成exe的詳細(xì)流程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08

