數據分析 / / 8 min

GA4 電子商務追蹤設定:從加入購物車到結帳完成都追蹤

完整教學 GA4 電子商務追蹤的設定方式,從瀏覽商品、加入購物車到結帳完成,一步步帶你把整個購物流程的數據都記錄下來。

目錄

你的電商網站有在追蹤購物流程嗎

很多電商老闆會說:「有啊,我有裝 GA4,看得到多少人來、多少人買。」

但如果我問你:「從瀏覽商品到最後結帳,中間每一步流失了多少人?流失最嚴重的是哪一步?」你答得出來嗎?

大部分人答不出來。因為他們只追蹤了最前面(網站流量)和最後面(購買完成),中間的過程是一片黑暗。

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_itemadd_to_cartbegin_checkoutpurchase 這四個。有了這四個事件,你就能建立一個基本的購物漏斗,看到每一步的流失情況。

其他事件是「有追蹤更好」的,可以之後再慢慢補上。

商品資料的格式: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_categoryitem_category2item_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。

這三個步驟要對每個電商事件都做一次。聽起來很繁瑣,但設定好之後就不用再動了。

GTM 電子商務追蹤設定的三步驟流程

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 事件就會被重複觸發。

解決方法有兩個:

  1. 用 transaction_id 去重:GA4 會自動忽略相同 transaction_id 的重複事件(同一天內)
  2. 程式端控制:在感謝頁面用 session 或 cookie 記錄是否已經觸發過 purchase 事件,避免重複推送

建議兩個都做。第一個是保險,第二個是根本解決。

在 GA4 裡看電商報表

設定好追蹤之後,數據大約需要 24-48 小時才會在 GA4 報表裡出現。

電商報表的位置

在 GA4 左側選單找到「報表」→「獲利」→「電子商務購買」。這裡會顯示你的商品銷售數據,包含每個商品的瀏覽次數、加入購物車次數、購買次數和收入。

建立購物漏斗

這是電商追蹤最有價值的功能。到「探索」→ 建立新的探索報表 → 選「漏斗探索」。

設定步驟:

  1. view_item(瀏覽商品)
  2. add_to_cart(加入購物車)
  3. begin_checkout(開始結帳)
  4. 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 推送的位置不對(放在頁面載入而不是按鈕點擊)。

GA4 電子商務追蹤除錯的檢查清單

進階設定:讓數據更完整

基本追蹤搞定之後,如果你想讓數據更豐富,可以再加上這些:

退款追蹤

refund 事件追蹤退款。帶上原始的 transaction_id,GA4 就會自動扣除對應的收入。

促銷追蹤

view_promotionselect_promotion 追蹤站內促銷活動的曝光和點擊。這能幫你了解哪些促銷 Banner 真的有帶來轉換。

搭配 BigQuery 做深度分析

GA4 可以免費匯出原始數據到 BigQuery。如果你的訂單量夠大,用 BigQuery 做客戶生命週期價值分析、購物籃分析、產品交叉銷售分析,會比在 GA4 介面裡操作方便得多。

最後提醒:電商追蹤的設定是一次性的工作,但驗證是持續性的工作。建議每個月抽一天,把 GA4 的數據跟後台對帳一次。如果差異突然變大,很可能是追蹤程式碼出了問題,要盡快修復,不然你看到的數據就不準了。