3

所以基本上我有一个简单的 javascript 播放器,当用户点击播放歌曲开始时,我用这段代码跟踪它:

_gaq.push(['_trackEvent', 'player', 'play', 'songName', '0']);

这很完美,现在每 10 秒我再次触发此代码,我想知道是否有办法告诉谷歌这是同一用户正在收听的同一首歌曲,只需几秒钟。

也许是这样的:

_gaq.push(['_trackEvent', 'player', 'play', 'songName', '10']);

接着:

_gaq.push(['_trackEvent', 'player', 'play', 'songName', '20']);

依此类推,直到结束,但到目前为止,谷歌似乎认为它们都是不同的事件。有没有人遇到过这样的事情?有任何想法吗?

4

2 回答 2

4

AFAIK 在 GA 中确实没有一种简单的方法可以做到这一点(在 Omniture 等其他报告工具中实际上很容易),但是,你得到你所支付的!但这里有一些建议...

不是传递歌曲的当前位置,而是传递上一个事件滴答声消耗了多少。因此,换句话说,每 10 秒弹出一个值 10。然后在您的报告中,在指标组中,您可以使用“内容”>“事件值”指标来显示总量。这样做的主要缺点是它会告诉你一首歌的整体听了多少,但并不能真正告诉你人们听了多远。例如,如果它说“100”,那么它可能是 1 个人听 100 秒或 10 个人听 10 秒。当然,有一些方法可以获得更多的粒度,比如整体平均消费,但没有真正的桶可言。

另一种方法是为达到的里程碑百分比创建存储桶。大多数人做 10% 的增量或 25% 的增量。这是更常见的方法,因为它减少了向 GA 发出的请求数量,并使报告更清晰,需要排序的值更少(如果你仔细想想,知道有多少人在 36 秒与37 秒的东西可能不是很可操作)。

它看起来像这样:

初始播放

_gaq.push(['_trackEvent', 'player', 'songName', 'play']);

25% 听过

_gaq.push(['_trackEvent', 'player', 'songName', '25%']);

50% 听过

_gaq.push(['_trackEvent', 'player', 'songName', '75%']);

100% 聆听

_gaq.push(['_trackEvent', 'player', 'songName', '100%']);

于 2013-01-21T02:03:29.543 回答
0

正如我在评论中所说。只需触发开始事件,如果用户单击停止按钮或离开页面(onbeforeunload),则推送停止事件。

var isPlaying = false;
// the play start event
somestartbutton.onclick = function () {
   isPlaying = true;
  _gaq.push(['_trackEvent', 'player', 'songName', 'play']);
};


// the play start event
somestopbutton.onclick = function () {
  if (isPlaying) {
    isPlaying = false;
    _gaq.push(['_trackEvent', 'player', 'songName', 'stop']);
  }
};

// before the window is unloaded, which means the user leaves the page
window.onbeforeonload = function () {
  if (isPlaying) {
    isPlaying = false;
    _gaq.push(['_trackEvent', 'player', 'songName', 'stop']);
  }
}

当然,您应该稍微重构一下并稍微干燥代码,但它应该只是让您了解它如何解决您的问题。

于 2013-01-21T08:34:02.320 回答