UTM 參數完整指南:讓流量來源可以比較與追蹤
從 source、medium、campaign 的分工開始,建立可維護的 UTM 命名規則、連結產製表與上線檢查,用完整案例避免 GA4 報表被大小寫與自由命名拆碎。
先說結論:先建立字典,再產生連結
UTM 參數要避免報表混亂,關鍵不是記住五個欄位,而是先把每個欄位的分析層級、允許值與負責人固定下來:
utm_source回答「流量來自哪個具體平台或發送來源」。utm_medium回答「這是哪一類取得流量的方法」。utm_campaign回答「這次流量屬於哪一個共同活動」。utm_content才用來區分同一活動中的素材、版位或連結版本。utm_term通常保留給付費搜尋的關鍵字或事先定義的受眾細分。
實作時至少保持 utm_source、utm_medium 與 utm_campaign 完整,全部使用小寫、固定分隔符號與受控詞彙。不要讓每位同事臨時自由輸入,也不要把中文活動名稱、日期、素材、受眾與負責人全部塞進一個欄位。
一條好的 UTM 連結,半年後仍能回答三件事:它從哪裡來、用什麼方式來、屬於哪次活動。一套好的 UTM 制度,還要能讓相同活動跨平台彙整、不同活動彼此分開,並在 GA4 中落入預期的流量來源與渠道。
UTM 是什麼?它能做什麼、不能做什麼
UTM 是加在目的網址查詢字串中的廣告活動參數。當使用者點擊帶有 UTM 的外部連結進站,GA4 可以從頁面網址讀取這些值,將它們處理成來源、媒介、活動等流量來源維度。你可以在「流量開發」報表查看工作階段來源、媒介與活動,也能在探索中使用相應維度分析互動與關鍵事件。
例如:
問號開始查詢字串,每組參數以等號連接名稱和值,再用 & 分隔。參數順序不影響含義,但值的大小寫會影響報表彙整。
這條連結表達:來源是 newsletter,媒介是 email,共同活動是 summer_launch。UTM 不會記錄「某一個人是誰」,也不應放入姓名、Email、電話、會員編號等可識別個人的資料。它同樣不會自動修復遺失的網站標籤、錯誤轉址、跨網域設定、Cookie 限制或使用者未同意收集的情況。
更重要的是,UTM 描述的是進站入口的活動資訊,不是因果證明。帶有 utm_campaign=summer_launch 的訂單,只表示該流量來源依 GA4 規則取得某種功勞,不代表沒有這次連結就一定不會購買。要理解報表數字為何和廣告平台不同,仍需搭配歸因窗口與跨系統對帳流程。
五個常用參數,各自應該放什麼?
| 參數 | 固定回答的問題 | 建議值 | 不建議放入 |
|---|---|---|---|
utm_source | 哪個具體平台、網站或發送來源? | google、instagram、newsletter、partner_a | social、paid 等過度寬泛類別 |
utm_medium | 用哪一類方法取得流量? | email、cpc、paid_social、affiliate | 平台名、活動名或臨時縮寫 |
utm_campaign | 屬於哪次共同活動? | summer_launch、always_on_lead | 每個素材各自不同的名稱 |
utm_content | 同一活動中的哪個素材或位置? | video_a、hero_cta、footer_link | Email、姓名或無規則的完整文案 |
utm_term | 哪個付費關鍵字或已定義細分? | coffee_subscription | 隨意拿來塞日期、裝置與所有剩餘資訊 |
Google 官方也支援 utm_id(活動 ID)與 utm_source_platform(負責導流的平台類型)。若公司已有廣告活動主檔或要匯入活動資料,穩定的 utm_id 很有價值:活動名稱可能改字,ID 可以保持不變。但不需要為了「欄位越多越完整」強迫每條連結塞滿參數;每一個值都應有明確用途與可維護來源。
Google 另外列出 utm_creative_format 與 utm_marketing_tactic,但官方目前註明它們尚未在 Analytics 資源中提供報表。若團隊需要素材格式與開發/再行銷策略,應先確認現有報表是否真的能使用,再決定放在 utm_content、廣告平台維度或資料倉儲,不要因參數名稱看起來合理就假設 GA4 會直接顯示。
source 和 medium 最容易混淆:一個是地點,一個是方法
把 source 想成「具體從哪裡來」,把 medium 想成「透過哪種取得方式」。同一來源可以有不同媒介,同一媒介也可以橫跨多個來源。
| 導流情境 | utm_source | utm_medium | 為什麼 |
|---|---|---|---|
| Instagram 付費廣告 | instagram | paid_social | 平台是 Instagram,方法是付費社群 |
| Instagram 個人檔案連結 | instagram | organic_social | 同平台,但這次不是付費取得 |
| 每週電子報 | newsletter | email | 發送來源固定,媒介屬於 Email |
| 合作夥伴導購 | partner_a | affiliate | 可辨識夥伴,方法屬於聯盟導購 |
| Google 搜尋廣告 | 優先使用自動標記 | 優先使用自動標記 | 連結帳戶後可取得比手動 UTM 更細的 Google Ads 維度 |
媒介命名還會影響 GA4 預設渠道群組。GA4 以規則將來源與媒介分類成 Email、Paid Social、Organic Social、Referral 等渠道;無法匹配的資料可能落入 Unassigned。因此命名制度不能只看「人看得懂」,還要核對 GA4 當前渠道定義。預設渠道規則可能隨產品更新,本文不建議硬背一份永遠不變的清單。
命名不一致,為什麼一場活動會裂成很多列?
UTM 值有大小寫差異。SpringSale、springsale 與 spring_sale 會成為不同值;facebook、fb 與 facebook.com 也不會因為人類知道它們相近就自動合併。
因此,命名規則至少要固定:
- 全部小寫:避免
Email與email分裂。 - 固定分隔符:本專案示例統一使用底線,不混用空白、連字號與底線。
- 一個平台一個標準值:選定
instagram後,不再出現ig。 - 一個媒介一個定義:
paid_social不和social_paid並存。 - 活動跨渠道共用名稱:同一促銷在 Email、社群與合作夥伴連結都用
summer_launch。 - 差異往下放:素材與版位放
utm_content,不要拆成不同utm_campaign。 - 活動名稱和顯示名稱分離:後台可顯示「夏季新品上市」,UTM 使用穩定代碼。
日期也不應無條件塞進每個活動名稱。若活動本來就按月獨立評估,2026_07_member_newsletter 可以是合理活動;若它是長期 always-on 計畫,每週改活動名只會切碎趨勢。日期是否存在,應由分析週期決定,而不是命名習慣。
完整案例:一場新品活動如何跨 Email 與社群比較
以下是虛構教學案例,數字用來示範命名、彙整與驗算,不是 MKT Notes 或任何客戶的實際成效。
一家咖啡器材店推出可修復手沖壺,活動代碼定為 repairable_kettle_launch。團隊要比較三個問題:
- Email 和付費社群,哪一種媒介帶來較有效的工作階段?
- Instagram 與 Facebook 兩個來源的付費社群成效有何差異?
- 同一封 Email 的主視覺按鈕與頁尾連結,哪個位置更能帶動購買?
連結產製表如下:
| 入口 | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|
| Email 主視覺按鈕 | newsletter | email | repairable_kettle_launch | hero_cta |
| Email 頁尾連結 | newsletter | email | repairable_kettle_launch | footer_link |
| Instagram 影片廣告 A | instagram | paid_social | repairable_kettle_launch | video_a |
| Facebook 靜態廣告 A | facebook | paid_social | repairable_kettle_launch | static_a |
假設活動結束並等待資料成熟後,GA4 流量開發報表整理出:
| 來源/媒介 | 工作階段 | 購買 | 工作階段購買率 |
|---|---|---|---|
newsletter / email | 2,000 | 80 | 80 ÷ 2,000 = 4.0% |
instagram / paid_social | 3,000 | 75 | 75 ÷ 3,000 = 2.5% |
facebook / paid_social | 1,000 | 20 | 20 ÷ 1,000 = 2.0% |
| 合計 | 6,000 | 175 | 175 ÷ 6,000 = 2.92% |
這時可以先做兩層比較:
- 媒介層:Email 為 2,000 個工作階段、80 次購買、4.0%;付費社群合併為 4,000 個工作階段、95 次購買、2.375%。
- 來源層:付費社群內,Instagram 的工作階段購買率為 2.5%,Facebook 為 2.0%。
但不能只用購買率宣布 Email 應獲得全部預算。這張表還沒有成本、訂單價值、新舊客比例與取消退款;工作階段也不等於廣告點擊。下一步應把媒介、來源、成本與後端淨訂單放在同一決策口徑,再判斷資源配置。
再把 Email 依 utm_content 拆開,假設主視覺連結帶來 1,500 個工作階段、65 次購買,頁尾連結帶來 500 個工作階段、15 次購買:
65 ÷ 1,500 = 4.33%;15 ÷ 500 = 3.0%。這是連結位置與點擊後結果的描述性差異,不是位置造成購買的因果證明。
若負責頁尾的人臨時把活動寫成 Repairable-Kettle-Launch,這 500 個工作階段就不會自然併入原活動列。制度的目的,就是在連結發出前阻止這種碎裂,而不是活動結束後再用試算表猜哪些字其實代表同一件事。
GA4 要看哪張報表?先分清楚「第一次」和「這次」
UTM 進站後,常見的兩張開發報表範圍不同:
- **使用者開發(User acquisition)**使用「最初使用者」來源、媒介與活動,回答新使用者第一次如何被取得。
- **流量開發(Traffic acquisition)**使用「工作階段」來源、媒介與活動,回答每次新工作階段從哪裡開始。
同一人第一次從自然搜尋進站,一週後點 Email 回訪,他的最初使用者來源仍可能是自然搜尋,而這次工作階段來源是 Email。兩張報表的數字不同,不應直接互相比較後判定 UTM 壞掉。
初學者要檢查 UTM,通常先到「報表 → 開發 → 流量開發」,使用「工作階段來源/媒介」與「工作階段活動」查看。要回答「哪些渠道帶來新使用者」,再切到使用者開發。若問題是關鍵事件功勞,還要確認事件範圍與歸因設定,不能只靠入口維度推論整段旅程。
Google Ads 要不要再加 UTM?優先保留自動標記
Google 官方建議在可用時優先使用 Google Ads 自動標記。自動標記會在網址加入點擊識別資訊,連結 Google Ads 與 GA4 後可提供廣告群組、查詢、關鍵字等比手動 UTM 更細的維度,也能減少人工拼字錯誤。
若同時使用自動與手動標記,GA4 的來源、媒介等流量分類會優先使用自動標記值;手動的 utm_content 與 utm_term 則可出現在 Manual Ad Content 與 Manual Term 維度。這不表示所有帳戶都應無條件雙重標記。團隊應先確認:
對其他廣告平台,若沒有和 GA4 等效的連結與自動標記,則依平台支援的動態參數產生 UTM,但動態模板輸出的值仍須服從同一字典。自動化只能減少手動輸入,不能取代命名治理。
建立 UTM 產製表:不要在發文前臨時手打
最小可用的 UTM 產製表,至少包含:
| 欄位 | 用途 |
|---|---|
| 最終落地頁 | 不含 UTM 的 canonical 目的網址 |
| source/medium/campaign | 從受控字典選擇,不自由輸入 |
| content/term | 有明確分析問題時才填 |
| 完整網址 | 由公式、網址產生器或程式組合並正確編碼 |
| 使用位置 | 哪個廣告、貼文、Email 或合作夥伴會放這條連結 |
| 負責人與建立日 | 發現錯誤時能追溯 |
| 測試狀態 | 轉址、最終網址、GA4 即時資料是否通過 |
| 停用/替換日 | 避免舊連結持續流通而無人維護 |
如果團隊規模稍大,再建立三張受控表:來源字典、媒介字典與活動主檔。活動主檔可同時保留穩定 ID、機器用名稱、人類顯示名稱、開始/結束日、負責人與狀態。連結產製表只允許從主檔選擇,避免同一活動出現多種拼法。
網址不要靠人工逐字串接。落地頁若本來已有查詢參數,新增 UTM 時要使用 & 而不是第二個 ?;空白、中文與特殊字元也需要正確網址編碼。使用 Google Campaign URL Builder、試算表公式或程式的 URL API 產生後,再用瀏覽器實際點擊測試。
八步上線檢查:從命名到報表都要走一遍
1. 寫下分析問題
先決定要比較平台、媒介、活動、素材還是版位。沒有決策用途的欄位先不加,避免產生大量從未使用的唯一值。
2. 查字典,不創造近義詞
確認來源與媒介是否已有標準值。若真的新增平台,先更新字典、定義、負責人與預期 GA4 渠道,再產生連結。
3. 建立或選擇活動主檔
同一行銷計畫跨平台使用同一 utm_campaign;若是新的預算、受眾與目標週期,才評估是否應建立新活動。
4. 由工具組合完整網址
確認核心的 source、medium、campaign 都有值,查詢字串正確編碼,且沒有把機密或個資放入網址。UTM 會出現在瀏覽器、分享紀錄、伺服器日誌與分析工具中,不適合承載敏感資訊。
5. 檢查所有轉址
實際點擊短網址、社群預覽或廣告追蹤網址,確認最終落地頁仍保留需要的參數。頁面若連續轉址或把查詢字串移除,GA4 可能讀不到活動資料。
6. 驗證網站標籤與即時資料
確認落地頁 GA4 標籤正常觸發,並在即時報表或 DebugView 查看活動資訊。標準報表需要處理時間,不能只因立即看不到就重複改名或重送。
7. 檢查渠道與碎裂值
在流量開發報表檢查工作階段來源/媒介、活動與預設渠道。搜尋大小寫變體、(not set)、Unassigned 與突然新增的唯一值,追查是哪條連結或模板產生。
8. 保存版本並定期稽核
每月匯出來源、媒介與活動清單,檢查新值、停用值與命名錯誤。字典修改要記錄日期;不要悄悄改掉歷史定義,否則時間序列會失去一致性。
七個常見錯誤與限制
用 UTM 標記站內連結
UTM 是外部入口的活動標記。首頁到商品頁的按鈕、文章內推薦與導覽列應使用事件或頁面路徑分析;把內部版位寫成 utm_source=homepage,會混淆「使用者從哪裡進站」和「進站後點了什麼」兩個問題。
把 source 和 medium 寫反
social / facebook 對人可能勉強看得懂,卻把類別與平台倒置。固定使用 facebook / paid_social,才能同時比較平台與媒介。
同一活動每個平台各取一個 campaign
若 Email 寫 summer_email、社群寫 summer_social,就無法直接彙整整體 summer_launch。平台差異已有 source 與 medium,不需要再寫進 campaign。
使用自由輸入的人名或文案
人名可能變動,也可能涉及個資;完整廣告文案會產生高基數、網址過長與維護困難。使用穩定素材代碼,把詳細版本放在素材主檔。
把 UTM 當成點擊識別碼
同一條 UTM 連結可以被很多人點擊。它描述一組活動分類,不是唯一點擊,也不是訂單主鍵。點擊、工作階段、使用者與購買仍是不同計數單位。
看到 direct 就認為 UTM 一定失效
Direct 可能來自沒有可用來源資訊的進站,也會受到使用者環境、轉址、同意、標籤與報表範圍影響。先重現連結、檢查最終網址與工作階段維度,再判斷是哪一層遺失。
只維護規則,不抽查真實報表
字典寫得再漂亮,廣告平台動態模板、短網址或人工貼文仍可能輸出錯值。治理必須包含產製限制、上線測試與持續稽核。
最後帶走:可直接採用的 UTM 命名清單
utm_source放具體平台或發送來源,utm_medium放取得流量的方法。- 同一行銷活動跨渠道使用相同
utm_campaign,素材與版位差異放utm_content。 - 核心連結保持 source、medium、campaign 完整;其他參數有分析用途才加入。
- 所有值使用小寫、固定分隔符與受控詞彙,不讓同義縮寫並存。
- 活動名稱是否包含日期,由分析週期決定,不為命名整齊任意切碎長期活動。
- 核對 GA4 預設渠道規則,避免媒介命名讓流量落入 Unassigned。
- Google Ads 優先使用自動標記與帳戶連結,不用手動 UTM 取代可取得的細緻維度。
- 不在 UTM 放 Email、電話、姓名、會員編號或其他可識別個人身分資訊。
- 不用 UTM 追站內連結;站內互動用事件與頁面路徑。
- 上線前測轉址、最終網址與 GA4 即時資料,上線後定期找大小寫變體、
(not set)與異常新值。
UTM 管理的真正產出不是「每條網址都有標記」,而是一份可長期維護的共同語言:來源不冒充媒介,素材不冒充活動,名稱不因人而異,報表中的每一列都能追溯到建立規則。 做到這些,流量資料才有資格進入後續的 CVR、CPA 與預算比較;若報表已經乾淨但結果仍異常,再接著用流量品質與頁面 CVR 診斷逐層找原因。
SOURCE LOG