このガイドでは、analytics.js を使用してイベント トラッキングを実装する方法を説明します。
概要
「イベント」はコンテンツとユーザーの接点であり、ウェブページやアプリの画面の読み込みとは関係なくトラッキングできます。ダウンロード、モバイル広告のクリック、ガジェット、Flash の要素、AJAX の埋め込み要素、動画の再生などはすべて、「イベント」としてトラッキングできます。
Google アナリティクスのイベントについて不明点がある場合は、まずアナリティクス ヘルプセンターのイベントについてをご覧ください。
実装
イベントヒットは、send コマンドを使用し、hitType に event を指定することで送信できます。event ヒットタイプの場合、send コマンドのシグネチャは次のようになります。
ga('send', 'event', [eventCategory], [eventAction], [eventLabel], [eventValue], [fieldsObject]);
イベント フィールド
次の表にイベント フィールドをまとめます。
| フィールド名 | 値の型 | 必須 | 説明 |
|---|---|---|---|
eventCategory |
テキスト | はい | 通常は接点に使用されたオブジェクト(例: 'Video') |
eventAction |
テキスト | はい | 接点の種類(例: 'play') |
eventLabel |
テキスト | いいえ | イベントの分類に便利(例: 'Fall Campaign') |
eventValue |
整数 | いいえ | イベントに関連する数値(例: 42) |
各フィールドの詳細については、アナリティクス ヘルプセンターのイベントの要素をご覧ください。
例:
次のコマンドでは、秋のキャンペーンのプロモーション動画が再生されたことを示すイベントを Google アナリティクスに送信しています。
ga('send', 'event', 'Videos', 'play', 'Fall Campaign');
すべての send コマンドと同様に、フィールドを簡便なパラメータに渡して fieldsObject に指定できます。上のコマンドは、次のように書き換えることができます。
ga('send', {
hitType: 'event',
eventCategory: 'Videos',
eventAction: 'play',
eventLabel: 'Fall Campaign'
});
アウトバウンドのリンクやフォーム送信のトラッキング
ユーザーがサイト上で別のページに移動するリンクをクリックすると、一般的には、ユーザーがそのページに移動したときにページビューのヒットが送信されます。一連のページビューが発生するため、ユーザーの移動先(および移動前)の地点を Google アナリティクスがバックエンドで認識することが可能になります。しかし、ユーザーが外部ドメインへのリンクをクリックした場合や、外部ドメインにフォームを送信した場合は、Google アナリティクスで内容を具体的に指定しないと該当の操作はトラッキングされません。
アウトバウンドのリンククリックやフォーム送信をトラッキングするには、イベントを送信し、イベント フィールドの 1 つを使用してリンク先 URL を指定します。次のイベント ハンドラ関数を使用すると Google アナリティクスにアウトバウンドのリンククリック イベントを送信できます。
function handleOutboundLinkClicks(event) {
ga('send', 'event', {
eventCategory: 'Outbound Link',
eventAction: 'click',
eventLabel: event.target.href
});
}
ほとんどのブラウザでは新しいページの読み込みが始まると JavaScript の実行が停止されるため、アウトバウンドのリンククリックやフォーム送信のトラッキングは複雑になる場合があります。この問題の解決策としては、次のように transport フィールドを beacon に設定する方法があります。
function handleOutboundLinkClicks(event) {
ga('send', 'event', {
eventCategory: 'Outbound Link',
eventAction: 'click',
eventLabel: event.target.href,
transport: 'beacon'
});
}
ビーコン送信メソッドをサポートしていないブラウザの場合は、イベントの送信が完了するまで次のページへの移動を延期する必要があります。この方法の詳細については、Google アナリティクスにデータを送信する方法についてのガイドでヒットが送信されたタイミングを確認するをご覧ください。
インタラクション以外のイベント
場合によっては、イベントをインタラクション以外のイベントとして送信できます。その場合は、nonInteraction フィールドを true に指定します(send コマンドの fieldsObject を使用)。
ga('send', 'event', 'Videos', 'play', 'Fall Campaign', {
nonInteraction: true
});
インタラクション以外のヒットの詳細と使用のタイミングについては、アナリティクス ヘルプセンターのインタラクション以外のイベントをご覧ください。
