GA4在事件參數中有兩個與「事件批次」與「頁面識別」相關的欄位:
- batch_ordering_id
- batch_page_id
這兩個參數目前在官方文件中的說明相對簡短,但在實務觀察中與實際行為存在一些差異,特別是在DebugView與即時報表中呈現的數值。
本文將用白話方式整理其定義、實際行為與觀察重點。
batch_ordering_id(事件批次)
batch_ordering_id(事件批次)是每當從同一個頁面送出一次網路請求時就會遞增的單調數字。
GA4會將短時間內發生的多個事件打包成一個batch一起送出。
以下用一個具體範例說明:
假設一個頁面載入後觸發了5個事件,GA4可能將它們分成3個batch送出:
| 事件 | 所屬批次 | batch_ordering_id |
|---|---|---|
| Event 1 | 第 1 個 batch | 1 |
| Event 2 | 第 2 個 batch | 2 |
| Event 3、Event 4、Event 5 | 第 3 個 batch | 3 |
雖然觸發了5個事件,但實際上只送出了3次網路請求。batch_ordering_id 告訴你的是「這些事件分別屬於第幾個批次」。
在 BigQuery 中,由於事件是批次傳送的,即使實際發生順序有先後,時間戳記可能相同或極為接近。batch_ordering_id 讓你能區分「哪些事件是在不同的網路請求中送出的」,有助於理解GA4的批次處理機制,並在除錯時判斷事件是否因批次延遲而影響了順序。
batch_page_id(頁面識別)
batch_page_id(頁面識別)分配給頁面的序號,該序號隨著參與中的每個後續頁面而增加。
batch_page_id 的真實來源
batch_page_id實際發送事件的當前時間戳(13位時間戳),和從名為_ga_<container-id>的Cookie裡的當前時間基本一樣。
如我在haranhuang.com上觸發一個事件,看名為_ga_<container-id>:
當前時間戳是1700105495(10位時間戳)
GA4即時報表裡的batch_page_id的是 1700105494118:
兩者差異說明:
| 類型 | 範例 | 說明 |
|---|---|---|
| Cookie timestamp | 1700105495 | 10 位 Unix timestamp(秒) |
| batch_page_id | 1700105494118 | 13 位 timestamp(毫秒) |
差異主要來自「時間單位不同」
識別邏輯
每個page_view事件會對應一個batch_page_id。當使用者在同一工作階段中導覽到新頁面時,新的 page_view 事件會產生新的 batch_page_id。
這讓 batch_page_id 成為分析「頁面層級事件流」的有效工具。例如,若要分析使用者在「頁面 A → 頁面 B → 頁面 A」的流程中,兩次進入頁面A的行為差異,就可以透過batch_page_id將兩次頁面瀏覽區分開來
這兩個參數的實務用途是什麼?
目前這兩個參數在 GA4 中的定位如下
- 非主要分析指標:不會直接出現在標準報表,不建議用於核心KPI分析
- 更偏向內部機制:可能用途包括事件批次處理、前端事件排序、除錯與系統診斷。
結論
GA4 的 batch_ordering_id 與 batch_page_id 本質上屬於內部事件處理機制參數,目前在實務中有以下特性:
- batch_ordering_id:標識事件屬於該頁面的第幾個批次;同一批次內的多個事件會有相同的值
- batch_page_id:頁面遞增序號,數值接近 timestamp(13 位毫秒時間戳)





