セッションとユーザー エンゲージメントを測定する

ユーザーとセッションのスコープの概要(Google アナリティクスがセッションを定義し、非アクティブ状態によって厳密に制限する方法など)については、ディメンションと指標: アナリティクスのセッションについてと、トラフィック ソースのディメンションのスコープに関するガイドをご覧ください。

このガイドでは、セッション構成とパッシブ トラッキングを管理するための、デベロッパー固有の課題とベスト プラクティスについて説明します。

ページレベルのディメンションとセッション指標を組み合わせる

レポートでよく見られるニュアンスの 1 つは、ページスコープのディメンション(ページパスやスクリーン クラスなど)とセッション レベルのセッション数指標を組み合わせた場合です。

セッションとビューの定義

  • セッション数は、特定のページパスが 1 回以上読み込まれた一意の期間の数をカウントします。

  • ビュー(ページビュー)は、ページパスが読み込まれた回数の合計をカウントします。

例

ユーザーのナビゲーション パスが /home → /products → /home → 終了である 1 つのセッションを考えてみましょう。

このセッションのみの場合、[ページパスとスクリーン クラス] と [セッション数] または [ビュー数] の指標で構成されたレポートには、次のように表示されます。

ページ階層 セッション 視聴回数
/home 1 2
/products 1 1
合計(Google アナリティクスで重複除去済み) 1 3

行を合計すると 2 セッションになりますが、実際のプロパティの合計は重複除去されて 1 になります。

カスタマイズのルール

  • ページパスを含むセッション数は、そのパスを 1 回以上訪問したユニーク セッションの数を指します。
  • ランディング ページを含むセッション数は、パスで開始されたユニーク セッション数を表します。ランディング トラフィックを確認するには、常に [ランディング ページ + クエリ文字列] を使用します。ページパスを含むセッションは使用しないでください。
  • 視聴回数は常に合計読み込み回数をカウントします。

デベロッパーとアナリスト向けのベスト プラクティス

  • スコープを統一する: セッションのパフォーマンスを把握することが目的の場合は、ユーザー スコープのトラフィック ディメンション(ユーザーの最初のデフォルト チャネル グループなど)とセッション スコープの指標(平均セッション継続時間など)を混在させないでください。
  • DebugView で session_start を検証する: QA とベリフィケーションのフェーズでは、Google アナリティクスの DebugView などの標準のデバッグツールを使用して、セッションの開始時に session_start が正しく配信されることを確認します。

セッションのタイムアウトを管理するためのベスト プラクティス

Google アナリティクスのセッションのデフォルトの継続時間は 30 分です。

非アクティブ タイムアウトを防ぐために、Google アナリティクスに定期的に「ping」を送信するカスタムコードを実装することはおすすめしません。セッション指標を人為的に増やすと、ユーザー行動データが歪められます。代わりに、Google アナリティクスの組み込み機能を利用するか、有意義なエンゲージメント イベントをターゲットにして、よりクリーンなソリューションを提供します。

汎用的な「キープアライブ」ping が悪い習慣である理由

  • コア指標の歪み: ユーザーがタブから離れた場合、そのユーザーは実際に非アクティブです。セッションを強制的に開いたままにすると、「ゾンビ セッション」が作成され、平均セッション継続時間が誤って増加します。これにより、ユーザーが興味を失ったり、サイトを離れたりした実際のポイントがマスクされます。
  • エンゲージメント セッションへの影響: Google アナリティクスでは、エンゲージメント セッションは、10 秒以上継続したセッション、2 回以上のページビューが発生したセッション、またはキーイベント(以前のコンバージョン イベント)がトリガーされたセッションとして定義されます。セッションを人為的に開いたままにすると、セッションがエンゲージメントしているように見えるため、エンゲージメント率が上昇します。
  • データの肥大化とコスト: 空のバックグラウンド ping イベントを常に発生させると、イベント数のノイズが増加し、Google アナリティクスのデータを BigQuery にエクスポートしている場合はデータ ウェアハウスのコストが増加します。

パッシブ エンゲージメントをトラッキングするタイミング(およびその方法)

ユーザーがコンテンツに積極的に関与しているにもかかわらず、標準の Google アナリティクス インタラクション イベント(クリックやページの変更など)がトリガーされない正当なシナリオがあります。このような場合は、一般的なキープアライブ ping ではなく、意味のあるユーザー開始の進行状況イベントをキャプチャします。

  • 長尺動画コンテンツ: 45 分の動画を埋め込んで視聴しているユーザーは、30 分以上操作を行わないとセッションが終了する可能性があります。
  • 特集記事: ユーザーが技術ガイドを理解するために 40 分間費やし、ゆっくりとスクロールしても、ナビゲーション アクションがトリガーされないことがあります。
  • インタラクティブなウェブ アプリケーション: ライブフィード、株価ティッカー、データ ダッシュボードをモニタリングするユーザーは、クリックせずに情報を受動的に消費します。

ユーザーがブラウザ ウィンドウを最小化したり、タブを切り替えたりした場合は、バックグラウンドでの ping を停止する必要があります。

コード例: 可視性認識イベント ping

次の JavaScript パターンは、受動的なエンゲージメントをトラッキングし、タブの可視性を尊重する方法を示しています。動画や長文記事の一般的な長さなど、特定のユースケースに基づいて、トラッキング間隔とパラメータ値(5 分や 300,000 ミリ秒など)を調整します。

const TRACKING_INTERVAL_MILLIS = 5 * 60 * 1000;

let engagementInterval;

function startEngagementTracking() {
  // Prevent duplicate intervals if tab becomes visible
  if (engagementInterval) return;

  engagementInterval = setInterval(() => {
    gtag('event', 'passive_engagement', {
      'engagement_time_msec': TRACKING_INTERVAL_MILLIS
    });
  }, TRACKING_INTERVAL_MILLIS);
}

function stopEngagementTracking() {
  if (engagementInterval) {
    clearInterval(engagementInterval);
    engagementInterval = null;
  }
}

// Start tracking initially if the page is visible
if (!document.hidden) {
  startEngagementTracking();
}

// Stop tracking when tab is hidden, resume when visible
document.addEventListener('visibilitychange', () => {
  if (document.hidden) {
    stopEngagementTracking();
  } else {
    startEngagementTracking();
  }
});

Google アナリティクスの拡張計測機能とカスタム トラッキング

Google アナリティクスの拡張計測機能は、特定の制限はあるものの、一部のパッシブ トラッキング シナリオを自動的に処理します。

インタラクションの種類 拡張計測機能で処理されますか? 要件 / アクション アイテム
YouTube 動画の埋め込み はい 10%、25%、50%、75% の時点で video_start、video_complete、video_progress のマイルストーンを自動的に配信します(JS API サポートが有効になっている必要があります)。
YouTube 以外の動画 (HTML5、Vimeo) いいえ カスタム実装が必要です。gtag.js を使用してイベントをプログラムで配信するか、Google タグ マネージャー(GTM)を使用してトリガーを管理します。
標準のページ スクロール 部分的 ページの 90% に達したときにのみ、1 つの scroll イベントを発行します。
音読の習熟度の進捗 いいえ デフォルトの Google アナリティクスのスクロール トラッキングを無効にし、カスタムのスクロールしきい値(25%、50%、75% など)をプログラムで実装するか、Google タグ マネージャーで実装します。

最も簡単な代替手段: Google アナリティクスのセッションのタイムアウトの上限を調整する

ウェブサイトが長文コンテンツ、動画コース、継続的なアプリの使用を中心に構成されている場合は、カスタム スクリプトのハックを挿入する必要はありません。Google アナリティクスの管理画面で、デフォルトの 30 分間のしきい値を最大 7 時間 55 分まで調整できます。手順については、セッションのタイムアウトを調整するをご覧ください。