统计视频观看时长的相关方式说明
不少教育类场景都有统计观众的视频观看时长的需求,以此来判断是否完成了课程,能否触发下一步动作(比如观看下一阶段的课程),或者单纯统计并在前台显示观众的观看时长以及观看视频数量。
整体来看统计观看时长有两种方案,一种是通过服务端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获取方式介绍
通过观看日志:
或者通过点播后台→数据统计→观看日志,可查看并导出视频ID、观众ID、观看时长等数据。
通过视频完成度接口:
接口文档:获取视频观看完成度接口)
该接口可查看某一观众累计观看某一视频的完成度情况。无论观众使用哪种终端、分多少次观看,接口返回的是最终的汇总的完成度。
比如,视频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