统计视频观看时长的相关方式说明

不少教育类场景都有统计观众的视频观看时长的需求,以此来判断是否完成了课程,能否触发下一步动作(比如观看下一阶段的课程),或者单纯统计并在前台显示观众的观看时长以及观看视频数量。

整体来看统计观看时长有两种方案,一种是通过服务端API来获取统计数据,另一种是借助前端播放器提供的接口,业务方自己统计,两种方案的优劣及适用场景见下表:

统计方式前端统计服务端API获取

时效性

实时

非实时。由于服务端需要处理整个平台的播放数据,所以会有一定延时。

数据准确性

准确

有轻微误差。因网络、链路等影响,前端上报的播放数据有可能会发送失败,所以服务端返回的观看时长不能保证绝对准确。

开发成本

较高,业务方需借助播放器的相关接口,自行在前端计算观看时长等数据并上报业务后台。

低,只需调用对应的API来获取统计结果。

适用场景

对统计实时性要求高的业务场景

对统计实时性要求不高的业务场景

前端统计方式介绍

Web播放器(包括PC H5、Flash、移动端H5播放器)

在Web页面播放视频时,可借助播放器提供的相关接口、事件并结合自身业务规则来统计所需的数据,并上报自己的业务系统。

接口:

  • j2s_getCurrentTime() //获取当前播放的时间点,比如视频播放到第20s时返回:20。

  • j2s_realPlayVideoTime() //获取正片播放时间,不包括广告、片头、暂停、片尾等时间,视频播放过程中该值会累加。

事件:

  • s2j_onPlayStart // 播放器成功加载视频文件并缓冲完成后,即将开始播放时触发。

  • s2j_onPlayOver // 播放结束后触发。

其它的播放器属性、接口和事件详见属性和接口说明

注:j2s_realPlayVideoTime获取的是播放的自然时间时长,比如当使用2倍速播放到视频的第60s时: player.j2s_getCurrentTime() = 60 player.j2s_realPlayVideoTime() = 30

移动端SDK(Android SDK、iOS SDK)

在APP中播放视频时,可使用保利威点播SDK提供的相关接口、事件并结合自身业务规则来统计所需的数据,并上报自己的业务系统。

iOS SDK:

  • @property (nonatomic, assign, readonly) NSTimeInterval viewerWatchDuration // 用户观看时间,假如用2倍速播放到视频的第60s,该方法返回30。

  • @property (nonatomic, assign, readonly) NSTimeInterval videoContentPlayedTime //视频内容播放的时间,假如用2倍速播放到视频的第60s,该方法返回60。

Android SDK:

  • getWatchTimeDuration() // 用户观看时间,假如用2倍速播放到视频的第60s,该方法返回30。

  • getVideoContentPlayedTime() // 视频内容播放时间,假如用2倍速播放到视频的第60s,该方法返回60。

SDK也都有播放开始、完成、出错等事件回调,其它的播放器属性、接口和事件详见Github文档:iOS,Android

服务端API获取方式介绍

通过观看日志:

通过视频完成度接口:

接口文档:获取视频观看完成度接口)

该接口可查看某一观众累计观看某一视频的完成度情况。无论观众使用哪种终端、分多少次观看,接口返回的是最终的汇总的完成度。

比如,视频A时长为50分钟,观众使用PC H5观看了第020分钟,使用手机H5观看了第1030分钟,又使用APP观看了第4050分钟,累计观看时长为20+20+10=50分钟,但观看的视频内容是 030 和 40~50 的部分。虽然累计观看时长与视频时长相同,但完成度为 (30+10)/50=80%。而用前端统计的方式,只能统计当次观看的时长,即使通过业务后台汇总累加了每次的时长,也只能通过对比观看时长和视频时长来判断是否完成了观看,上述例子中观看时长与视频时长相同,但实际完成度是80%。

通过视频高级分析来统计:

功能说明文档:高级分析功能说明

接口文档:高级分析-分页查询观看行为列表

注:

  • 通过观看日志接口获取的数据在正常情况下的延时为10分钟。

  • 后台导出excel表中的开始时间,是数据存储的时间,并不等同于视频开始播放的时间。

  • 视频观看完成度在服务端每隔1小时计算一次,也就是有最大1小时的延迟。

  • 高级分析每天统计一次,也就是有最大24小时的延迟。

  • 完成度接口和高级分析中的完成度是基于视频正常速度来计算的,假如用2倍速完整观看一个视频,完成度会计算为50%。

Last updated