Rails如何跟踪用户在视频流上的行为,并保存到数据库中

Rails how to track user behaviour on video streaming, and save to database

本文关键字:保存 数据库 何跟踪 跟踪 视频 用户 Rails      更新时间:2023-09-26

我还是rails的新手,我正在努力建立一个网站,可以记录用户在网站上观看任何视频的时间。例如,在用户1观看视频B后,我想知道用户观看视频B的时间,而不是他流式传输视频的时间(只计算他观看的部分),然后将数据发送回服务器,这样我就可以有一个如下表:
用户1观看视频B 15分钟
 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp;10分钟的视频C
用户2观看视频E 2分钟
 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp;视频C持续5分钟
如何计算用户在观看上花费的总时间?我知道有很多播放器Javascript API在触发播放停止或暂停等事件时提供当前时间,但我应该在客户端计算吗?或者只是将当前时间发送回服务器,然后在服务器端计算?请帮我找到一个粗略的解决方案。

TL;DR:使用js脚本跟踪元素并将其保存到数据库中。

您必须跟踪页面中所有可能的用户事件。因此,您可以计算用户是否观看、暂停或停止了视频。大致上,您可以声明四种状态:播放、停止、暂停和退出。

当用户点击"播放"按钮时,您会随着时间将这些事件跟踪到日志事件中。"暂停"answers"停止"也是如此。然后,你只需分析你的日志表就可以知道有多少人被观看了。例如:

| id | user | event | time | |----|------|-----------|----------| | 1 | John | start | 12:00:00 | | 2 | John | pause | 12:01:30 | | 3 | John | start | 12:02:00 | | 4 | John | exit_page | 12:03:00 |

跟踪用户事件,我们计算时间为:1分30秒(当"John"启动然后暂停视频时)加1分钟(当"约翰"再次启动直到他关闭页面时),总计2分30秒。

您需要一个js脚本将这些事件发送到后端,然后将其保存到日志表中。然后检索所有用户操作并计算。

当然,还有更复杂的方法,但这是一个快速的方法,可以解决您的问题,我们会引导您找到另一个解决方案。