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

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

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

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

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

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

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

  • 表示回数(ページビュー数)は、ページパスが読み込まれた合計回数です。

例

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

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

ページパス セッション 視聴回数
/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% など)をプログラムまたは GTM で実装します。

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

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