UTM 參數命名規範——統一管好行銷連結來源

同一個來源,有人寫 facebook、有人寫 Facebook、有人寫 fb,到了 GA4 報表裡就變成三筆互不相干的流量。行銷活動跑得越多、經手的人越多,這種「同一件事被拆成好幾個名字」的狀況就越嚴重,最後報表變成一堆對不起來的碎片,得花整個下午手動合併。問題的根源不在工具,而在沒有一套講好的 UTM 參數命名規範。

UTM 本身只是掛在網址後面的標記,誰都會加;真正決定資料乾不乾淨的,是「大家有沒有照同一套規則去填」。這篇會把命名規範拆成三層來談:每個參數該填什麼樣的值、用什麼分隔符與大小寫、以及怎麼把規則變成一份團隊跟得動的管理表。文末附一份可以直接照抄的命名規格,讓你把行銷連結的來源追蹤一次統一管好。

UTM 參數命名規範到底在規範什麼

UTM 參數命名規範規範的不是「要不要加 UTM」,而是「加的時候每個欄位填什麼字、長什麼樣」。它是一套團隊共用的填寫約定,目的只有一個:讓同一件事在報表裡永遠對應到同一個值。

UTM(Urchin Tracking Module)是附加在網址後面的查詢字串參數,當使用者點擊帶參數的連結進站時,Google Analytics 這類工具會讀取這些參數,把流量歸類到對應的來源、媒介與活動。一段帶 UTM 的網址長這樣:

https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale

問題在於,UTM 沒有任何內建驗證。你填 facebook 還是 Facebookemail 還是 edm,網址都會正常運作、頁面都會正常打開,GA4 也照單全收。工具不會幫你判斷哪兩個值「其實是同一個意思」——這件事完全靠人為的命名規範來守。

所以命名規範要解決的,是三個層次的混亂:

  • 格式不一致:大小寫、分隔符各寫各的,同義詞被拆成多筆。
  • 語意不一致sourcemedium 寫反、活動名稱每次重取。
  • 管理不一致:沒有一份共用清單,新人不知道該填什麼,只能憑印象猜。

把這三層管好,UTM 才會從「可以追蹤」進化成「報表看得懂」。

五個 UTM 參數各自該填什麼值

命名規範的第一步,是先講清楚每個欄位的角色,避免把值填到錯的格子裡。UTM 共有五個標準參數,其中三個建議必填、兩個選填:

參數 角色 填什麼 台灣常見值
utm_source 流量來自哪個平台或來源 平台名、網站名、夥伴名 facebookinstagramlinenewslettergoogle
utm_medium 透過哪種通路型態進來 媒介類型,不是平台名 cpcsocialemailreferraldisplay
utm_campaign 屬於哪一檔行銷活動 活動代號或主題 summer_salemember_dayproduct_launch
utm_term 付費搜尋的關鍵字 觸發廣告的字詞 crm_toolrunning_shoes
utm_content 同一活動內的素材或版位 用來區分 A/B 或位置 hero_buttonsidebarversion_a

最常被寫反的是 utm_sourceutm_medium。簡單的記法是:source 回答「哪個地方」,medium 回答「哪種通路型態」。Facebook 貼文導流時,source=facebookmedium=social;電子報導流時,source=newslettermedium=email。如果你把 source=socialmedium=facebook 寫反,報表的歸類邏輯就整個倒過來,後面再多的命名規則都救不回來。

utm_termutm_content 是選填,但別小看 utm_content。同一個活動頁同時放在電子報頂部按鈕、文末按鈕、Instagram Bio 連結時,活動名稱可以一樣,靠 utm_content 標出 hero_buttonfooter_ctabio_link,就能比出哪個版位真的有人點。這是分清「哪個活動有效」之後,再往下追「哪個素材有效」的關鍵。

大小寫、分隔符與字元,三條格式硬規則

格式層的混亂最常見,但也最好治,因為它只靠三條死規則就能擋掉九成問題。

第一、全部使用小寫英文。 UTM 參數值區分大小寫,FacebookfacebookFACEBOOK 在 GA4 裡是三個不同的來源。沒有任何理由用到大寫,統一規定一律小寫,是成本最低、效果最大的一條。

第二、分隔符只能選一種,全團隊統一。 網址裡不能有空格,summer sale 會被編碼成難讀的 summer%20sale,所以多字詞之間一定要用符號連起來。常見的選擇有兩種:

  • 連字號 -:例如 summer-sale。可讀性好,許多分析平台與廣告系統把它當成標準。
  • 底線 _:例如 summer_sale。視覺上把字詞黏得更緊,也很多團隊採用。

兩種都行,重點是選定一種就不要再換。真正會出事的是混用——同一份報表裡 summer-salesummer_sale 並存,又得手動合併。

如果團隊規模大、活動結構複雜,有一種進階寫法值得考慮:欄位內用底線、欄位之間用連字號。例如把區域、通路、月份壓進一個值裡寫成 apac_paid-social_june,靠兩種分隔符的層次區分「同一欄裡的詞」與「不同欄的概念」,方便事後用程式拆解。一般中小團隊不用做到這麼細,但如果你之後打算用試算表公式或腳本批次解析 UTM,這個習慣會省下很多力氣。

第三、不放中文、空格與特殊符號。 中文會被轉成一長串百分號編碼,網址既難讀又容易在複製貼上時斷掉;#&%@? 這些符號本身就是網址的結構字元,塞進參數值會直接破壞 UTM 的解析。活動名稱再怎麼有創意,到了 UTM 欄位都先翻成簡短的英文代號。

為每個參數建立一份「可用值清單」

光有格式規則還不夠。facebookfbfacebook-organic 三個全是小寫、也都用連字號,完全符合格式硬規則,卻照樣把同一個來源拆成三筆。要堵住這個破口,得做的是受控詞彙表——也就是事先把每個參數「允許填哪些值」列成一份清單,填表的人只能從清單裡挑,不能自由發揮。

最該管的是 utm_sourceutm_medium 這兩個必填欄位,因為它們是報表歸類的骨幹。建議的做法是:

  • utm_source 清單:把你會用到的平台一次列齊,例如 facebookinstagramlineyoutubenewslettergooglepartner-a。規定 Facebook 永遠寫 facebook,不准出現 fbFBfacebook.com
  • utm_medium 清單:媒介類型本來就有限,更該鎖死。常用的就是 cpcsocialemailreferraldisplayaffiliateorganic-social 這幾種,列完就不要再生新的。

utm_campaign 沒辦法做成封閉清單(每檔活動都是新的),但可以規定命名樣式。例如統一成「主題 + 檔期」的結構,像 member-day-q3product-launch-v2,並且講好同一檔活動跨平台投放時,utm_campaign 必須維持同一個名字——這樣你才能把 Facebook、電子報、LINE 的同一檔活動加總起來比較。

utm_termutm_content 是選填,可以不做封閉清單,但至少在規範文件裡放幾個範例,讓填表的人有樣可循,例如 utm_content位置-素材 的格式寫成 header-bannerfooter-text

做受控詞彙表的好處,是把判斷力從「每個填表的人」收回到「一份文件」。新人不需要懂分析邏輯,照著清單挑就不會錯。

哪些連結不該加 UTM

命名規範除了規定「怎麼填」,也要明確規定「哪裡不要填」,否則填得再乾淨,資料一樣會被污染。

站內連結絕對不要加 UTM。 這是最容易踩、後果也最嚴重的一條。當一位使用者從 Google 搜尋進站,接著點了你站內某個帶 UTM 的 banner,他這一次工作階段的來源會被改寫成那個 banner 的值,原本「來自 Google 自然搜尋」的資訊就被蓋掉了。結果報表把大量真實來自外部的流量,誤判成從你自己網站來的。站內的點擊與版位要追蹤,請用 GA4 的事件追蹤,而不是 UTM。

已開自動標記的 Google Ads 流量不用再手動加 UTM。 Google Ads 啟用自動標記後,會在網址自動加上 gclid 參數,GA4 能直接讀取並對應到 Ads 的活動資料。這時候你再手動補一套 UTM,兩套參數可能互相干擾、產生衝突的歸因。實務上的建議是:Google Ads 流量優先用自動標記,需要手動 UTM 時先確認 GA4 與 Ads 的設定邏輯,別讓兩套標記打架。

不要把個資放進 UTM。 姓名、電話、Email、會員編號、訂單編號、登入 token 這類能識別個人的資訊,一律不准出現在 UTM 裡。網址會出現在瀏覽器紀錄、伺服器日誌、被分享的連結、截圖,甚至透過 referrer 傳到第三方網站;資安界普遍的共識是,敏感資料不該放在網址的查詢字串中。UTM 是用來標記行銷來源的,不是傳遞資料的管道。

把規範變成一份團隊跟得動的管理表

規範寫得再漂亮,沒有一份大家共用、隨時查得到的工具,三個月後一樣會走樣。命名規範的最後一哩,是把規則落地成一份 UTM 管理總表。

最務實的做法是開一份共用試算表(Google Sheets 即可),至少包含這幾欄:

  • 完整網址
  • utm_sourceutm_mediumutm_campaignutm_content
  • 發佈位置(哪個平台、哪則貼文)
  • 負責人
  • 上線日期
  • 狀態(進行中/已結束)

utm_sourceutm_medium 兩欄設成下拉選單,選項就是前面定好的受控詞彙表——這一步能直接消滅手打錯字與同義詞分裂。每建一條新連結就登錄一筆,既避免重複命名,也留下完整的歷史紀錄,跨年回頭查舊活動時不會一片空白。

規範文件本身則要寫清楚四件事:每個參數的填寫標準、選定的分隔符與大小寫規則、各參數的可用值清單、以及哪些連結不該加 UTM。文件放在團隊都找得到的地方,新人上手時先讀這份,再開始建連結。

連結正式發佈前,養成跑一輪檢查的習慣,把以下幾點過一遍:

  • 網址點開能不能正常打開頁面
  • 三個必填參數有沒有都填
  • 大小寫是不是統一小寫、分隔符有沒有混用
  • sourcemedium 有沒有寫反
  • 值有沒有落在受控詞彙表裡
  • 有沒有不小心放進個資
  • 短網址或轉址後,UTM 參數有沒有被吃掉
  • 是否已經登錄到管理表

這份檢查看起來瑣碎,但它換來的是日後不用花大把時間清報表。

已經一團亂的舊資料,怎麼收拾

如果你接手的 GA4 裡已經堆了一堆 FacebookfacebookFB 混雜的歷史資料,命名規範也救不回過去——但能止血,並讓未來的資料乾淨。

先做的是「定義現在」:把上面那套規範訂出來、建好管理表與受控詞彙表,讓從今天起的新連結全部照規則走。歷史資料無法回頭改寫已經寫入的參數值,但 GA4 的探索報告或資料處理層通常可以建立對應規則,把 FacebookFB 這類舊值在分析時歸併到 facebook 底下,做出較乾淨的合併視圖。

同時把舊的、沒照規範的連結盤點一遍:還在外面流通、之後還會帶流量的連結(例如印在 DM 上的 QR Code、已發佈的部落格外連),如果還能改,就換成符合新規範的網址;改不動的就記錄下來,知道這批流量的命名是舊規則,分析時心裡有數。

收拾舊資料的重點不是追求完美回溯,而是劃一條清楚的分界線:分界線之後的資料照規範跑,分界線之前的資料知道它怎麼亂、怎麼在分析時對應。把這條線劃好,報表才會一季比一季乾淨。

從填對欄位到報表看得懂,規範才是真正的價值

UTM 加得對不對,差別不在當下那條網址,而在三個月後打開報表的那一刻。一套講清楚的 UTM 參數命名規範,本質上是在替未來的自己省下清資料的時間:每個參數填什麼值、用小寫與單一分隔符、必填欄位走受控詞彙表、站內連結與個資絕不碰、所有連結登錄進管理表——這幾條守住了,同一件事就永遠對應同一個值,報表自然加得起來、比得出來。

如果你的團隊還沒有這份規範,今天就可以從最小可行版本開始:訂下「一律小寫、分隔符選一種、sourcemedium 各列一份可用值清單」這三條,開一份管理試算表,把下拉選單設好。先把規則立起來、讓新連結照著走,再慢慢去處理舊資料。命名規範不是越複雜越好,是越穩定、越多人照著做越好。

相關文章
標籤: 行銷追蹤, GA4, 流量分析, 命名規範, UTM