WooCommerce GA4 電商追蹤設定指南:從事件到訂單的完整追蹤架構
WooCommerce GA4 電商追蹤怎麼做才完整?這篇從 GA4 事件、WooCommerce Webhook 到第一方追蹤的完整架構,教你區分三層資料的職責,不漏報也不踩個資紅線。

你幫 WooCommerce 商店裝了 GA4,也看到商品頁有瀏覽數,但報表上的訂單金額跟實際收款對不起來。加購物車事件好像有漏,又分不清是 GA4 的問題、快取擋住還是外掛沒設好。更麻煩的是,你想知道哪些 LINE 推播帶來購買,但 GA4 沒辦法給你那麼細的來源資料。
這不是 GA4 不好用,而是只靠 GA4 不夠。WooCommerce 的電商追蹤需要三層分工:GA4 看流量與轉換漏斗,Webhook 確認訂單真實狀態,第一方追蹤記錄 GA4 不該碰的行為資料。這篇拆開每一層該做什麼、不該做什麼,以及如何在 WooCommerce 上實作。
先說結論
WooCommerce 電商追蹤的正確做法是分三層,各自負責不同的事:
- GA4 負責電商標準事件與廣告歸因,但不儲存姓名、電話、Email 等個資。
- WooCommerce 訂單與付款紀錄是營收核對依據,Webhook 負責把狀態變更可靠地送到其他系統。
- 第一方追蹤器負責記錄 LINE 行銷來源、按鈕點擊與匿名瀏覽行為,這些是 GA4 不適合承擔的資料。
三層資料不要混在同一套系統。GA4 與 WooCommerce 的訂單數可能因阻擋、付款跳轉、重複事件或退款處理而出現差異:GA4 看流量與歸因,WooCommerce 的訂單及付款紀錄負責營收核對,Webhook 則把訂單狀態送往 ERP、CRM 或其他系統。差異過大仍要追查,不能直接當成正常誤差。
GA4 電商事件涵蓋哪些購物行為?
Google Analytics 4 定義了一組電商專用事件,涵蓋使用者從瀏覽到購買的完整路徑。每個事件都帶有商品陣列參數,讓報表可以分析哪些商品被看、被加、被買以及在哪個環節流失。
| 事件名稱 | 觸發時機 | 主要用途 |
|---|---|---|
| view_item_list | 使用者看到商品列表 | 衡量商品曝光與列表成效 |
| select_item | 使用者點擊列表中某個商品 | 判斷商品吸引力 |
| view_item | 使用者進入商品詳細頁 | 計算商品頁瀏覽次數 |
| add_to_cart | 使用者將商品加入購物車 | 購物車轉換的第一步 |
| remove_from_cart | 使用者從購物車移除商品 | 分析放棄原因 |
| view_cart | 使用者檢視購物車內容 | 購物車頁面停留 |
| begin_checkout | 使用者開始結帳流程 | 結帳轉換率的起點 |
| add_shipping_info | 使用者選擇配送方式 | 物流偏好分析 |
| add_payment_info | 使用者選擇付款方式 | 金流偏好分析 |
| purchase | 使用者完成購買 | 最重要的轉換事件 |
| refund | 退款發生 | 退貨率與商品問題追蹤 |
這些事件可以透過 WooCommerce Google Analytics 整合外掛或 Google Tag Manager 來部署。安裝完成後,用 GA4 DebugView 走一次完整的購物流程,確認每個事件都有正確送出且包含正確的商品 ID、價格與數量。付款失敗不該觸發 purchase,退款則獨立用 refund 事件記錄。
GA4 和 WooCommerce Webhook 的定位有什麼不同?
很多人會把 GA4 的 purchase 事件和 WooCommerce 的訂單建立搞混。兩者雖然都代表有人買了東西,但資料來源與可信度完全不同。
| 比較維度 | GA4 purchase 事件 | WooCommerce Webhook |
|---|---|---|
| 資料來源 | 瀏覽器端 JavaScript | 伺服器端 HTTP POST |
| 受廣告阻擋器影響 | 會,使用者裝了擋廣告工具就可能漏 | 不會,伺服器直接送出 |
| 受付款跳轉影響 | 會,付款中途跳轉可能誤記或漏記 | 不會,訂單確實建立才觸發 |
| 包含個資 | 不該包含姓名、電話、Email | 依事件 payload 可能包含訂單資料,會傳到你設定的接收端 |
| 適合用途 | 流量分析、廣告歸因、轉換趨勢 | 營收核對、出貨流程、會員狀態更新 |
Webhook 的 payload 內容與 WooCommerce REST API 回傳格式相同。WooCommerce 會在 HTTP Header 帶上 X-WC-Webhook-Signature,接收端用 HMAC-SHA256 驗證 payload 是否來自你的商店,未通過驗證的請求不該被接受。
WooCommerce Webhook 支援的主題包括訂單建立、訂單更新、訂單刪除、會員建立、會員更新、商品狀態變更,以及自訂的 action hook。建議從 order.created、order.updated、customer.created 和 customer.updated 這四個主題開始。
第一方追蹤補足了什麼缺口?
GA4 不得接收可識別個人身分的資訊,也不適合取代商店自己的會員、訂單與再行銷資料庫。UTM 與 campaign 可以送進 GA4,但如果要把 LINE 點擊、會員身分及後續回購依照自家規則串起來,就需要在取得同意後由第一方系統保存必要資料。
第一方追蹤器只記錄產品真正需要的事件,不追蹤所有滑鼠移動或按鍵內容。最小版本可以涵蓋這些行為:
| 事件 | 說明 |
|---|---|
| page_view | 頁面瀏覽,記錄 UTM 來源與 campaign |
| view_item | 商品瀏覽,與 GA4 互補但保留更多維度 |
| add_to_cart | 加入購物車,記錄完整的來源鏈 |
| view_cart | 檢視購物車,結帳前的重要訊號 |
| begin_checkout | 開始結帳,跟 GA4 交叉比對流失率 |
| line_campaign_click | 來自 LINE 推播的點擊 |
| email_click | 來自 Email 的點擊 |
第一方資料不必依賴第三方 Cookie,但前端收集仍可能受到瀏覽器、同意狀態、網路錯誤或阻擋工具影響。當你要做購物車未結帳提醒或個人化 LINE 推播時,還要搭配登入、會員同意與伺服器端訂單資料,不能只憑一次匿名瀏覽就發訊息。
第一方追蹤器的實作應該放在獨立外掛或功能模組中,透過 WooCommerce 的 action hook 掛載,不要修改 WooCommerce 核心檔案。
如何在 WooCommerce 上實作三層追蹤?
第一步:設定 GA4 電商事件
在 WordPress 後台安裝 WooCommerce Google Analytics 整合外掛,或透過 Google Tag Manager 部署 GA4 標籤。設定路徑在 WooCommerce 設定中的整合頁面,輸入 GA4 評估 ID 後開啟商品與交易事件。
完成後用 GA4 DebugView 確認事件鏈:view_item、add_to_cart、view_cart、begin_checkout、purchase。每個事件都應看到正確的商品 ID 與金額。如果事件有漏,先檢查是否有其他工具重複注入 GA4 程式碼,導致事件互相覆蓋。
第二步:建立 WooCommerce Webhook
在 WooCommerce 後台的進階設定中找到 Webhook 頁面,依序新增:
- 訂單建立事件,主題設為 order.created,傳送網址設為你的 API 端點。
- 訂單更新事件,主題設為 order.updated,同樣送到同一支 API。
- 會員建立事件,主題設為 customer.created,用來同步會員資料。
- 會員更新事件,主題設為 customer.updated,更新會員狀態變更。
每個 Webhook 需要填入 secret 金鑰。接收端收到 POST 後必須檢查 X-WC-Webhook-Signature Header,用 HMAC-SHA256 比對 payload 簽章。未通過的請求直接回傳 403,不寫入資料庫。連續五次傳送失敗後 WooCommerce 會自動停用該 Webhook,因此要監控 delivery log 的錯誤率。
第三步:加入第一方追蹤器
第一方追蹤器的前端部分負責收集事件與 UTM 參數,透過自訂 REST API 端點送向你的資料庫。後端部分負責接收、驗證與儲存事件。
事件資料範例如下:
{
"visitor_id": "v_abc123",
"customer_id": "wc_183",
"event_name": "add_to_cart",
"product_id": "SKU-001",
"source": "line",
"campaign": "summer_sale"
}
第一版只需要一個事件資料表搭配一個 API 端點。資料表欄位包含訪客 ID、會員 ID、事件名稱、商品 ID、來源、行銷活動與時間戳。不要在第一版就加入複雜的消費者行為分析,先確保事件能穩定送達再逐步擴充。
個資為什麼不能送進 GA4?
這是電商追蹤最常踩到的紅線。GA4 的使用者條款明確禁止傳送可識別個人身分的資訊,包括姓名、Email、電話、地址與信用卡號碼。違反這項規定可能導致 GA4 資源被暫停或資料被刪除。
正確的做法很清楚:GA4 只傳匿名化的商品與交易資料。使用者登入 WooCommerce 後可以傳送內部 ID 作為 user_id,例如 wc_183,但不能傳送 Email 或電話。使用者真實的身分資料留在 WooCommerce 資料庫與第一方追蹤器。
LINE 使用者的綁定流程必須經過使用者同意。當使用者透過 LINE Login 或 LIFF 主動登入後,才能將瀏覽行為與 LINE userId 連結。完整的資料鏈是 visitor_id 透過登入連到 WooCommerce customer_id,再透過 LINE Login 連到 line_user_id。沒有使用者同意的情況下,只能分析匿名群體行為。
三個常見的追蹤設定錯誤
錯誤一:GA4 和 Webhook 金額不一致就懷疑資料不準
GA4 因為廣告阻擋器與付款跳轉可能漏掉部分 purchase 事件,Webhook 也可能因接收端錯誤或重試機制而漏送或重送。營收應以 WooCommerce 訂單、付款狀態與金流對帳為準,GA4 用來觀察轉換趨勢,Webhook 用來同步資料。差異過大時要檢查事件觸發、交易 ID 去重、時區、退款與付款狀態。
錯誤二:把所有事件都塞進 GA4
GA4 不是資料倉儲。詳細的商品瀏覽序列、LINE 行銷活動的點擊歸因、使用者在頁面上的互動順序,這些應該由第一方追蹤器處理。GA4 的自訂參數有數量限制,超過上限的事件會被捨棄。
錯誤三:匿名訪客的行為當作個人化依據
瀏覽過商品不代表你有權限發送個人化訊息。必須等到使用者登入、留下 Email 或綁定 LINE 後,才能將之前的事件連接到真實身分。匿名訪客只能分析群體轉換率,不能用來觸發個人化的購物車提醒。
常見問題
GA4 電商事件一定要用 gtag.js 嗎?
可以用 Google Tag Manager 部署 GA4 標籤。兩種方式都能正確送出電商事件,選擇哪個取決於你對 GTM 的熟悉程度。如果同時管理多個廣告像素,GTM 會比較好維護。不管用哪種方式,記得開啟 Consent Mode,讓 GA4 在使用者同意前不啟用非必要的追蹤。
WooCommerce Webhook 收不到怎麼辦?
先確認 delivery URL 可以對外接收 POST 請求且回傳 HTTP 200。WooCommerce 會在 Webhook 的 delivery log 顯示每次傳送的結果,包含請求與回應內容。常見原因包括網址打錯、SSL 憑證問題、接收端未回傳 200 或 secret 金鑰不匹配。連續五次失敗後 Webhook 會自動停用,需要手動重新啟用。
自建追蹤器需要從頭開始寫嗎?
如果網站已經有 WooCommerce,第一方追蹤器可以用自訂外掛的形式加入,透過 WooCommerce 的 action hook 掛載事件收集,不需要改動核心程式。第一版只需要事件接收端、資料表與前端收集腳本。不要在第一版就加入複雜的即時分析或事件串流,先確保事件能穩定送達。
LINE 行銷活動怎麼追蹤轉換?
在 LINE 推播連結加上 UTM 參數,例如 utm_source=line 與 utm_campaign=summer_sale。第一方追蹤器收到 page_view 時保存來源,再用明確的歸因窗口與規則連接後續事件。完成會員登入或 LINE 身分綁定並取得適當同意後,才能進一步建立可識別的回購分眾;只有匿名點擊時,應停留在群體成效分析。
GA4 的 User-ID 該怎麼設?
使用者登入 WooCommerce 後,傳送一個內部識別碼作為 GA4 user_id,例如 wc_183。不要把姓名、Email 或電話當作 user_id。未登入的訪客不要送 user_id,登出後要清除或設為 null。這樣 GA4 就能串起會員不同工作階段的行為,但會員的真實資料仍然留在 WooCommerce 資料庫。
延伸閱讀
不確定你的商店追蹤架構是否正確?
GA4 事件有沒有漏、Webhook 有沒有正確驗證簽章、第一方資料有沒有踩到個資紅線,這些細節在設定時很容易忽略。如果你需要確認目前的追蹤設定是否完整,可以使用免費網站健檢工具,或加 LINE 直接討論你的商店需求與追蹤目標。
官方參考資料
- Google Analytics: Measure ecommerce
- Google Analytics: Recommended events
- Google Analytics: Set up a purchase event
- WooCommerce: Working with webhooks
- WooCommerce: REST API
WooCommerce 系列
- 先搞懂它是什麼:WooCommerce 適合我嗎?四個判斷條件
- 想自己開起來:WooCommerce 教學:從安裝、金流到上架的完整開店指南
- 不想自己架:微電商方案 — 月繳 NT$ 1,500,付款當天開站
想把 WooCommerce 開成有品牌感的電商?
從金物流、商品頁到結帳優化 —— 不只是能買,是讓客人想買。
Related Reading
延伸閱讀

WordPress
WooCommerce API 教學:REST API Key 申請、Postman 測試與商品上架範例
WooCommerce API 怎麼用?這篇整理 REST API Key 申請路徑、Consumer Key / Consumer Secret 權限、Postman GET / POST 測試、新增商品 JSON 範例,以及 401、403、404、Permalink、SSL 常見錯誤排查。

WordPress
WooCommerce 搬到 Zeabur 前要注意什麼?資料庫、金流、Email 與回滾清單
WooCommerce 搬到 Zeabur 不能只同步資料夾。這篇整理 staging、資料庫、wp-content、會員、訂單、金流 callback、Email、DNS 與回滾清單。

WordPress
為什麼 WordPress 發信要改走 Zeabur Email API?比 SMTP 更穩的做法
WordPress 發信不該每個外掛各自設定 SMTP。這篇說明如何用 Zeabur Email API 與 mu-plugin 統一 wp_mail,讓表單、訂單、會員與系統通知更好維護。