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_start、video_complete、video_progress のマイルストーンが自動的に発生します(JS API のサポートを有効にする必要があります)。 |
| YouTube 以外の動画 (HTML5、Vimeo) | いいえ | カスタム実装が必要です。gtag.js を使用してプログラムでイベントを発生させるか、Google タグ マネージャー(GTM)を使用してトリガーを管理します。 |
| 標準のページ スクロール | 部分的 | ユーザーがページの 90% に達したときにのみ 、1 つの scroll イベントが発生します。 |
| 段階的な読了率 | いいえ | デフォルトの Google アナリティクス スクロール トラッキングを無効にし、カスタム スクロールしきい値(25%、50%、75% など)をプログラムで実装するか、GTM で実装します。 |
最もクリーンな代替手段: Google アナリティクスのセッション タイムアウトの上限を調整する
ウェブサイトが長尺のコンテンツ、動画コース、継続的なアプリの使用を中心に構成されている場合は、カスタム スクリプト ハックを挿入する必要はありません。Google アナリティクスのインターフェースで、デフォルトの 30 分のしきい値を最大 7 時間 55 分 まで調整できます。手順については、 セッション タイムアウトを調整するをご覧ください。