Google Analytics实时活动页面 - 保持活力



我有一个网站,它只是简单地流式传输视频长达两三个小时——一旦页面加载,就没有用户交互;我知道谷歌分析将实时功能的超时设置为 5 分钟。我想使用 javascript 保持页面活动状态,直到浏览器关闭,以便获得准确的实时报告。我对 js 相当陌生,所以我正在寻找合适的代码位......谢谢

您应该实现与播放器API交互的事件以接收来自播放器的调用 - YouTube和Vimeo内置了JavaScript API,可以发送事件,您可以捕获它们并在GA中记录事件 - 典型用法是监视播放/暂停事件,以间隔或播放的电影百分比跟踪播放进度。

您可以检查Sander Heilbron的准备使用插件:

  • 优酷追踪:https://github.com/sanderheilbron/youtube.ga.js
  • 维密欧跟踪:https://github.com/sanderheilbron/vimeo.ga.js

如果您使用其他播放器,则可以将这些插件用作框架来实现您自己的 api 调用。

如果您正在寻找心跳解决方案,您可以简单地选择此问题的解决方案:Google Analytics是否具有用于长时间运行的Web应用程序的"心跳"功能?

heartbeat-function-for-long-running-web-applicati
function ga_heartbeat(){
  _gaq.push(['_trackEvent', 'Heartbeat', 'Heartbeat', '', 0, true]);
  setTimeout(ga_heartbeat, 5*60*1000);
}
ga_heartbeat();

但是!正如在许多其他地方提到的,GA 对每个会话的请求有限制 - 上限设置为 500,当页面加载时,您实际上有大约 10-12 个令牌可以使用,并且每秒你会得到更多 - 最多 500。这是谷歌端的简单DDoS保护,在开发心跳时必须牢记这一点。

我认为最简单的方法是在用户开始流式传输后发送重复的事件。也有虚拟的网页浏览量,但它们会夸大总数并可能扭曲一些指标,所以我会坚持这些事件。

代码可能如下所示:

setInterval(function(){
  _gaq.push(['_trackEvent', 'Video', 'Playing', 'Name of the video?'])
},270000);

数字 270000 表示间隔的毫秒 - 这样函数将每 4.5 分钟(270 秒(执行一次。请记住,发送到Google Analytics的事件数量有一些限制(每次访问500次点击(,因此,如果有人整天都在观看流媒体视频,您最终可能会丢失它们。否则,这应该是一个很好的解决方法,即使不是"干净"的事情,也会起作用。

使用它的好处是您可以发送带有事件的其他数据 - 例如视频名称等。 希望这有帮助。