3.4 セッションの定義
この章で学ぶこと
- セッションの始まりを示す
session_startイベント - セッションが終わるタイムアウトの仕組み
- 日付をまたぐセッションの扱い
- 途中で参照元が変わったときの扱い
- UA とセッション数がずれる理由
session_start イベント
セッション とは、ユーザーがサイトやアプリを訪れてから離れるまでの、ひとまとまりの訪問のことです。お店にたとえると「1 回の来店」にあたります。
GA4 では、セッションが始まると session_start という自動収集イベントが記録されます。同時に、そのセッションに含まれるすべてのイベントには、次のパラメータが付きます。
| パラメータ | 内容 |
|---|---|
ga_session_id | セッションの識別子(セッションが始まった時刻をもとにした値) |
ga_session_number | そのユーザーにとって何回目のセッションか |
レポートの「セッション数」は、ユーザーごとの ga_session_id の種類の数をもとに計算されます。
ユーザー A
├─ セッション 1(ga_session_id = 1730000000, ga_session_number = 1)
│ ├─ session_start
│ ├─ page_view /
│ ├─ page_view /products/
│ └─ scroll
└─ セッション 2(ga_session_id = 1730086400, ga_session_number = 2)
├─ session_start
├─ page_view /products/item-01/
└─ add_to_cart
ポイント セッションの識別子は「ユーザーごと」に付けられます。そのため、BigQuery でセッション数を数えるときは、
ga_session_idだけでなく、ユーザーの識別子と組み合わせて数える必要があります(第 10 部)。
タイムアウトの仕組み
セッションは、ユーザーが一定時間操作しないと終了します。この時間を セッションのタイムアウト と呼び、GA4 の既定値は 30 分 です。
10:00 page_view(セッション開始)
10:05 page_view
10:20 scroll
……操作なし……
10:55 page_view ← 最後の操作(10:20)から 30 分以上たっているので、新しいセッションが始まる
タイムアウトの変更
タイムアウトの時間は、管理画面の「データストリーム」→ ウェブ ストリーム →「タグ設定を行う」→「セッションのタイムアウトを調整する」で変更できます(5 分〜7 時間 55 分)。
| サイトの特徴 | タイムアウトの考え方 |
|---|---|
| 一般的なサイト | 既定の 30 分のままでよい |
| 長い動画や長文を、操作せずに見続けることが多い | 長めにする(例:60 分) |
| 短時間で用件が済むサイト | 既定のままでよい(短くする必要はあまりない) |
注意 タイムアウトを変更すると、変更した時点以降のセッション数が変わります。変更する場合は、その日付を記録しておき、前後で数値を比較するときに注意しましょう。
エンゲージメントのあったセッションの判定時間
同じ画面には、「エンゲージメントのあったセッションの時間を調整する」という設定もあります。これは、セッションが「エンゲージのあったセッション」と判定されるまでの時間(既定 10 秒、最大 60 秒)で、タイムアウトとは別のものです。詳しくは第 4 部で扱います。
日付をまたぐセッション
GA4 では、日付が変わってもセッションは途切れません。たとえば、23 時 50 分に訪れて 0 時 10 分まで閲覧したユーザーは、1 つのセッションとして扱われます。
23:50 session_start, page_view(10 月 28 日)
23:58 page_view(10 月 28 日)
00:05 page_view(10 月 29 日)
00:10 page_view(10 月 29 日)
→ セッションは 1 つ
ただし、日別のレポートで見ると、このセッションは 両方の日に 1 セッションずつ 数えられることがあります。そのため、日別のセッション数を足し合わせると、期間全体のセッション数よりわずかに多くなる場合があります。
ポイント 日別の数値を合計して月間の数値を出すのではなく、期間を 1 か月に指定して表示した数値を使いましょう。ユーザー数も同様で、日別のユーザー数を足しても月間のユーザー数にはなりません(同じ人が何日も来ていれば重複して数えられるため)。
参照元が変わったとき
UA では、セッションの途中で別の参照元から再び訪れると、新しいセッションが始まっていました。たとえば、検索から訪れたユーザーが、いったんほかのサイトに移り、10 分後にメールのリンクから戻ってきた場合、UA では 2 つのセッションとして数えられていました。
GA4 では、このような場合も 新しいセッションは始まりません。タイムアウト(30 分)の前に戻ってくれば、同じセッションの続きとして扱われます。
10:00 google 検索から訪問(セッション開始)
10:05 外部サイトへ移動
10:15 メールのリンクから戻る ← GA4 では同じセッション(UA では新しいセッション)
セッションの参照元はどれになるか
このとき、「セッションの参照元」は、セッションが始まったときの参照元(この例では google)になります。途中で訪れたメールのリンクは、セッションの参照元には反映されません。
ただし、イベント単位の「参照元」には、メールのリンクから戻ってきたあとのイベントについて、メールの情報が使われることがあります。キーイベントがどちらの流入の成果として数えられるかは、アトリビューションの設定(第 7 部)によって決まります。
UA とセッション数がずれる理由
ここまでの内容をまとめると、GA4 のセッション数が UA と異なる主な理由は、次のとおりです。
| 原因 | UA | GA4 | 影響 |
|---|---|---|---|
| 日付の切り替え | 新しいセッションを開始 | セッションは継続 | GA4 のほうが少なくなる |
| 途中での参照元の変化 | 新しいセッションを開始 | セッションは継続 | GA4 のほうが少なくなる |
| 計測の推計 | なし | 同意モードによるモデリングなど | 設定により異なる |
| セッション数の計算方法 | 実数をカウント | 推定アルゴリズムで高速に計算 | わずかな誤差が出ることがある |
| ボットやフィルタ | ビューのフィルタ | データフィルタ、既知のボットの自動除外 | 設定により異なる |
セッション数は推定値
意外に知られていませんが、GA4 のレポートに表示されるセッション数は、大量のデータを高速に集計するため、統計的な手法(HyperLogLog++ というアルゴリズム)で推定された値です。ユーザー数(アクティブ ユーザー数、総ユーザー数)も同じ手法で推定されています。
誤差はごく小さいため、日々の分析で気にする必要はほとんどありません。ただし、BigQuery で正確に数えた値と、GA4 の画面の値とが一致しない理由の一つとして知っておくとよいでしょう。
セッションに関するその他の指標
セッションに関連して、GA4 には次のような指標があります。いずれも第 4 部で詳しく解説します。
| 指標 | 意味 |
|---|---|
| セッション数 | 期間内に始まったセッションの数 |
| エンゲージのあったセッション数 | 10 秒以上継続、キーイベントの発生、2 回以上のページ表示のいずれかを満たしたセッションの数 |
| エンゲージメント率 | セッション全体のうち、エンゲージのあったセッションの割合 |
| ユーザーあたりのセッション数 | 1 人のユーザーが平均して何回訪れたか |
| セッションあたりの平均エンゲージメント時間 | 1 回の訪問で、どれくらいの時間ページを前面に表示していたか |
| セッションのキーイベント率 | キーイベントが発生したセッションの割合 |
まとめ
- GA4 のセッションは
session_startイベントで始まり、ga_session_idで識別される - 既定では、30 分操作がないとセッションが終わる。タイムアウトは変更できる
- GA4 では、日付が変わったり、途中で参照元が変わったりしてもセッションは途切れない
- そのため、GA4 のセッション数は UA よりも少なくなる傾向がある
- GA4 のセッション数やユーザー数は、統計的な手法による推定値である
次の章では、独自のパラメータをレポートで使えるようにする、カスタム ディメンションとカスタム指標の登録方法を学びます。