Skip to main content

我自己有在經營一個電商網站,平常會透過各種數位行銷工具做追蹤,也會搭配廣告投放來引流。

實務上,我們很常會看一些常見指標,例如「使用者數」、「跳出率」、「平均停留時間」,來判斷不同活動或流量來源的表現。但你可能也跟我一樣有遇過這種狀況:數字看起來哪裡怪怪的,加起來好像不太對。

像是明明三天加總下來,使用者應該是 5 人,但報表卻出現 7?或者平均停留時間看起來很高,實際上根本沒人待那麼久?
這些狀況,其實都跟「資料的可加性(Additivity)」脫不了關係。

電商數據分析常見問題:什麼是資料可加性?

可加性指的是一個指標能不能在不同維度(例如時間、地區、裝置類型等)下被加總。

這個概念在資料倉儲建模與 BI 報表中非常重要,否則你一個 group by + sum,就可能得出完全錯誤的結論。

常見分類如下:

可加性類型說明例子
Fully Additive可以在任何維度上加總銷售金額、事件數量
Semi-Additive可以在某些維度加總,但不能跨時間帳戶餘額、庫存量
Non-Additive不能在任何維度直接加總使用者數、跳出率、轉換率
Ref from The Data Warehouse Toolkit by Ralph Kimball.

經營電商時容易忽略的 GA4 報表陷阱:指標不可加性

以下是幾個實際遇到過的例子,當你使用 GA,例如 使用者數膨脹

在 BigQuery 中正確計算 GA4 使用者數:避免數據膨脹

👉 解法: 使用能夠辨識使用者的欄位做計算

COUNT(DISTINCT CONCAT(user_id, "-", CAST(ga_session_id AS STRING))) AS users

使用 GA4 API 提取指標時,如何避免誤差?

👉 解法 : 固定時間與維度,就不會出錯,例如按照 Month or Week 做分組。

👉 進階解法: 將 user_id 與 device_id (user_pseudo_id) 與 session_id 塞到自訂維度,使用數據時再做去重複。 使用此法請遵守 GA4 隱私規範

為什麼 GA4 報表數據加總會失真?關鍵在「資料顆粒度」

上述兩種做法分別是使用 Raw Data (BQ) 以及 Aggregation (API) 過的資料。

所以可以發現,關鍵差異在,你手上的資料顆粒度,例如 GA4 API 不給你 user_id 與 device_id 的話,那你必須固定維度與時間,才不會算出奇怪的數字,因為:

  • 一個使用者上線兩個小時,Group by Hour 後,再加總就會被記為兩個使用者。
  • 一個使用者連續從兩個不同的流量來源進來,Group by source,加總後會被計入兩個使用者。
  • 三天內同一個使用者多次回訪,如果直接把每天的使用者數相加,就會膨脹成不正確的「總使用者數」為三。

更多電商場景下的數據陷阱範例:看似合理的加總,其實是誤導

我們再透過觀察一些有趣的例子,來理解這樣的現象。

例如,帳戶餘額,若直接將每日餘額做加總 (1,000+800+1,200),會得出總餘額 3,000 的錯誤數字。

日期客戶ID帳戶餘額
2025-03-010011,000
2025-03-02001800
2025-03-030011,200

可加性清單

指標名稱可加性分類是否可跨時間加總是否可跨其他維度加總設計建議
使用者數(Users)Non-Additive使用 COUNT(DISTINCT user_id),避免 group by 多維度重複計算
銷售金額(Revenue)Fully Additive可直接使用 SUM 聚合
帳戶餘額(Account Balance)Semi-Additive可做單日彙總,避免跨日加總,建議用 MAX 或 AVG
轉換率(Conversion Rate)Non-Additive應以 numerator/denominator 計算,不可直接加總
庫存數量(Inventory)Semi-Additive僅在特定時間點快照使用,不應跨時間加總
事件數(Event Count)Fully Additive可依各維度直接聚合
活躍用戶率(Active User Rate)Non-Additive用每日活躍使用者 / 每日總使用者計算,避免直接平均比例
平均停留時間(Avg. Session Duration)Non-Additive使用加權平均(總停留秒數 / 總工作階段數),不可對每日平均再加總
每日用戶互動次數(Avg. Interactions per User per Day)Semi-Additive⚠️(限每日平均)每日先算平均,再與其他維度加總彙總,避免直接跨日平均
互動工作階段(Engaged Sessions)Fully Additive可直接 COUNT 或 SUM 數量(符合定義的互動工作階段)
跳出率(Bounce Rate)Non-Additive計算跳出次數 / 工作階段總數,不可將各日跳出率相加

結語:經營電商品牌該如何避免 GA4 數據錯誤?

以上是在計算數據時真實遇到的坑,當時跟分析師一起,花了許多時間 debug,在此分享給大家參考。

線性成長數位 DADUO digital

嗨!我們是線性成長數位,你的品牌驅動夥伴。 我們提供企業級網站架構和深度數據追蹤,為您的品牌創造最佳的用戶體驗。 無論是數據追蹤、網站改版、製作品牌網站還是 SEO 優化,我們都能提供量身定制的解決方案。