【问题标题】:How to track that how much time the user spent watching on a video in YouTube Player API [closed]如何跟踪用户在 YouTube Player API 中观看视频所花费的时间 [关闭]
【发布时间】:2016-02-09 05:50:57
【问题描述】:

如果有人在播放视频时离开,那么同一个人可以返回视频页面,网站会自动从用户离开时开始播放。
目前我正在使用 YouTube Player API 来加载视频。

我的朋友们,我该如何解决这个问题?
我不确定,但我正在尝试使用这个关键词进行研究。
但还没有完成。
“如何跟踪用户在 YouTube Player API 中观看视频所花费的时间”。

【问题讨论】:

  • 使用 YT API 并在 play 上启动计时器,在 pausestop 上停止它。从中计算观看时间。不是很准确,因为用户可能会打开播放器但未观看视频,但可能会观看
  • 是的,但我不知道如何跟踪用户在离开时花了多少时间观看该视频,然后又带着该视频回来。有没有YT API相关的函数可以获取?
  • 挂钩到 YT API 播放暂停、停止事件和启动/.stop 计时器
  • 你能给我写一个这个函数的例子吗?
  • 我很久以前就在使用 YT API,但是你可以直接像 javascript 中的任何其他事件一样挂钩事件,然后启动/停止计时器(或任何你用来测量时间的东西)

标签: api youtube tracking video-player


【解决方案1】:

使用YT API 并在play 上启动计时器,在pausestop 上停止它。不是很准确,因为用户可能会打开播放器但未观看视频,但可能会观看。

很久以前就在使用YT API,但是您可以直接像 javascript 中的任何其他事件一样挂钩事件,然后启动/停止计时器(或您用来测量时间的任何东西)。最初将total_viewed_time 设置为零,然后在play 上计算start_timestop/pause/finish 在查看时间之前更新total_viewed_time,即end_time-start_time。例如见下图:

var total_viewed_time = 0, start_time = 0, end_time = 0;

// assume we have a yt video which we we hook for events (see YT API for exactly how to hook)
ytvideo.on('play', function( ){
    start_time = new Date().getTime(); // milliseconds
    end_time = start_time;
});
ytvideo.on('pause stop finish', function( ){
   end_time = new Date().getTime(); // milliseconds
   total_viewed_time += end_time-start_time; // milliseconds
});

// total_viewed_time measures how much time (in milliseconds) the user had the player on (maybe watching?)
// you can then convert this time to seconds or minutes or whatever suits you
// to get the time in seconds do: total_viewed_time/1000
// to get the time in minutes do: total_viewed_time/(60*1000)
// and so on..

另外如果应用程序需要检查用户是否切换了浏览器选项卡或窗口,应用程序可以监听blurunfocus事件并停止计时器并在浏览器上重新启动它标签/窗口focus

  1. Is there a way to detect if a browser window is not currently active?
  2. Check if window has focus
  3. Detect If Browser Tab Has Focus

【讨论】:

  • 嗨@Nikos:谢谢你的例子。它非常有用。但是我们怎么知道谁是看过这个视频的用户呢?
  • @Jason,这取决于您的应用程序,您的应用程序应该保持当前用户的状态。然后只需将此信息添加到答案中的示例中。用户管理依赖于应用程序。有些可能使用外部登录(例如 facebook),而另一些可能使用内部用户数据库或两者兼而有之
  • 伟大的@Nikos!非常感谢您的支持。
  • @Jason,很高兴它有帮助,干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2019-08-17
  • 2015-04-29
  • 2015-01-01
  • 2018-04-09
相关资源
最近更新 更多