ページ トラッキング

ページ トラッキングを使用すると、ウェブサイトの特定のページで発生したビューの回数を測定できます。多くの場合、ページは HTML ドキュメント全体に対応しますが、動的に読み込まれるコンテンツを表す場合もあります。これは「仮想ページビュー」と呼ばれます。

このガイドでは、analytics.js でページ トラッキングを実装する方法を説明します。

概要

JavaScript トラッキング スニペットには、トラッカー オブジェクトを作成するコマンドと、Google アナリティクスにページビューを送信するコマンドが含まれています。トラッカーが作成される際は、表示環境に応じて複数のフィールドが設定されます。title フィールドには document.title の値が設定され、location フィールドには document.location の値が設定されます。このとき、URL のアンカー部分は無視されます。

send コマンドが実行されると、トラッカーに保存された title フィールドと location フィールドが送信されます。これらの値は、ユーザーが訪問したページをレポートで確認できるように Google アナリティクスで使用されます。

デフォルトのトラッカーでは page フィールドは設定されません。ただし、手動で設定した場合は値がレポートのページパスとして使用され、location フィールドの値がオーバーライドされます。

実装

ページビュー ヒットは、send コマンドを使用して hitTypepageview を指定することで送信できます。pageview ヒットタイプの場合、send コマンドのシグネチャは次のようになります。

ga('send', 'pageview', [page], [fieldsObject]);

ページビュー フィールド

次の表には、ページビューのトラッキングに関連する主なフィールドがまとめられています。詳細(および追加のフィールド)については、フィールド リファレンスコンテンツ情報をご覧ください。

フィールド名 値の型 必須 説明
title テキスト いいえ ページのタイトル(例: ホームページ)。
location テキスト いいえ * トラッキングするページの URL。
page テキスト いいえ * URL のパス部分。この値はスラッシュ(/)で始めてください。

*  page フィールドと location フィールドは必須ではありませんが、ヒットを有効にするにはいずれかが必要です。

例:

次のコマンドでは、現在のページのパスを含めてページビュー ヒットを Google アナリティクスに送信します。

ga('send', 'pageview', location.pathname);

すべての send コマンドと同様に、フィールドを簡便なパラメータに渡して fieldsObject に指定できます。上のコマンドは、次のように書き換えることができます。

ga('send', {
  hitType: 'pageview',
  page: location.pathname
});

ページ URL を変更する

場合によっては、ユーザーのブラウザのアドレスバーに表示される URL とは異なる URL を Google アナリティクスに送信できます。たとえばあるサイトに、ユーザーがログインして、自分の個人情報を表示または編集するページがいくつかあるとします。このサイトに、個人情報、アカウント情報、通知設定のページが個別にある場合、これらのページの URL は次のようになります。

  • /user/USER_ID/profile
  • /user/USER_ID/account
  • /user/USER_ID/notifications

各ページに訪問するユーザーの合計数を確認する場合、固有の User ID 値が URL に含まれると確認が困難になります。

この問題を解決するには、次のように User ID を削除した page 値を指定します。

// Checks to see if the current user's userID is
// found in the URL, if it is, remove it.
// (Note, this assume the user ID is stored
// in a variable called `userID`)

if (document.location.pathname.indexOf('user/' + userID) > -1) {
  var page = document.location.pathname.replace('user/' + userID, 'user');
  ga('send', 'pageview', page);
}

このコードでは、すべてのユーザーで次の page 値が送信されます。

  • /user/profile
  • /user/account
  • /user/notifications

現在のページで他のヒット(イベントなど)を送信する場合は、各ヒットを正しい URL で送信できます。その際は、send コマンドで渡す代わりに、トラッカーの page フィールドを更新してください。

トラッカーに設定することで、新しい page 値は後続するすべてのヒットで使用されます。

if (document.location.pathname.indexOf('user/' + userID) > -1) {
  var page = document.location.pathname.replace('user/' + userID, 'user');

  // Sets the page value on the tracker.
  ga('set', 'page', page);

  // Sending the pageview no longer requires passing the page
  // value since it's now stored on the tracker object.
  ga('send', 'pageview');
}

仮想ページビューのトラッキング

最近の多くのサイトでは、各「ページ」でページ全体を読み込むことなく、AJAX で動的にコンテンツが読み込まれます。このようなサイトは一般的に、単一ページ アプリケーション(SPA)と呼ばれます。

ウェブサイトが動的にページ コンテンツを読み込み、ドキュメントの URL を更新する場合は、追加のページビューを送信することで、これらの「仮想ページビュー」をトラッキングできます。実装について詳しくは、単一ページ アプリケーションのトラッキング(analytics.js)のガイドをご覧ください。