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

Google アナリティクスでセッションが定義され、非アクティブ状態によって厳密に区切られる仕組みなど、ユーザー スコープとセッション スコープの概念については、 ディメンションと指標: アナリティクスのセッションについてと、トラフィック ソース ディメンションの スコープに関するガイドをご覧ください。

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

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

レポート作成でよくある問題の 1 つは、ページ スコープのディメンション(ページパスやスクリーン クラスなど)とセッション レベルのセッション指標を組み合わせた場合に発生します。

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

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

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

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

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

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

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

カスタマイズのルール

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

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

  • スコープの一貫性を保つ: セッションのパフォーマンスを把握することが目的の場合は、ユーザー スコープのトラフィック ディメンション( たとえば、ユーザーの最初のデフォルト チャネル グループなど)とセッション スコープの指標( たとえば、セッション継続時間の平均など)を混在させないでください。
  • DebugView で session_start を検証する: 品質保証と検証 の段階では、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_startvideo_completevideo_progress のマイルストーンが自動的に発生します(JS API のサポートを有効にする必要があります)。
YouTube 以外の動画 (HTML5、Vimeo) いいえ カスタム実装が必要です。gtag.js を使用してプログラムでイベントを発生させるか、Google タグ マネージャー(GTM)を使用してトリガーを管理します。
標準のページ スクロール 部分的 ユーザーがページの 90% に達したときにのみ 、1 つの scroll イベントが発生します。
段階的な読了率 いいえ デフォルトの Google アナリティクス スクロール トラッキングを無効にし、カスタム スクロールしきい値(25%、50%、75% など)をプログラムで実装するか、GTM で実装します。

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

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