有問題可以在文章底部留言

認識 Google Analytics 4 的工作階段(Sessions)

Google Analytics Haran 4年前 (2022-04-14) 21675次瀏覽 6條留言

更新時間:2026年6月2號

在 Universal Analytics(UA)中,「工作階段」一直是最重要的分析指標之一。

雖然GA4改採事件作為資料模型,但工作階段並沒有消失,反而仍然是流量分析、來源歸因、轉換分析的重要基礎。

本文將從工作階段的建立方式、Session ID、Cookie、到工作階段相關指標,完整解析GA4工作階段的運作原理。

什麼是工作階段(Session)?

可以將工作階段理解為一次訪問。

使用者第一次訪問,就會創建新的工作階段,就可以當做是一次訪問,工作階段的持續時長沒有限制,在離開(閒置)30分鐘後結束。

 

工作階段如何開始?

GA4建立新工作階段主要有兩種情況:

  • 第一次造訪網站
  • 前一個工作階段已逾時(預設30分鐘)

對於第二種情況也可以理解為:只要兩次事件之間的間隔超過工作階段逾時時間,GA4就會建立新的工作階段。

例如:

時間 行為 工作階段
10:00 瀏覽首頁 Session 1
10:20 點擊產品頁 Session 1
11:45 瀏覽文章頁 Session 2
解析:
  • 10:20訪問,是第一次造訪,因此建立Session 1
  • 10:20與10:00相隔僅20分鐘,未超過30分鐘,因此仍屬於Session 1
  • 11:45與10:20相隔超過30分鐘,因此GA4會建立新的工作階段 Session 2

重點: 工作階段是否重新開始,取決於兩次事件之間的時間間隔是否超過工作階段逾時時間(預設30分鐘),而不是從第一次進站開始累計30分鐘。

如何調整工作階段逾時時間

工作階段逾時預設是30分鐘,是可自行調整,調整的位置在串流詳情裡的「进行代碼設定」(Google代碼裡)——「全部顯示」——「調整工作階段逾時 」:

認識 Google Analytics 4 的工作階段(Sessions)

 

工作階段的運作原理

在GA4中,每個工作階段開始時,都會自動觸發session_start事

例如使用者第一次進入網站,事件通常會依照以下順序發生:

first_visit——>session_start——>page_view

當GA4判斷當前沒工作階段,GA4便會建立了一個新的工作階段,並為該工作階段指派兩個重要參數:

  • ga_session_id(sid):叫工作階段ID ,用於區分不同的工作階段,它的本質是時間戳,因此不同使用者在同一秒開始工作階段時,理論上可能擁有相同的sid,所以BigQuery通常需要搭 user_pseudo_id一起識別工作階段
  • ga_session_number(sct):叫工作階段號碼 ,表示是第幾個工作階段數

 

注意:sid和sct並非由session_start事件產生

許多人會以為sid和sct是session_start事件建立的,但實際上並非如此。

從BigQuery的原始事件可以觀察到,在第一次造訪時,first_visit通常比session_start更早送出,但first_visit已經包含sid和sct。

這表示GA4在建立新工作階段時,就已經產生了sid與sct,然後將這兩個參數附加到屬於該工作階段的所有事件中,而session_start 只是其中一個自動收集的事件。

因此,可以將整個流程理解為:

建立新工作階段(產生sid、sct)——>first_visit——>session_start——>page_view

 

工作階段與事件的關聯

從前面可知:GA4在建立新的工作階段後,並為該工作階段指派sid和sct兩個重要參數。

之後,屬於該工作階段的所有事件,都會附帶這兩個參數一起傳送給GA4,如

認識 Google Analytics 4 的工作階段(Sessions)

因此GA4知道每個事件屬於哪一個工作階段,並將它們歸屬到同一個工作階段。

 

工作階段與Cookie的關聯

為了讓後續送出的每一個事件都能知道目前屬於哪一個工作階段,GA4將 sid、sct等資訊儲存在Cookie _ga_<container-id>裡,之後每次送出事件時都會讀取這些值,如:

認識 Google Analytics 4 的工作階段(Sessions)

各欄位說明如下:

認識 Google Analytics 4 的工作階段(Sessions)

$是分隔符,各部分的作用如下:

參數 解釋
GS GS是固定標識符
2 分析版本,有1和2,目前主要都是2
1 網域層級
1674571586 工作階段ID
18 工作階段數
0 互動工作階段, 1 表示互動工作階段, 0 表示非互動
1674571586 當前時間戳
60 倒計時,60秒倒計時,當開啟Google Signal時Cookie與使用者資料匹配的一個參數
0 登入狀態,1表示登录且设置User ID,0表示未登录
0 Enhanced Client Id,簡稱ecid,叫加強型用戶端ID,開啟「收集 User-ID 和使用者提供的資料
」或佈署伺服端追蹤才有值,是一串數字。
riYSmWx3uWvuJEDkCvwJCnvET7QcvFq7kg 啟用Google信號資料收集時會有該字段,所示該字段是Google信號或Google信號的關聯ID

工作階段數的計算方式

雖然每個工作階段開始時,都會自動觸發session_start事

但GA4並不是直接統計session_start,而是基于不重複工作階段ID估算值

真正的工作階段計算方式為:

去除重複後的 (user_pseudo_id + ga_session_id) 組合數量。

這也是為什麼在BigQuery中計算Sessions時,通常會使用:

COUNT(DISTINCT CONCAT(user_pseudo_id,'-',ga_session_id))

實務上常見情況是:

session_start通常會比工作階段稍微大一些。

注意:GA4的工作階段是估算值,所以你有可能不同維度的工作階段數加總數不等於頭部的工作階段數,如:

認識 Google Analytics 4 的工作階段(Sessions)

與工作階段相關的重要指標

GA4提供多個與工作階段相關的指標:

指標 說明
工作階段(Sessions) 工作階段總數
互動工作階段(Engaged Sessions) 符合互動條件的工作階段
每位使用者互動工作階段 互動工作階段 ÷ 使用者數
平均參與時間 平均互動時間
參與率(Engagement Rate) 互動工作階段 ÷ 工作階段
跳出率(Bounce Rate) 未互動工作階段 ÷ 工作階段

 

互動工作階段

符合下列任何一項條件就是互動工作階段

  • 持續至少10秒:如果工作階段持續超過一定的時間,那麼該工作階段就是互動工作階段。系統套用的門檻是10秒,你可以調整,調整的位置在串流詳情裡的「更多代碼設定」——「調整工作階段逾時」——「調整互動工作階段的計時器」
  • 包含一或多個轉換事件:如果工作階段內發送轉化事件,那麼該工作階段就是互動工作階段
  • 包含至少2次網頁瀏覽:如果工作階段內瀏覽2個以上網站,那麼該工作階段就是互動工作階段

發送給GA4伺服器的請求上參數seg用於區分是否為互動工作階段,1表示是,0表示不是:

認識 Google Analytics 4 的工作階段(Sessions)

 

每位使用者互動工作階段

每位使用者互動工作階段=互動工作階段數量÷使用者人數

例如:

  • 互動工作階段:2000
  • 使用者:800

每位使用者互動工作階段=2000 ÷ 800 = 2.5

代表平均每位使用者會產生2.5次互動工作階段。

 

平均參與時間

平均參與時間並不是頁面停留時間。

它是網站或應用程式上互動工作階段的平均時間長度。

此指標是根據user_engagement事件,以及網頁處於前景、使用者實際互動等訊號進行計算,因此比傳統停留時間更能反映實際的使用情況。

 

參與度

參與度=互動工作階段數÷工作階段數

參與率越高,通常代表網站內容越能吸引使用者持續互動。

如:

認識 Google Analytics 4 的工作階段(Sessions)

以Direct管道為例,參與率=122÷352=34.7%。

在GA4還沒有推出跳出率的時候,有時候會用參與度去替代跳出率,但官方不推薦這樣做,因為定義不同。

 

跳出率

跳出率就是未參與互動工作階段的百分比,提供了一種更有用的方法來衡量客戶與您的網站或應用程序的互動程度。

它的計算方式是:跳出率=未互動工作階段數÷工作階段數=1-參與率。

認識 Google Analytics 4 的工作階段(Sessions)

以Direct管道為例:34.7%+65.3%=100%。

 

工作階段常見誤解

GA4的工作階段等於session_start嗎?

不一定。

session_start 是事件,而工作階段是根據 user_pseudo_id + ga_session_id 去重後計算,因此兩者通常會有些微差異。

 

sid一定唯一嗎?

不一定。

sid的本質是時間戳,因此不同使用者在同一秒開始工作階段時,理論上可能擁有相同的sid,

 

工作階段逾時一定是30分鐘嗎?

不是。

GA4預設為30分鐘,但可在Google標記設定中調整,調整的位置在串流詳情裡的「进行代碼設定」(Google代碼裡)——「全部顯示」——「調整工作階段逾時 」。

 

重新整理網頁會產生新的工作階段嗎?

不會。

只要沒有超過工作階段逾時時間,重新整理頁面仍屬於同一個工作階段。

 

跨越午夜12點會重新開始工作階段嗎?

不會。

與Universal Analytics不同,GA4不會因日期切換而強制建立新的工作階段,只會依工作階段逾時規則判斷。

 

Measurement Protocol要不要帶sid?

要。

沒有帶sid,不能和之前的工作階段關聯,會被劃分到Unassigned管道


如果您在操作上仍有任何疑問,歡迎留言交流,或加入:Google Analytics 4交流社團發問
Like (0)
發佈我的留言
取消留言
表情 贴图 加粗 删除线 居中 斜体

Hi,*为發佈留言必須填寫。

  • 顯示名稱*
  • 電子郵件地址*
  • 個人網站網址
(6)个小伙伴在留言
  1. 請問「session_start」事件跟「工作階段」是否是相同的,目前查看數據,「session_start」的數據會少於「工作階段數」。
    finn2022-10-16 15:58 Reply Windows 10 | Chrome 106.0.0.0
    • 原則上每個作階段都會有一個session_start,但實際上,個別作階段是由多個session_start,也有是0。
      Haran2022-10-16 16:44 Reply Mac OS X | Chrome 106.0.0.0
  2. Hello, 我對跳出率有點疑問, 希望得到解答, 以下用兩組例子去提問 如該使用者停留於同一網頁90分鐘, 而又有進行點撃等互動事件, a. 工作階段數 = 1 嗎? b. 如他/她沒有再點撃跳轉連接到同一網站的其他網頁並離開, 跳出率的計算是否只有一次? 還是會按工作階段次數或其他方式進行計算? c. 如他/她有點撃跳轉連接到同一網站的其他網頁繼續瀏覽, 那他/她的整個瀏覽過程是否不會再有跳出率的計算? 如該使用者停留於同一網頁90分鐘, 而又沒有進行任何點撃等互動事件, a. 工作階段數 = 1 嗎? b. 如他/她沒有再點撃跳轉連接到同一網站的其他網頁並離開, 跳出率的計算是否只有一次? 還是會按工作階段次數或其他方式進行計算? c. 如他/她於90分鐘後有點撃跳轉連接到同一網站的其他網頁繼續瀏覽, 那他/她的整個瀏覽過程是否不會以跳出率作為計算? 希望得到回覆, 非常感謝!
    NicoleLee2023-02-07 16:21 Reply Windows 7 | Chrome 109.0.0.0
    • 如該使用者停留於同一網頁90分鐘, 而又有進行點撃等互動事件, a. 工作階段數 =2,因為間隔超過30分鐘後的訪問會開啟新的工作階段 b. 如他/她沒有再點撃跳轉連接到同一網站的其他網頁並離開, 跳出率的計算是否只有一次? 還是會按工作階段次數或其他方式進行計算? 沒這種說法,跳出率是基於工作階段數計算;可以針對特定用戶,或管道,如跳出率=未互動工作階段數/工作階段數,第一個工作階段是未互動,第二個也是未互動,跳出率=2/2=100% c. 如他/她有點撃跳轉連接到同一網站的其他網頁繼續瀏覽, 那他/她的整個瀏覽過程是否不會再有跳出率的計算? 同上,如果繼續瀏覽,那麼這次就是互動工作階段,根據跳出率=未互動工作階段數/工作階段數,第一個工作階段是未互動,第二個是互動,跳出率=1/2=50% 如該使用者停留於同一網頁90分鐘, 而又沒有進行任何點撃等互動事件, a. 工作階段數 = 1 b. 如他/她沒有再點撃跳轉連接到同一網站的其他網頁並離開, 跳出率的計算是否只有一次? 還是會按工作階段次數或其他方式進行計算? 第一個工作階段是未互動 跳出率=1/1=100% c. 如他/她於90分鐘後有點撃跳轉連接到同一網站的其他網頁繼續瀏覽, 那他/她的整個瀏覽過程是否不會以跳出率作為計算? 工作階段數是2,第一個是未互動,第二個是互動,跳出率=1/2=50% 希望得到回覆, 非常感謝!
      Haran2023-02-07 17:16 Reply Mac OS X | Chrome 109.0.0.0