GA4 電商追蹤完整設定,WooCommerce + GTM 追到 add_to_cart、begin_checkout、purchase

GA4 電商追蹤完整設定,WooCommerce + GTM 追到 add_to_cart、begin_checkout、purchase

featured-ga4-woocommerce-gtm-addtocartbegincheckoutpurchase-fda05af2
🚀 讀者專屬工具

在開始閱讀前,先用 AI 自動生成您的網站架構圖?

立即開啟

GA4 電商追蹤完整設定,WooCommerce + GTM 追到 add_to_cart、begin_checkout、purchase

你已經在投廣告,訂單也有在跑,但打開 GA4 卻只看到一堆 page_view?少了 GA4 電商追蹤 的事件與 items[],就像只知道「有人進店」,卻不知道「拿了什麼、在哪一步放回去」。

這篇用 WooCommerce + GTM 把 view_itemadd_to_cartbegin_checkoutpurchase 一路追完整,而且每一步都能在 DebugView 驗證,最後能拿去做轉換、受眾與漏斗分析。

先把 GA4 與 GTM 的地基打穩,避免後面全部白工

A clean, modern landscape infographic in Traditional Chinese depicting the GA4 ecommerce tracking flow for WooCommerce using Google Tag Manager, from product page events to GA4 DebugView.
圖示呈現 WooCommerce 行為到 dataLayer,再到 GTM 與 GA4 DebugView 的事件流程,此圖由 AI 協助建立。

如果 GA4 基本收不到資料,電商事件再完整也沒用。建議先用官方流程把 GA4 資料串流與 GTM 串起來,細節可對照這篇 GA4 安裝步驟與設定要點

接著做一個最小驗證,你只要看到 GA4 的 DebugView 有事件流入,就能往下做電商。

目的操作路徑需要填的欄位驗證方式
讓 GA4 先能收資料GTM, 新增「GA4 設定」或「Google tag」, 觸發 All Pages測量 ID G-XXXXXXXGA4, DebugView 看到 page_view,GTM 預覽模式標籤有觸發

路線 A,用外掛輸出 dataLayer,最快把事件跑起來

想快速上線,做法是讓外掛把 WooCommerce 行為轉成 dataLayer.push(),GTM 只負責「接事件」和「送到 GA4」。常見作法是 GTM4WP 類型外掛,官方也有一份 GA4 電商設定流程可參考 GA4 Enhanced Ecommerce tracking 指南

挑外掛時只看兩件事就夠:第一,事件名稱要能覆蓋 view_itemadd_to_cartbegin_checkoutpurchase;第二,ecommerce.items[] 是否符合 GA4 結構,至少要有 item_iditem_name,以及 pricequantity

目的操作路徑需要填的欄位驗證方式
讓外掛輸出 dataLayer 電商事件WordPress, 外掛, 安裝並啟用, 開啟電商 dataLayer開啟 GA4/Enhanced Ecommerce 選項(依外掛)Chrome DevTools Console 輸入 dataLayer,確認有事件物件
讓 GTM 能抓到 itemsGTM, 變數, 新增「資料層變數」變數名稱 ecommerce.itemsecommerce.valueecommerce.currencyGTM 預覽, Data Layer 分頁能看到對應值
對照外掛事件名稱GTM 預覽, 依序走產品頁, 加車, 結帳, 感謝頁記下 dataLayer 的 eventGA4 DebugView 看到對應事件,且事件參數有 items

如果你用的是 GTM4WP 匯入容器類型流程,也可參考 GTM2WP + GA4 含電商追蹤教學,重點是匯入後仍要用 DebugView 檢查 items[] 是否完整。

路線 B,自行在主題或 Code Snippets 推送 dataLayer,掌控度最高

外掛追不到客製流程(套裝、加購、訂閱),或你想要更乾淨的事件,就走自建。原則很簡單:WooCommerce 在「產品頁」「加入購物車」「結帳」「訂單完成」這些節點,把事件推到 dataLayer,GTM 再送 GA4。

最小可行範例概念如下(示意結構,不要省略 items[]):在前端執行 window.dataLayer=window.dataLayer||[]; dataLayer.push({event:'add_to_cart', ecommerce:{currency:'TWD', value:299, items:[{item_id:'SKU123', item_name:'商品A', price:299, quantity:1}]}});

實作時,產品資料建議由 PHP 輸出成 JSON,再給前端 push,避免你在 JS 另外打 API 造成延遲或抓錯價格。事件結構與 items 欄位細節,可對照這篇偏實戰的 GTM Data Layer 電商事件設定指南

目的操作路徑需要填的欄位驗證方式
在產品頁送出 view_item子主題 functions.php 或 Code Snippets, 於產品頁輸出商品 JSONevent:'view_item'items[](item_id/item_name/price)GTM 預覽, 進產品頁時 Data Layer 出現 view_item
在加入購物車送出 add_to_cart監聽 add-to-cart 點擊(或 Woo hook 後輸出)event:'add_to_cart'valuecurrencyitems[]GA4 DebugView 事件參數有 items 且 quantity 正確
在感謝頁送出 purchaseWooCommerce thankyou 頁, 只在訂單存在時輸出transaction_idvaluecurrencyitems[],可加 shippingtaxcouponDebugView 的 purchase 展開後,確認 items 不是空陣列

GTM 事件標籤怎麼設,從 view_item 到 purchase 一次到位

Clean modern technical infographic in Traditional Chinese depicting GTM setup for GA4 ecommerce tracking with WooCommerce, including tags, variables, triggers for events like add_to_cart and purchase, and a table mapping WooCommerce events to GA4 parameters.
圖示整理 GTM 內的變數、觸發器、GA4 事件標籤關係,此圖由 AI 協助建立。

GTM 這段的核心是三件事:先有 GA4 設定標籤(全站),再做「自訂事件觸發器」,最後做「GA4 事件標籤」並把 ecommerce 參數帶上。若你的 dataLayer 結構符合 GA4,GA4 事件標籤可直接勾選「傳送電子商務資料」,減少手填參數出錯。

GA4 事件觸發條件(建議)主要參數(重點)
view_itemCustom Event 等於 view_itemitems[]
add_to_cartCustom Event 等於 add_to_cartitems[],建議帶 valuecurrency
view_cart(可選)Custom Event 等於 view_cartitems[]
begin_checkoutCustom Event 等於 begin_checkoutitems[],可帶 coupon
add_shipping_info(可選)Custom Event 等於 add_shipping_infoshipping_tieritems[]
add_payment_info(可選)Custom Event 等於 add_payment_infopayment_typeitems[]
purchaseCustom Event 等於 purchase必填 transaction_idvaluecurrencyitems[]

purchase 建議一次就帶齊,這樣報表不會拆成碎片:shippingtaxcoupon 都能一起送。例如 coupon:'NEW100'shipping:60tax:15。驗證時在 GA4 DebugView 點 purchase 事件,重點看 items 是否有多筆商品,以及 value 是否等於訂單小計加運費加稅額的規則(依你店內定義一致就好)。

轉換也別忘了設:GA4 後台,管理,事件,把 purchase 標記為轉換。之後 Google Ads 要用轉換匯入才會穩。

去重一定要做,尤其感謝頁重整最常爆掉。做法務實一點:在 purchase dataLayer 帶 transaction_id,再用 GTM 加一個「只觸發一次」的保護(例如用自訂變數讀 localStorage 的 last_transaction_id,等於目前 transaction_id 就不送)。不去重,報表收入會被放大,後面每個決策都會歪。

金流回跳與跨網域也要顧:如果結帳會跳第三方網域,請在 GA4 的跨網域設定把支付網域加進去,並確認 GTM 的 Google tag 也有啟用跨網域連結器,避免使用者回到感謝頁被當成新來源,甚至買單事件丟失。

常見 10 個踩雷,幾乎都會讓營收報表變空白或變兩倍

A clean, modern square infographic in Traditional Chinese listing 10 common pitfalls in GA4 WooCommerce ecommerce tracking, with red warning icons and short labels.
圖示整理 10 個最常見的 GA4 電商追蹤地雷,此圖由 AI 協助建立。
  • value/currency 不一致: 同一站別用 TWD 又送 USD,或 value 有時含運有時不含。
  • items 缺 item_id: 沒 SKU 時至少要穩定的自訂 ID,不然商品維度很難用。
  • event_name 用錯: addToCart 這種自創名稱,GA4 營利報表吃不到。
  • 觸發條件太寬: 用 Page View 送 add_to_cart,事件會亂噴。
  • purchase 重複送: 感謝頁重整,或金流回跳多次觸發。
  • 測試污染正式資料: 測試訂單也送進同一串流,營收被稀釋。
  • DebugView 看不到 items: 事件有進,但 items 是空,等於沒追到商品。
  • checkout 步驟缺事件: begin_checkout 有了,但付款方式與運送方式缺事件,漏斗會斷。
  • 折扣只改 value 不帶 coupon: 想分析活動成效卻沒有 coupon 維度。
  • 沒把 purchase 設轉換: 事件有收,廣告平台卻用不到。

結語

把 GA4 電商追蹤做到能在 DebugView 一筆一筆對得上,報表才會可信,廣告投放才會敢加碼。先選一條路線把 dataLayer 穩定輸出,再用 GTM 把事件送進 GA4,最後用去重與跨網域把漏洞補齊,purchase 才不會時有時無。想把 WooCommerce 電商追蹤一次做到可長期維護,也可以到 WPTOOLBEAR 交給熟悉 WordPress 的團隊協助落地與代管。