beforeunload丢失率统计

标签: 用户研究 前端技术 | 发表时间:2012-08-23 11:47 | 作者:鱼相
出处:http://ued.taobao.com/blog

        用户体验研究过程中,我们经常需要使用前端脚本采集用户访问行为相关的数据,例如监听鼠标的点击事件,记下点击的位置及被点击的元素等。一个不可避免问题是,何时将采集到的数据发送到服务器呢?最直接的方案是每次收集到数据后立即发送,但这可能会带来较多的HTTP请求,一方面降低页面的性能,另一方面也增加了打点服务器的压力。另一个方案是先将收集的数据缓存一下,然后按一定规则发送(比如每收集满10条数据发一次,或者每隔5秒钟发一次),其中最终极的方案是所有的数据都缓存起来直到离开页面之前(beforeunload事件触发时)再发送。不过这个终极方案也有自己的问题,比如beforeunload这个事件可靠吗?在这个事件中发送打点的丢失率有多少?近期我们就这些问题做了一个研究,对这个丢失率也有了一个更具体的认识。主要的研究过程如下:

        首先我们需要收集数据,这儿主要有两个数据:页面加载时立即发送一个打点,称为PV打点;监听页面的beforeunload事件,在这个事件触发时再发送一个打点,称为unload打点。显然,如果丢失率为0或非常小的话,PV打点的数目和unload打点的数目应该相等或非常接近。即丢失率的计算公式为:丢失率=(PV-unload)/PV*100%

        如下图所示:

统计流程概述

        按这个思路,我们在淘宝页面上进行了抽样埋点,并取得了足够多的PV及unload打点数据。但现实总是不完美的,整理这些数据的过程中,我们发现一些unload数据没有对应的PV数据,也就是说,由于各种各样的原因,不仅绑定beforeunload事件的unload打点有可能丢失,在页面初始化时发送的PV打点也可能丢失,尽管这个概率非常低。于是,我们又为打点添加了一个pvid参数,值为一个随机生成的字符串,每一组PV/unload打点的pvid都是相同的。这样,我们就能通过这个参数过滤出那些完整的PV/unload打点记录,再经过一些适当的整理,我们就得到了可以进行统计的有效数据。

        接下来,根据上面的公式,我们算出了beforeunload打点的总丢失率,约为20.81%,整个过程如下图所示:

beforeunload统计流程图

        使用上面的方法我们连续统计了若干天的数据,发现beforeunload的总体丢失率维持在20%附近。接下来,我们再把这个数据按浏览器进行细分,看各个浏览器下这个丢失率是否有差异。

        首先看一下当前浏览器分布情况:

浏览器分布

        清洗过的日志数据再根据UA字段细分后的结果为:

浏览器细分后的丢失率

        从上图可以看到,各大浏览器的表现并不一样,其中份额占比最大的IE8在丢失率上表现最好,远低于总体平均水平,而chrome和safari却远高于平均值。各浏览器的丢失率乘以它们各自的权重(市场份额)之后再求和,就得到了总的平均丢失率,在我们的实验中,这个总丢失率约为20%。

        结论:使用beforeunload事件打点并不可靠,总丢失率在20%左右,其中各浏览器的表现各不相同;当然在一些丢失率要求不高的采集任务中这个事件还是能派上用场的,比如说统计页面停留时间、页面内容曝光比例等。

        最后需要 特别说明的是:丢失率与用户浏览器分布情况、所采用的打点方式以及打点服务器响应速度等因素都有关,本结果仅供参考。

        统计人:鱼相、季札。

相关 [beforeunload 统计] 推荐:

beforeunload丢失率统计

- - Taobao UED Team
        用户体验研究过程中,我们经常需要使用前端脚本采集用户访问行为相关的数据,例如监听鼠标的点击事件,记下点击的位置及被点击的元素等. 一个不可避免问题是,何时将采集到的数据发送到服务器呢. 最直接的方案是每次收集到数据后立即发送,但这可能会带来较多的HTTP请求,一方面降低页面的性能,另一方面也增加了打点服务器的压力.

Google+统计报告

- pestwave - 36氪
Google+推出有一段时间了,用户性别比例如何呢. find people on plus对947996名Google+用户进行了统计,按照性别、地理位置、职位进行了分类,甚至还对来自Facebook和Google的员工进行了统计. 男:698,703 (73.70%). 女:234,504 (24.74%).

足球的统计

- Race forward! - 学而时嘻之
《足球的逻辑》这篇得到了不少有益的批评,以至于我很想写一个修改版,不过更有意思的做法是接着另写一篇. 更重要的是,这回终于可以提供一点数据支持了. 足球比赛的一个一般规律是下半场比上半场容易进球. 在以下几个大赛中,上下半场的进球比率分别是:. 98年世界杯:上半场39.2%,下半场60.8%. 02年世界杯:上半场41%,下半场59%.

hive 抽样统计

- - SQL - 编程语言 - ITeye博客
本文转自http://www.taobaotesting.com/blogs/2468,原文分层抽样的逻辑不是很清楚,按照自己的想法重新实现个. 用hive实现了随机抽样中简单随机、系统和分层抽样的方式,记得抽样的概念还是初中数据接触的. 其实很多时候不需要理论,想也是可以想到的,不过还是总结一下.

Oracle 统计信息

- - 数据库 - ITeye博客
--Oracle 优化器统计信息 Oracle优化器统计信息描述了关于数据库和相关对象的统计信息,当执行SQL查询时,优化器会使用这些统计信息估算出各种不同的执行计划的资源消耗, ,从而选择最高效的执行计划. 当统计信息缺失或者陈旧时,Oracle可能会选择错误的执行计划,导致SQL执行效率低下.

统计学习那些事

- Weyllor - 增强视觉 | 计算机视觉 增强现实
香港科技大学 电子与计算机工程系 [email protected]. 在港科大拿到PhD,做的是Bioinformatics方面的东西. Bioinformatics这个领域很乱,从业者水平参差不齐,但随着相关技术(比如Microarray, Genotyping)的进步,这个领域一直风风光光. 因为我本科是学计算机电子技术方面的,对这些技术本身并没有多大的兴趣,支持我一路走过来的一个重要原因是我感受到统计学习(Statistical learning)的魅力.

android混合统计图

- - Java - 编程语言 - ITeye博客
AChartEngine高级应用之CombinedXYChart(组合统计图)在单个统计图上显示多样化的数据. 现在是信息飞速发展时代,单个的统计图已经无法满足实际生产的要求,人们只想通过快速的观察就能知道很多信息,所以组合统计图就运用而生了,诸如,人们想了解一个地方的大致情况,首先可能要了解当地的天气情况,交通运输情况等,以下我模拟的是一个地方的天气、光照时间分布情况的统计图.

代码统计工具

- - 企业架构 - ITeye博客
代码统计工具:cloc(count lines of code)能够兼容windows和linux操作系统. 下载url:http://sourceforge.net/projects/cloc/files/cloc/. 下面以windows系统为例说明配置过程:. 下载cloc,并为cloc配置环境变量,使在windows命令行下所有目录可以执行cloc命令.

storm高并发UV统计

- - 企业架构 - ITeye博客
统计高并发UV可行的方案(类似WordCount的计算去重word总数):. bolt1通过fieldGrouping 进行多线程局部汇总,下一级blot2进行单线程保存session_id和count数到Map且进行遍历,可以得到:. Pv、UV、访问深度(按每个session_id 的浏览数).

移动市场统计分析

- 壮壮爱 - 译言-每日精品译文推荐
来源Microsoft\'s Growth of Mobile Marketing. 译者chunfengqiushui. 人们相比以前花更多的时间在手机上,这个新的市场包括:智能手机、SEO(搜索引擎优化)、移动网站、地理定位和社交营销. 全世界40多亿在用手机中有10.8亿是智能手机,30.5亿是能收发短信的手机.