beforeunload丢失率统计
用户体验研究过程中,我们经常需要使用前端脚本采集用户访问行为相关的数据,例如监听鼠标的点击事件,记下点击的位置及被点击的元素等。一个不可避免问题是,何时将采集到的数据发送到服务器呢?最直接的方案是每次收集到数据后立即发送,但这可能会带来较多的HTTP请求,一方面降低页面的性能,另一方面也增加了打点服务器的压力。另一个方案是先将收集的数据缓存一下,然后按一定规则发送(比如每收集满10条数据发一次,或者每隔5秒钟发一次),其中最终极的方案是所有的数据都缓存起来直到离开页面之前(beforeunload事件触发时)再发送。不过这个终极方案也有自己的问题,比如beforeunload这个事件可靠吗?在这个事件中发送打点的丢失率有多少?近期我们就这些问题做了一个研究,对这个丢失率也有了一个更具体的认识。主要的研究过程如下
我们需要收集数据,这儿主要有两个数据页面加载时立即发送一个打点,称为PV打点;监听页面的beforeunload事件,在这个事件触发时再发送一个打点,称为unload打点。显然,如果丢失率为0或非常小的话,PV打点的数目和unload打点的数目应该相等或非常接近。即丢失率的计算公式为丢失率=(PV-unload)/PV100%
如下图所示
按这个思路,我们在淘宝页面上进行了抽样埋点,并取得了足够多的PV及unload打点数据。但现实总是不完美的,整理这些数据的过程中,我们发现一些unload数据没有对应的PV数据,也就是说,由于各种各样的原因,不仅绑定beforeunload事件的unload打点有可能丢失,在页面初始化时发送的PV打点也可能丢失,尽管这个概率非常低。于是,我们又为打点添加了一个pvid参数,值为一个随机生成的字符串,每一组PV/unload打点的pvid都是相同的。这样,我们就能通过这个参数过滤出那些完整的PV/unload打点记录,再经过一些适当的整理,我们就得到了可以进行统计的有效数据。
接下来,根据上面的公式,我们算出了beforeunload打点的总丢失率,约为20.81%,整个过程如下图所示
使用上面的方法我们连续统计了若干天的数据,发现beforeunload的总体丢失率维持在20%附近。接下来,我们再把这个数据按浏览器进行细分,看各个浏览器下这个丢失率是否有差异。
看一下当前浏览器分布情况
清洗过的日志数据再根据UA字段细分后的结果为
从上图可以看到,各大浏览器的表现并不一样,其中份额占比最大的IE8在丢失率上表现最好,远低于总体平均水平,而chrome和safari却远高于平均值。各浏览器的丢失率乘以它们各自的权重(市场份额)之后再求和,就得到了总的平均丢失率,在我们的实验中,这个总丢失率约为20%。
结论使用beforeunload事件打点并不可靠,总丢失率在20%左右,其中各浏览器的表现各不相同;在一些丢失率要求不高的采集任务中这个事件还是能派上用场的,比如说统计页面停留时间、页面内容曝光比例等。
需要特别说明的是丢失率与用户浏览器分布情况、所采用的打点方式以及打点服务器响应速度等因素都有关,本结果仅供参考。
统计人鱼相、季札。
文章来源
网络推广网站
- 产品推广介绍怎么写 产品推广介绍200字
- 百度推广代理公司 百度推广代理公司怎么赚钱
- app拉新推广平台有哪些 app拉新推广平台渠道
- 互联网推广项目 互联网推广项目论坛
- 抖音怎么推广引流 怎么把抖音流量做上去
- 广告推广免费平台 免费广告推送
- 什么是网店推广 网店推广是什么
- 十大免费网站推广 成免费的crmbsm
- app推广链接 推广链接制作软件
- 114黄页网推广 达州114黄页网是什么
- 40个免费网站推广平台 免费网站推广产品
- 18种最有效推广的方式 18种最有效推广的方式抖音
- 抖音广告怎么投放 抖音广告怎么投放电话
- 广告推广 精准引流 推广引流广告词
- 百度关键词推广怎么做 百度怎么发布自己的广告
- 100个免费推广网站 有哪些100个免费推广网站