ユーザー スコープとセッション スコープのコンセプトの概要(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 分まで調整できます。手順については、セッションのタイムアウトを調整するをご覧ください。