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

GA4 session_start事件完整解析

Google Analytics Haran 3年前 (2023-03-19) 11000次瀏覽 0條留言

更新時間:2024年12月17號

在GA4中,session_start是非常重要的自動收集的事件之一。

每當GA4判定一個新的工作階段開始時,就會自動產生一次session_start事件。

了解session_start的運作方式,有助於你正確解讀:

  • 工作階段
  • 流量來源歸因
  • 使用者行為分析
  • 工作階段數量異常問題

許多常見的GA4問題,例如:

  • 工作階段突然暴增
  • 工作階段數量異常下降
  • 流量來源歸因錯誤
  • Direct 流量增加
  • session 與session_start數量不一致

背後往往都與session_start有關。

本文將深入介紹session_start的運作原理、重要參數、產生條件,以及實務上常見的異常情況。

 

什麼是session_start?

session_start是GA4的自動收集的事件

在GA4中,每個工作階段開始時,都會自動觸發session_start事件,表示新的工作階段已開始。

可以把兩者理解成:

  • Session:一次訪問
  • session_start:代表這次Session開始的事件

因此,每一個新的工作階段理應都會有一個session_start。

session_start是如何產生的?

GA4主要有有兩種情境會產生session_start:

  • 第一次造訪網站:當使用者首次進入網站時,GA4會依序產生:first_visit>session_start>page_view
  • 閒置超過30分鐘:若使用者超過30分鐘沒有任何互動,GA4會視為原本的工作階段已結束,當使用者再次與網站互動時,GA4會建立新的工作階段,並重新送出session_start。

我們通過一個示例,來看session_start是如何產生:

GA4 session_start事件完整解析

第一次透過自然搜尋進站:first_visit>session_start>page_view ,建立第一個工作階段

閒置超過30分鐘,再透過EDM回訪:session_start>page_view ,,建立第二個工作階段

 

第一次造訪網站時會發生什麼?

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

first_visit——>session_start——>page_view

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

許多人會以為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

如果是閒置超過30分鐘的流程,就少了first_visit。

 

session_start包含哪些重要參數?

session_start包含sid和sct兩個核心參數:

  • ga_session_id(簡稱sid):代表工作階段 ID,用來識別不同的工作階段,並將同一工作階段中的所有事件關聯在一起。其值本質上是工作階段開始時的 Unix 時間戳(秒),理論上可能重複,但會搭配user_pseudo_id一起識別,因此實務上幾乎不會發生衝突
  • ga_session_number(簡稱sct):代表工作階段編號,代表目前是該使用者的第幾個工作階段。例如第一次造訪為 1、第二次造訪為 2,可用來區分首次造訪與後續回訪產生的工作階段

這兩個參數都要儲存在Cookie  _ga_<container-id>裡,當之後送出事件時,GA4就會讀取Cookie中的這個資訊,並將它們附加到事件中一起送往GA4,從而實現工作階段與事件的關聯。

 

當GA4建立新的工作階段時,首個發送給GA4請求會帶有一個_ss參數,表示session_start,如:
GA4 session_start事件完整解析

之後,同一工作階段內送出的其他事件雖然仍會攜帶sid與sct,但不會再包含 _ss=1。

例如:

事件 _ss sid sct
session_start(第一筆請求)
page_view
scroll
click
purchase

因此,只要在Network面板中看到 _ss=1,就代表GA4已建立一個新的工作階段。

 

session_start與Sessions的關係

很多人會直接認為:session_start = Sessions

事實上,兩者並不完全相同。

GA4並不是直接統計session_start的數量,而是根據工作階段ID去計算工作階段數。

工作階段的計算方式為:根據 user_pseudo_id + ga_session_id 去重後的工作階段數

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

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

實務上常見情況是:

session_start 通常會比Sessions稍微大一些。

 

常見問題FAQ

session_start暴增

正常的應該是一個工作階段應該只會有一個session_start,但可能會出現,session_start暴增,每訪問一個頁面,就產生一個session_start,如:

GA4 session_start事件完整解析

明顯是工作階段建立邏輯發生異常,常見原因:

  • 工作階段被重建:某些CMP或Cookie管理工具會自動刪除、重設GA4的Cookie ,導致識別為新用戶,誤判為新的工作階段,發送session_start,可以檢查每次事件發送的ga_session_id是否相同,如果不同就是這個原因,處理方式是將GA4的Cookie添加到CMP的白名單
  • 多分頁瀏覽造成:部分瀏覽器環境下,同時開啟大量分頁也可能產生額外session_start

 

session_start是0?

你可能還會遇到session_start是0,但仍然存在工作階段資料:

GA4 session_start事件完整解析

常見原因是:跨午夜,如使用者在1月1號晚上訪問網站,直接1月2號才離開,那麼對於1月2號來說,session_start就是0。

 

 

session_start,卻沒有page_view?

工作階段只有session_start一個事件,沒的pageview事件

可能原因包括:

  • page_view被停用:若關閉自動頁面瀏覽追蹤,可能只看到 session_start。
  • page_view標籤未正常觸發:如GTM設定錯誤、 同意模式(Consent Mode)影響或JavaScript錯誤, 導致page_view未成功送出。
  • 使用者快速離開或資料遺失:在極少數情況下: session_start已送出, page_view尚未送出, 使用者立即關閉頁面, 也可能造成僅看到session_start。

總結

session_start是GA4工作階段機制的核心事件,每當GA4判定新的工作階段開始時,就會自動產生一次session_start。

當你遇到工作階段異常暴增、流量來源歸因錯誤、Session數量異常等問題時,第一個應該檢查的事件,通常就是session_start。


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

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

  • 顯示名稱*
  • 電子郵件地址*
  • 個人網站網址