在线教育网站如何统计用户学习时长?

万能的laravel china,请教一个问题,在线教育网站要怎么统计用户的学习时长,比如说浏览时间观看视频时间、做练习测试时间等等?考虑过每隔一段时间进行一次打点的方案,但是这样做还有一个问题,如何判断有真实的用户行为采取触发打点事件,无用户行为不触发呢?
各位大佬,有没有比较成熟的解决方案。

shizhice
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

刚好在做类似的问题,扯几句那就:

  1. 你要考虑统计时长应该选取是统计看完某个视频还是在某个视频下持续观看指定时间
  2. 如果是采用看完策略就要考虑是否要屏蔽快进或者初次观看屏蔽快进及拖动
  3. 统计观看时间的话可以从拉流服务器来做,在拉流的时候带上用户ID(token),此种方法最为底层
  4. Ajax/WebSocket 统计时长也是比较简单的方法,videojs 等也可以设置某个时间点触发某个事件
  5. 检测用户是否真的观看是个难题了,Chrome 倒是可以调取摄像头,检测用户的眼球倒是可以的(我不信你还真要这么搞)
  6. 谷歌和亚马逊都有检测是否机器人的相关sdk,但是观看视频基本也可以是一两个小时没有任何操作的东西,没有键鼠操作,完全没有监测点,之前见过一套交互式教学视频播放器,在指定节点答相关的选择题等,起到加深知识点和检测用户是否在电脑前的左右,但是即使你使用了这个,你依然无法辨别是否本人,所以如果是强依赖本人全程观看的需求,基本只有视频录制一条录了,其他的我也想不出了,WebRTC 可以直接通过浏览器调取摄像头麦克风,还不需要带宽(点对点)
  7. 如果不是那么强的要求,隔一段时间出现个还在电脑前吗的 confirm/tips 之类的比较容易检测,或者直接忽视这个需求,本身没有特别好的方案。
6年前 评论
shizhice

@springjk 这个确实不好监测是否是机器人。需求也没有那么严格。现在主要的就是要统计用户持续观看重复观看也算。视频提供商用的保利威视,这方面没有找到相应的api,所以想自己打点做。但是打点要借助他sdk所提供的事件,我们app是用rn开发的,有些事件是触发不了的,所以没有办法统计。想请问下,有没有办法在不使用sdk的情况下,检测到视频(pc走的是flash播放,移动端才是h5)是否在播放。我想的是,定时打点,但前提是视频处于播放状态,当前窗口属于活跃状态。

6年前 评论

rn 是什么?React Native?不要乱用缩写 :confused: , 虽然我只用 VUE,但是这个无非也就是 JS,没什么触发不了的,都是自己写的客户端,哪有什么触发不了的,就是 Swift 写的也能触发事件啊。
至于 PC flash 播放, 移动端 HTML5 播放,那也是播放器啊,假设你们用的 videojs 吧,去看文档写事件就行了…… 视频流如果是第三方的如果不做中转就不好控制了,从播放器入手吧。

6年前 评论

已经一年了,楼主有可行性方案吧

5年前 评论
shizhice

@wanghang 已经换东家了,后续方案不太清楚嘞

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!