Hi 欢迎来到易观方舟
有问题就找小舟助手
联系我们 周一至周五 10:00 - 18:00

产品咨询:4006 - 010 - 231 转 1

商务合作:4006 - 010 - 231 转 2

咨询与帮助

为什么网站页面浏览时长≠停留时长|易观方舟

从运营角度来看,用户在网站停留时间,反映了网站黏性。一般情况下,用户的需求与网站内容匹配度越高,页面浏览时间越容易聚拢在一个相对集中区间里,不会过短也不会过长。

 

在评估网站推广效果时,若来自某推广渠道的访客页面浏览时间集中在很短的区间内,则意味着该渠道的流量质量过低。我们经常会看到的转化率就与页面平均浏览时长密切相关,呈现一个正态分布的图形。

 

在数据获取阶段,如果不能准确的获取到用户在某个页面的停留时长,那么对于后续结论也会产生一定的误导。

 

目前三大主流计算方法

 

后一页面打开时刻减去前一页面打开时刻,得到前一页面的停留时长。这个方法有两个明显的不足:

 

1)最后一个页面的停留时间是访问不到的,如果一共只有一个页面,那么这个页面停留再久也不会进行统计;

 

2)对于同时打开很多页面的情况,则只有倒数第二个页面会得到相对准备的停留时长,而其它所有中间被打开的页面的停留时长都会被记录为一瞬间,有可能就会被作为脏数据抛弃掉了。

 

通过心跳包定时向发送数据包,为了不使客户端或服务端的负载过重,数据包发送的间隔一般被控制在15至30秒之间。好处是结合页面是否位于前台,可以更精确地计算所有页面的真实被浏览的时长。不足则数据包发送的时间间隔决定了统计的精度以及数据上报的负载,越大的精度意味着越高的负载。

 

主动在用户主动关闭页面时(onbeforeunload)发送数据包,通过关闭时间和打开时间之间的差值来获取页面停留时间。这样做是为了解决第一点中只打开一页时无法计算停留时长的问题,但这样的风险是并不能确保数据包发送100%成功。对于同时打开多个页面的情况,无法准确获取用户浏览时长的问题也依然没有解决,用户关闭某页面的时间减去页面被打开的时间,并不能真正体现用户的浏览时间,只能体现页面被打开的时间。另外,如果用户长期不关闭页面,页面的停留时长就会长得夸张,为了规避这个问题,也需要引入session或者其它约束。

 

由于网页端没有稳定的网页关闭的事件可以捕获,而且存在多个页面并存的情况,想获取足够精确的浏览时长心跳包看似是最好的方案。通过心跳包统计位于最前台的页面的时长,结合后一页进入时间及当前页关闭时间来对总时长进行校准。为了得到更加精准早期浏览时长,在起始的30秒内心跳包的发送频率为5秒;30秒到90秒内,发送频率为10秒,之后固定在15秒。心跳包对于长时间停留的,而没有用户交互的场景是非常好的解决方案,例如观看视频,但对于APP和网页端来说,那些长时间没有操作行为的场景并不多见,对于少数打开但没有操作的页面,我们就认为用户没有停留了,所以从实际场景出发,虽然心跳包更精准,但却不够经济了。

 

所以,目前客户端数据包上报成本依然还是一个影响体验的因素的现状下,我们没有选择将心跳包作为默认采集的功能,默认采集我们使用了打开及关闭时间做差的方案作为计算停留时长的默认方案。

 

最后,应用到实际的分析中,我们不能只看停留,还要看转化。这并不是本文的重点,但也抛出一种常见的场景,作为本文的结束,以表达,数据脱离业务只是数字。

相关推荐:

体验文中提到的功能

立即免费体验Demo

百闻不如一见

现在来体验方舟如何帮你挖掘商机、增长业绩

体验Demo