3

基本的に、私はシンプルな JavaScript プレーヤーを持っています。ユーザーがクリックして曲を再生すると、次のコードで追跡します。

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

これは完璧に機能し、10秒ごとにこのコードを再度トリガーします。これが同じ曲を同じユーザーが聴いていることを数秒余分にGoogleに伝える方法があるかどうか疑問に思っています.

多分このようなもの:

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

その後:

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

などなど、終了するまで続けますが、これまでのところ、Google はすべて別のイベントだと考えているようです。誰かが前にこのようなものに出くわしたことがありますか? 何か案は?

4

2 に答える 2

4

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']);
  }
}

もちろん、それを少しリファクタリングし、そのコードを少しDRYする必要がありますが、問題をどのように解決できるかについてのアイデアが得られるはずです。

于 2013-01-21T08:34:02.320 に答える