你的電商網站有在追蹤購物流程嗎
很多電商老闆會說:「有啊,我有裝 GA4,看得到多少人來、多少人買。」
但如果我問你:「從瀏覽商品到最後結帳,中間每一步流失了多少人?流失最嚴重的是哪一步?」你答得出來嗎?
大部分人答不出來。因為他們只追蹤了最前面(網站流量)和最後面(購買完成),中間的過程是一片黑暗。
GA4 的電子商務追蹤就是用來照亮這片黑暗的。它能追蹤使用者在購物流程中的每一個步驟:看了哪些商品、加了什麼到購物車、開始結帳了沒、最後有沒有付錢。
有了這些數據,你才能知道問題出在哪裡。是商品頁不夠有說服力?還是結帳流程太複雜讓人半途放棄?不同的問題需要不同的解法,而追蹤數據是你找到問題的第一步。
GA4 電商追蹤的事件架構
GA4 的電子商務追蹤是用一系列預定義事件來運作的。每個事件代表購物流程中的一個步驟。你需要在使用者完成特定動作時,觸發對應的事件並帶上商品資料。
核心事件有這些:
| 事件名稱 | 觸發時機 | 說明 |
|---------|---------|------|
| view_item_list | 瀏覽商品列表 | 使用者看到商品列表頁(分類頁、搜尋結果) |
| view_item | 瀏覽單一商品 | 使用者進入商品詳細頁面 |
| add_to_cart | 加入購物車 | 使用者把商品加到購物車 |
| remove_from_cart | 從購物車移除 | 使用者把商品從購物車移除 |
| view_cart | 查看購物車 | 使用者打開購物車頁面 |
| begin_checkout | 開始結帳 | 使用者進入結帳流程 |
| add_shipping_info | 填寫運送資訊 | 使用者完成運送地址填寫 |
| add_payment_info | 填寫付款資訊 | 使用者完成付款方式選擇 |
| purchase | 購買完成 | 使用者完成付款,訂單成立 |
你不需要全部都追蹤。最起碼要追蹤的是 view_item、add_to_cart、begin_checkout、purchase 這四個。有了這四個事件,你就能建立一個基本的購物漏斗,看到每一步的流失情況。
其他事件是「有追蹤更好」的,可以之後再慢慢補上。
商品資料的格式:items 陣列
每個電商事件都需要帶上商品資料。GA4 用一個叫 items 的陣列來傳送商品資訊。
一個標準的商品資料物件長這樣:
{
item_id: "SKU-12345",
item_name: "經典白色 T-Shirt",
item_brand: "品牌名",
item_category: "服飾",
item_category2: "上衣",
item_category3: "T-Shirt",
item_variant: "M號",
price: 590,
quantity: 1,
currency: "TWD"
}
幾個要注意的地方:
item_id 和 item_name 至少要有一個。建議兩個都帶,但如果只能選一個,帶 item_id(通常用 SKU 碼)。
價格用數字,不要帶幣號。寫 590,不要寫 "NT$590" 或 "$590"。幣別用 currency 欄位單獨指定。
分類最多可以有五層。用 item_category、item_category2、item_category3 依序往下。這在你分析「哪個品類賣得好」的時候很有用。
每個事件最多帶 200 個商品。一般來說不會超過,但如果你的購物車可能有超過 200 個品項,需要注意這個限制。
用 GTM 實作電商追蹤
大部分的情況下,你不會直接在網站程式碼裡寫追蹤代碼。用 Google Tag Manager(GTM)來管理更方便、更好維護。
整個實作流程分三大步驟:
步驟一:在網站推送 dataLayer 事件
你的工程師需要在網站的關鍵節點推送 dataLayer 事件。舉個例子,當使用者把商品加入購物車時:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "add_to_cart",
ecommerce: {
currency: "TWD",
value: 590,
items: [{
item_id: "SKU-12345",
item_name: "經典白色 T-Shirt",
item_brand: "品牌名",
item_category: "服飾",
price: 590,
quantity: 1
}]
}
});
注意那個 dataLayer.push({ ecommerce: null }),這行很重要。它的作用是清除之前的電商資料,避免事件之間的資料互相汙染。每次推送電商事件之前都要先清一次。
步驟二:在 GTM 建立觸發條件
在 GTM 裡建立一個「自訂事件」觸發條件,事件名稱填 add_to_cart(跟 dataLayer 裡推送的 event 名稱一致)。
其他事件也一樣,每個事件都要對應一個觸發條件。
步驟三:在 GTM 建立 GA4 事件代碼
建立一個 GA4 事件代碼,選擇事件名稱為 add_to_cart,觸發條件選剛才建的那個。
重要的是要勾選「傳送電子商務資料」,資料來源選「資料層(Data Layer)」。這樣 GTM 就會自動把 dataLayer 裡的 ecommerce 物件傳給 GA4。
這三個步驟要對每個電商事件都做一次。聽起來很繁瑣,但設定好之後就不用再動了。
purchase 事件的特殊處理
所有電商事件裡面,purchase 是最重要的,也是最容易出錯的。
purchase 事件除了基本的商品資料,還需要帶上訂單層級的資料:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "T-20260308-001",
value: 1770,
tax: 84,
shipping: 60,
currency: "TWD",
coupon: "SPRING10",
items: [
{
item_id: "SKU-12345",
item_name: "經典白色 T-Shirt",
price: 590,
quantity: 3
}
]
}
});
transaction_id 是必填的。每筆訂單必須有一個唯一的交易編號。如果沒有 transaction_id,GA4 無法區分不同的訂單,會造成數據混亂。
value 是訂單總金額。包含商品金額、稅金、運費。如果你有折扣,value 應該是折扣後的實際支付金額。
防止重複計算
最常見的問題是 purchase 事件被重複觸發。使用者完成購買後,如果重新整理感謝頁面,或是從瀏覽器歷史紀錄回到感謝頁面,purchase 事件就會被重複觸發。
解決方法有兩個:
- 用 transaction_id 去重:GA4 會自動忽略相同 transaction_id 的重複事件(同一天內)
- 程式端控制:在感謝頁面用 session 或 cookie 記錄是否已經觸發過 purchase 事件,避免重複推送
建議兩個都做。第一個是保險,第二個是根本解決。
在 GA4 裡看電商報表
設定好追蹤之後,數據大約需要 24-48 小時才會在 GA4 報表裡出現。
電商報表的位置
在 GA4 左側選單找到「報表」→「獲利」→「電子商務購買」。這裡會顯示你的商品銷售數據,包含每個商品的瀏覽次數、加入購物車次數、購買次數和收入。
建立購物漏斗
這是電商追蹤最有價值的功能。到「探索」→ 建立新的探索報表 → 選「漏斗探索」。
設定步驟:
- view_item(瀏覽商品)
- add_to_cart(加入購物車)
- begin_checkout(開始結帳)
- purchase(購買完成)
建好之後,你會看到每一步的人數和流失率。通常你會發現:
- 瀏覽商品 → 加入購物車:流失 70-85%
- 加入購物車 → 開始結帳:流失 40-60%
- 開始結帳 → 購買完成:流失 20-40%
如果你的某一步的流失率明顯高於這些基準,那就是你應該優先改善的地方。
用區隔來深入分析
你可以對漏斗套用不同的區隔條件:
- 按裝置類型看:手機和桌機的轉換率差多少?
- 按流量來源看:從廣告來的跟從自然搜尋來的,哪個轉換率高?
- 按新舊客看:新訪客跟回訪客的行為有什麼不同?
這些區隔分析會幫你找到具體的優化方向。例如你發現手機的結帳流失率特別高,那可能是你的結帳頁面在手機上不好用。
常見問題與除錯
電商追蹤是 GA4 追蹤裡面最容易出錯的部分。以下是最常見的問題:
問題一:報表裡看不到電商數據
先確認你的事件有沒有正確觸發。在 GA4 的「即時」報表裡,完成一次測試購買,看看事件有沒有出現。如果連即時報表都看不到,問題在 GTM 的設定。
用 GTM 的預覽模式(Debug View)來檢查:dataLayer 有沒有正確推送事件?GTM 的觸發條件有沒有被啟動?GA4 代碼有沒有成功發送?
問題二:收入數字跟後台對不上
GA4 的收入數據跟你的電商後台不會百分之百吻合,這是正常的。原因包括:
- 使用者拒絕 cookie 追蹤,GA4 就收不到事件
- 退貨退款在 GA4 裡不一定有反映
- 時區差異造成跨日訂單的歸屬不同
一般來說,GA4 的收入數據會比實際少 10-20%。用 GA4 看的是趨勢和比例,不是絕對數字。精確的營收數字請以你的電商後台為準。
問題三:商品資料顯示不完整
如果你在報表裡看到 item_name 是「(not set)」,代表你推送事件的時候沒有帶上 item_name。回去檢查 dataLayer 的推送程式碼,確認每個商品物件都有完整的資料。
問題四:加入購物車的數字異常高
檢查是不是同一個「加入購物車」動作觸發了多次事件。可能是按鈕被連點,或是 dataLayer 推送的位置不對(放在頁面載入而不是按鈕點擊)。
進階設定:讓數據更完整
基本追蹤搞定之後,如果你想讓數據更豐富,可以再加上這些:
退款追蹤
用 refund 事件追蹤退款。帶上原始的 transaction_id,GA4 就會自動扣除對應的收入。
促銷追蹤
用 view_promotion 和 select_promotion 追蹤站內促銷活動的曝光和點擊。這能幫你了解哪些促銷 Banner 真的有帶來轉換。
搭配 BigQuery 做深度分析
GA4 可以免費匯出原始數據到 BigQuery。如果你的訂單量夠大,用 BigQuery 做客戶生命週期價值分析、購物籃分析、產品交叉銷售分析,會比在 GA4 介面裡操作方便得多。
最後提醒:電商追蹤的設定是一次性的工作,但驗證是持續性的工作。建議每個月抽一天,把 GA4 的數據跟後台對帳一次。如果差異突然變大,很可能是追蹤程式碼出了問題,要盡快修復,不然你看到的數據就不準了。