這套棄單追蹤系統要回答哪些問題
GA4 棄單追蹤要先回答三件事:流失卡在哪一步、集中在哪一群人、差距大到該先修哪個環節。先把量測邊界定清楚,才不會把所有棄單都誤判成價格問題。
這一步要避免的誤判,是只看最終訂單數,卻分不出問題發生在購物車、結帳流程,還是付款完成前。
棄單率 vs 結帳流失率
購物車棄單率是從加入購物車或查看購物車開始,看有多少人最後沒有完成購買;結帳流失率則是從開始結帳後,觀察有多少人沒有走到 purchase。前者偏營運層,後者偏流程層。實務上把兩者混用,常會把頁面問題指派錯團隊。
最小可行 KPI
最小可行 KPI 不用多,但一定要能對應漏斗節點與分群。建議先固定同一個口徑,再看裝置、來源、新舊客差異。
| 指標 | 建議起點 | 用途 | 避免的誤判 |
|---|---|---|---|
| 購物車到結帳啟動率 | view_cart 或 add_to_cart | 看購物車頁是否把人推進下一步 | 把購物意圖不足誤認成結帳故障 |
| 結帳完成率 | begin_checkout | 看結帳流程是否順 | 把流程流失和流量品質混在一起 |
| 付款前流失率 | add_payment_info | 看付款選項與金流體驗 | 把付款失敗誤認成運費問題 |
| 分群差距 | 裝置/來源/新舊客 | 排修正優先級 | 全站平均掩蓋單一族群異常 |
先把 add_to_cart、begin_checkout、purchase 三個核心節點定好,再往下補 shipping 與 payment 的診斷層,判讀才不會失焦。不在這裡展開 GA4 基本介面與歷史差異。
先畫事件地圖與漏斗骨架
GTM GA4 漏斗設定的核心,是先畫出最小可行事件地圖:哪個事件代表哪一步、送哪些參數、什麼情況不送。先有骨架,才不會追一堆事件卻無法判讀。
這一步要避免的誤判,是事件名稱看起來很多,但實際上沒有形成可分析的漏斗。
必追事件
GA4 是接收與分析事件的工具,事件就是使用者做過的動作紀錄。電商棄單系統至少要把下表事件串起來。
| 事件名 | 代表步驟 | 用途 | 必備參數 |
|---|---|---|---|
| view_item | 看商品 | 判斷加購前摩擦 | items、currency、value |
| add_to_cart | 加入購物車 | 定義購物意圖 | items、currency、value |
| view_cart | 查看購物車 | 判斷購物車頁表現 | items、currency、value |
| begin_checkout | 開始結帳 | 切出結帳流程 | items、currency、value |
| add_shipping_info | 填配送資料 | 看配送阻力 | items、shipping_tier、currency、value |
| add_payment_info | 填付款資訊 | 看付款阻力 | items、payment_type、currency、value |
| purchase | 完成訂單 | 結帳終點與對帳 | transaction_id、items、currency、value |
可選診斷事件
可選事件用來縮小問題範圍,像是 remove_from_cart、add_coupon、login、view_promotion。這些事件不一定要先上,但當你懷疑優惠碼欄位、登入流程或促銷干擾時,它們會讓原因更清楚。我看過很多專案,真正卡住的不是流量少,而是事件太少,導致所有流失都長得一樣。
命名與參數規則
命名先用 GA4 recommended events,也就是 Google 已定義好的事件名稱,能減少報表切分成本。參數至少固定六個:items、value、currency、transaction_id、payment_type、shipping_tier。value 與 currency 要一路一致,transaction_id 只在 purchase 出現,而且一筆訂單只用一個值。這樣可避免同一張訂單被拆成多筆,或同名事件因參數缺漏失去比較價值。不在這裡展開全站互動事件大全。
GTM + GA4 前置設定與平台盤點
上 GTM 前先盤點誰已經在送事件。GA4 資料流是接收資料的入口,GTM 容器是管理派送規則的地方;若平台原生事件已存在,再重做一次最容易把 purchase 灌水。
這一步要避免的誤判,是把所有事件都交給 GTM,卻沒先確認平台或外掛已經送過什麼。
資料流、容器與權限
先確認一個正式資料流、一個測試資料流,Measurement ID 也就是 GA4 資料流編號要分開;GTM 至少要有可編輯容器、可發布版本、可看預覽模式的權限。若工程、行銷、代理商共用同一組正式權限,後續很難追出誰改了哪個事件。
平台是否已原生送事件
平台原生送事件與 GTM 自建事件,先選主來源,再補缺口,不要雙軌並行。
| 平台 | 常見原生狀況 | GTM 建議補強 | 先查的風險 |
|---|---|---|---|
| Shopify | 常有 app 或原生整合送出 purchase | 補自訂分群參數與 QA | 同頁雙送 purchase |
| SHOPLINE | 部分事件可由後台模組輸出 | 補 shipping、payment 細節 | 事件名與參數格式不一致 |
| WooCommerce | 多靠外掛送 GA4 | 先驗證外掛內容,再決定是否補 GTM | 外掛更新後欄位缺值 |
| 自架站 | 通常需自建 dataLayer | 用 GTM 完整接管事件邏輯 | 前端資料層格式漂移 |
測試/正式分流
測試環境要送到測試資料流,正式站才送正式資料流;同一容器也要用環境或變數切開。這樣才能放心驗證 begin_checkout、payment、purchase,不會把內部測試單混進正式報表。若基礎電商追蹤還沒補齊,可先對照 GA4 電商追蹤設定 與 GTM GA4 電商追蹤。不在這裡展開廣告平台串接細節。
用 GTM 實作棄單追蹤
用 GTM 實作棄單追蹤時,先用 dataLayer 提供商品與訂單資料,再用變數、觸發條件、標籤把事件送進 GA4。只要 purchase 去重沒做好,後面的漏斗分析都會偏掉。
這一步要避免的誤判,是事件有送出就當成完成,卻沒有檢查參數完整度與重複送出。
dataLayer 設計
dataLayer 是前端把商品、金額、訂單資訊丟給 GTM 的共用資料層。設計原則很單純:同一步驟只推一次、items 結構固定、value 與 currency 同步、purchase 一定帶 transaction_id。若 dataLayer 在頁面每次刷新都重推 purchase,GA4 很容易多算。
Variable、Trigger、Tag
Variable 是 GTM 讀資料用的欄位,Trigger 是事件何時送出的條件,Tag 是實際送到 GA4 的設定。建議用 dataLayer event 當觸發主軸,不要只靠按鈕點擊或網址規則。按鈕點了不代表步驟成功,thank you page 出現也不一定代表金流完成,這兩種做法都容易高估流程進度。
purchase 去重
purchase 去重至少做兩層:前端避免同一完成頁重送,GA4 端用 transaction_id 判斷同筆訂單。我的判斷會先看訂單流程類型,若回到完成頁會再觸發頁面載入,就不能只靠 page_view 判斷。
transaction_id 驗收
transaction_id 是訂單唯一識別碼,也是 purchase 去重的主鍵。驗收時至少檢查四件事:
- 每筆 purchase 都有 transaction_id,不能空白。
- 同一張訂單重新整理完成頁,transaction_id 不變,purchase 不重複。
- 退款、取消、測試單有獨立規則,不混進正式訂單。
- GA4 事件值與後台訂單編號能一對一對回。
若你要延伸看更完整的漏斗銜接,可接著參考 GA4 漏斗設定。不在這裡展開 gtag.js 手寫做法。
在 GA4 建立棄單漏斗與分群分析
GA4 棄單追蹤的分析層,要用 Funnel Exploration 把 view_cart 到 purchase 排成固定步驟,再依裝置、來源、新舊客切開看。只看總棄單率,通常找不到真正先修點。
這一步要避免的誤判,是全站平均看起來正常,但手機、廣告流量或新客其實已經明顯掉隊。
Funnel Exploration
Funnel Exploration 是 GA4 的漏斗探索報表,用來看每一步有多少人進入、流失多少。標準模板可設為:view_cart、begin_checkout、add_shipping_info、add_payment_info、purchase。若站點沒有 view_cart,也可用 add_to_cart 起算,但同一份分析裡口徑要固定。
開放/封閉漏斗
封閉漏斗適合檢查標準結帳路徑,能看出每一步的純流失;開放漏斗適合站內路徑較複雜、可從多入口進結帳的情境。若你要抓系統是否有結帳摩擦,先用封閉漏斗;若你要理解多入口內容頁如何導流,才用開放漏斗。
裝置/來源/新舊客分群
分群順序建議先看裝置,再看來源,最後看新舊客。手機結帳通常先暴露欄位過長、鍵盤遮擋、付款方式不明等問題;來源差異則能看出某些活動帶來低意圖流量;新舊客差距大時,多半與信任、註冊、付款習慣有關。若要銜接相鄰主題,可對照 購物車棄單漏斗 與 漏斗流失判讀,但這裡先聚焦在系統建置與讀法。
怎麼驗證資料是否可信
資料可信的最低標準有三個:DebugView 看得到即時事件、Tag Assistant 看得懂觸發順序、GA4 與後台能對得回大方向。只要 purchase 重複或漏送,漏斗判讀就不可靠。
這一步要避免的誤判,是看到報表有數字就相信,卻沒確認資料是正確送出還是錯誤放大。
DebugView
DebugView 是 GA4 的即時除錯畫面,用來看你剛剛送出的事件有沒有進站、順序對不對、參數齊不齊。驗收時至少跑一次完整流程:add_to_cart、begin_checkout、add_shipping_info、add_payment_info、purchase,並核對 value、currency、items、transaction_id。
Tag Assistant
Tag Assistant 是 GTM 的預覽除錯工具,用來檢查哪個觸發條件啟動了哪個標籤。若同一頁同時看到平台原生腳本與 GTM 都送 purchase,先停下來,不要急著發布。這是我最常見的灌水來源之一。
GA4 與後台對帳
GA4 要拿來看趨勢與流失步驟,後台才是訂單與營收真值。對帳看的是方向與差異型態,不是要求兩邊永遠完全相等。
| 症狀 | 先查哪裡 | 可能原因 |
|---|---|---|
| purchase 明顯偏高 | Tag Assistant、transaction_id | 完成頁重整重送、平台與 GTM 雙送 |
| begin_checkout 有資料,add_payment_info 幾乎沒有 | 結帳頁事件觸發條件 | SPA 頁面未觸發、欄位送出條件太嚴 |
| GA4 訂單數低於後台 | Consent Mode、瀏覽器阻擋、跨網域設定 | 未同意追蹤、金流跳轉造成 session 斷裂 |
| value 有值,items 空白 | dataLayer 結構 | 商品陣列欄位名稱錯誤 |
- QA 驗收清單:正式上線前至少完成一次完整下單測試。
- 確認每個核心事件都能在 DebugView 看到。
- 確認 Tag Assistant 只觸發預期標籤一次。
- 確認 purchase 一定帶 transaction_id、value、currency、items。
- 確認測試單不流入正式 GA4 資料流。
- 確認 GA4 與後台在同一期間、同一時區下比對。
不在這裡只貼官方說明連結,重點是要能找出異常來源。
看到流失之後,下一步怎麼判斷修正優先級
看到漏斗流失後,先看掉點發生在哪一步,再看哪個分群最嚴重,最後才決定修正方向。先修哪裡,不是靠感覺,而是看流失節點是否集中又可被改動。
這一步要避免的誤判,是一看到棄單就先發折扣,卻沒先分清楚是運費、付款、註冊,還是手機體驗造成。
判讀決策樹可用這個順序:
- 若 view_cart 到 begin_checkout 掉得深,先查購物車頁資訊透明度、免運門檻、優惠碼干擾。
- 若 begin_checkout 到 add_shipping_info 掉得深,先查強制註冊、地址欄位、超商取貨流程。
- 若 add_payment_info 到 purchase 掉得深,先查 LINE Pay、信用卡、貨到付款等付款方式與金流錯誤。
- 若只有手機族群異常,優先修手機欄位、按鈕可見性、載入速度。
運費
若流失集中在 view_cart 或 begin_checkout 前段,常見原因是運費太晚揭露、免運門檻不清楚,或超商取貨條件放得太後面。這類問題屬於資訊揭露,不是付款問題。
付款方式
若 add_payment_info 到 purchase 掉得深,先看常用付款方式是否明確可見。台灣站點若 LINE Pay、信用卡分期、貨到付款或超商代碼繳費選項不清楚,流失通常會集中在付款前最後一步。
強制註冊
新客在 begin_checkout 前後掉得特別深,常是被要求先註冊會員。這種情況應優先比對新舊客差距;若舊客正常、新客異常,問題多半在信任門檻與流程阻力。
優惠碼
優惠碼欄位不是不能放,而是不要讓它成為結帳主視覺焦點。很多使用者看到優惠碼欄位會離站找折扣,這會拉高中段流失,卻不一定反映產品或價格本身有問題。
手機結帳
手機結帳若掉得比桌機深,先檢查欄位長度、鍵盤是否遮住 CTA、付款按鈕是否在首屏可見、超商門市選取是否容易返回。以台灣電商來看,手機問題常比折扣策略更早該修。不在這裡展開追回 EDM 或訊息腳本。
2026 常見限制與誤判風險
2026 做 GA4 棄單追蹤,正常差異主要來自 Consent Mode、跨網域與金流跳轉;不正常差異則多半是 purchase 重複、transaction_id 缺值或事件口徑混亂。GA4 是分析層,不是訂單後台。
這一步要避免的誤判,是把所有差異都當成設定錯誤,或反過來,把明顯異常當成平台限制。
Consent Mode
Consent Mode 是依使用者同意狀態調整追蹤行為的機制。若未同意分析追蹤,GA4 事件會變少,漏斗自然比後台小。這種差異是可預期的;但如果只有 purchase 特別少、其他事件正常,就要回頭查完成頁與金流流程。
跨網域與金流跳轉
結帳若會跳到第三方金流頁,再回到站內完成頁,跨網域設定不完整時,session 可能斷裂、來源可能被重設、purchase 可能漏記。正常現象是來源歸類偶爾有落差;不正常現象是 purchase 大量消失或集中重複。
何時才需要 BigQuery
BigQuery 是資料倉儲,適合裝超長歷史、複雜明細、跨來源對帳。若你現在的問題只是找出哪一步流失、哪個族群掉得深,GA4 漏斗探索通常已夠用。要等到你需要明細級事件留存、訂單與會員資料深度串接、或 GA4 介面抽樣與保存限制已影響判讀,再考慮延伸。這裡先守住實作邊界,不展開 SQL 與報表建模。
棄單率和結帳流失率差在哪裡?
棄單率通常看加入購物車或查看購物車後,有多少人最後沒買;結帳流失率則聚焦 begin_checkout 之後的流失。前者適合看整體購物意圖,後者適合找結帳流程問題。
GA4 棄單追蹤最少一定要追哪些事件?
最低建議追 add_to_cart、view_cart、begin_checkout、add_shipping_info、add_payment_info、purchase。若想更完整看加購前摩擦,可再補 view_item。
已經有平台原生 GA4,還需要用 GTM 嗎?
不一定。先盤點平台原生已送哪些事件、參數是否完整、purchase 是否可對帳;若只缺部分欄位或診斷事件,用 GTM 補強即可。最怕的是原生與 GTM 同時各送一份 purchase。
transaction_id 為什麼一定要有?
因為 transaction_id 是一筆訂單的唯一鍵,GA4 要靠它辨識 purchase 是否重複。沒有這個值,你很難穩定對帳,也無法有效排除重整完成頁造成的重送。
怎麼確認 purchase 沒有被重複送出?
先用 Tag Assistant 看同一流程是否只觸發一次 purchase 標籤,再用 DebugView 核對 transaction_id 是否只出現一次。最後拿後台訂單編號抽樣比對,確認同一訂單沒有多筆 purchase。
begin_checkout 有資料,但 add_payment_info 沒進來,先查哪裡?
先查結帳頁事件觸發條件,其次看頁面是否為單頁應用導致觸發失效,再看金流區塊是否延遲載入。很多情況不是使用者沒走到付款,而是事件根本沒在正確時機送出。
為什麼 GA4 的 purchase 和後台訂單數常常不同?
常見原因有三類:追蹤同意未開啟、跨網域與金流跳轉造成漏記、purchase 重複或缺值。GA4 是分析工具,後台才是訂單真值,所以要先判斷差異是正常邊界,還是設定異常。
棄單率分母該用 add_to_cart、view_cart 還是 begin_checkout?
看你要回答什麼問題。想看整體購物意圖流失,用 add_to_cart 或 view_cart;想看結帳流程本身,用 begin_checkout。重點不是哪個最好,而是同一份分析裡口徑要固定。
棄單漏斗先看裝置、流量來源,還是新舊客?
建議先看裝置,再看流量來源,最後看新舊客。裝置最容易先暴露手機結帳問題;來源能分出低意圖流量;新舊客則適合驗證註冊、信任與付款習慣差異。
add_to_cart 要不要標成 key event?
可以,但要先想清楚用途。若 add_to_cart 是你的重要經營節點,標成 key event 有助於快速觀察趨勢;若你只把它當漏斗中繼點,不一定要升成關鍵事件,避免報表重心跑掉。
Shopify / SHOPLINE / WooCommerce 的棄單追蹤差在哪裡?
差別主要在原生事件成熟度與可補強空間。Shopify 常見 app 或原生整合先送事件;SHOPLINE 常需補配送與付款細節;WooCommerce 多仰賴外掛,更新後更要重驗參數與 purchase 去重。
什麼情況才需要把棄單分析延伸到 BigQuery?
當你需要事件明細長期保存、跨系統對帳、會員與訂單深度串接,或 GA4 介面已不足以回答問題時,再延伸到 BigQuery。若現在只是要找出哪一步流失最嚴重,先把 GTM 與 GA4 的基本系統建穩更重要。
以官方文件、實際設定與量測結果整理 SEO 數據、網站追蹤與分析方法,並標示資料來源與判讀限制。