GTM 教學:代碼、觸發條件與同意模式怎麼設

工程師離職、行銷要自己加廣告像素時,GTM 能幫上什麼忙?這篇講容器、代碼、觸發條件和變數怎麼搭,怎麼用預覽模式驗收,以及同意模式會擋下哪些代碼。

先說結論

GTM(Google 代碼管理工具)是免費的追蹤碼管理後台:網站裝一次容器,之後 GA4、廣告像素都在 GTM 裡新增,不用每次改網站程式。每個代碼都要配一個觸發條件,決定什麼時候送出;發布前先用預覽模式確認。網站有 Cookie 同意機制時,要讓代碼等訪客同意才觸發,這比任何埋碼技巧都重要。

青綠色牆面上一條橡木掛架,黃銅掛鉤吊著四張空白的米色與牛皮紙吊牌,最右邊的掛鉤空著
GTM 教學:代碼、觸發條件與同意模式怎麼設 封面視覺

一家旅行社的行銷剛和廣告代理商談好,下個月開始投 Meta 廣告。代理商只交代一句:「麻煩把像素裝到網站上。」問題是當初架站的工程師已經離職,網站程式沒人敢動,後台也找不到可以貼程式碼的地方。

這時候大家會想到 GTM。它確實能讓行銷不改程式就加追蹤碼,但真正卡關的通常是三件事:代碼什麼時候該觸發、訪客還沒同意 Cookie 時能不能跑、誰有權限按下發布。這篇用 ethorx.com 自己的 GTM 容器,把這三件事一件一件講清楚。

GTM 是什麼:網站只裝一次的追蹤碼管理後台

GTM 是 Google Tag Manager,中文介面叫「Google 代碼管理工具」。(搜尋「GTM」還會看到男團和進入市場策略,那是另外兩件事。)網站先裝一次「容器」程式碼,之後要加 GA4、廣告像素或其他追蹤碼,都在 GTM 後台新增,不用每次請工程師改網站。

元件做什麼旅行社的例子
容器裝在網站上的一段程式碼,所有設定都放在裡面整個官網共用一個容器
代碼要執行的追蹤碼Meta 像素、GA4 事件
觸發條件決定代碼什麼時候執行每頁載入時、報名表送出成功時
變數代碼和觸發條件用到的值行程代碼、報名人數

第一次接觸時,很容易把 GTM 當成另一個分析工具。GTM 只負責把資料送出去,本身不存資料,也不出報表。資料送到 GA4 之後,報表要在 GA4 裡看,怎麼讀寫在 GA4 教學;GA4、Search Console 這些免費工具怎麼分工,可以看 SEO 工具怎麼選。

小網站需要 GTM 嗎?先對照這張表

GTM 很好用,但它也是一個要有人管的後台。下面是我會用的判斷方式:

你的情況我的建議
只有 GA4,網站平台(WordPress、Shopify、Wix)有內建整合先用平台整合,不必加 GTM
要裝兩種以上的追蹤,例如 GA4、Meta 像素、Google Ads 轉換用 GTM 集中管,之後加減代碼不必改網站
沒有工程師,行銷要自己加代碼用 GTM,但先把權限和發布流程定好
網站有 Cookie 同意機制,要依同意狀態控制代碼用 GTM 的同意設定,或在網站程式裡控制容器什麼時候載入

旅行社符合第二列和第三列:GA4 加上 Meta 像素,之後可能還有 Google Ads,而且沒有工程師。這種組合裝 GTM 很划算。反過來,一個只放公司簡介、只看 GA4 的網站,多一層 GTM 只是多一個要記得登入的後台。

容器、代碼、觸發條件、變數怎麼搭在一起

ethorx.com 的 GTM 容器目前是第 3 版,裡面有 6 個代碼、5 個觸發條件、10 個自己建的變數。數字聽起來不少,拆開看其實很單純:

代碼觸發條件用到的變數
Google 代碼(填 GA4 評估 ID)初始化 - 所有網頁—
GA4 事件 generate_lead自訂事件 generate_lead表單名稱、諮詢類型、文章脈絡
GA4 事件 contact_cta_click自訂事件 contact_cta_click點擊位置、目的地、文章脈絡
GA4 事件 contact_form_error自訂事件 contact_form_error表單名稱、錯誤類型、文章脈絡
GA4 事件 content_to_service_click自訂事件 content_to_service_click點擊位置、目的地、文章脈絡
GA4 事件 product_outbound_click自訂事件 product_outbound_click點擊位置、目的地、文章脈絡

「文章脈絡」是 5 個變數:訪客最近和最早讀的是哪篇文章、屬於哪個分類。加上表單名稱、諮詢類型、錯誤類型、點擊位置、目的地,一共 10 個,全部是「資料層變數」。版本頁上的變數會顯示 15 個,多出的 5 個是 GTM 預設啟用的內建變數,例如 Page URL。

除了 Google 代碼,觸發條件全部是「自訂事件」,意思是由網站程式主動通知 GTM:「現在發生了 generate_lead」。網站這端只做一件事,把事件推進資料層(dataLayer):

// 伺服器確認收到詢價之後(實際程式另外帶著文章脈絡參數)
window.dataLayer.push({
  event: 'generate_lead',
  form_name: 'contact',
  inquiry_type: 'geo',
});

GTM 收到之後,觸發條件比對事件名稱,資料層變數讀出 inquiry_type,GA4 事件代碼再把它送給 GA4。

GTM 也可以用「點擊」觸發條件,比對按鈕的文字或 CSS 類別,完全不必碰網站程式。我們沒有這樣做,原因很實際:詢價有沒有送達,只有網站程式知道。按鈕被點了,伺服器不一定收到。哪天設計師把按鈕文字從「送出」改成「聯絡我們」,點擊觸發條件就默默失效,報表上的詢價數歸零,卻沒有人發現。點擊觸發適合「點了就算」的動作,例如下載型錄;要看結果的事件,交給網站程式推送比較穩。

依你看到的介面版本,觸發條件和變數可能在左側選單,也可能收在總覽頁的「進階」分頁裡。Google 在 2026 年調整過 GTM 的介面,原有的功能都還在。

一筆詢價在 GTM 裡的路徑圖:網站程式在伺服器確認收到後推送 generate_lead 到資料層,GTM 的自訂事件觸發條件比對事件名稱,資料層變數讀出諮詢類型,GA4 事件代碼送出,GA4 記成重要事件;上方註明訪客按同意之前網站不載入 GTM 容器 ethorx.com 的 generate_lead 從網站送到 GA4 的路徑;訪客沒按同意,這條路從一開始就不存在。

安裝容器與第一個 GA4 代碼

從零開始的順序如下:

  1. 到 tagmanager.google.com 建立帳戶和容器,目標平台選網頁。
  2. 把兩段程式碼裝上網站:第一段放進每一頁的 <head>,越前面越好;第二段(含 noscript)放在 <body> 開頭之後。用 WordPress、Shopify、Wix 這類平台的,先看平台有沒有整合方式,可以不必逐頁貼程式碼。
  3. 新增 Google 代碼,填 GA4 的評估 ID(G- 開頭),觸發條件選「初始化 - 所有網頁」。這個觸發條件會比其他觸發條件先跑,只排在「同意聲明初始化」之後。
  4. 每個要追蹤的動作,配一個 GA4 事件代碼和一個觸發條件。
  5. 按「預覽」,用 Tag Assistant 確認代碼在對的時候觸發,做法在後面的預覽模式那一節。
  6. 按「提交」,選發布並建立版本,版本名稱寫清楚這次改了什麼。

接手舊網站時,我會先多檢查一件事:同一個 GA4 評估 ID 不要同時寫在網站程式和 GTM 裡。兩邊都裝,每一頁通常會記兩次 page_view,流量看起來翻倍,其實是重複。先搜尋網站原始碼裡有沒有 gtag 的設定,再決定要留哪一邊。

同意模式:訪客按同意之前,哪些代碼可以跑

Google 的同意模式有四種同意類型。analytics_storage 管分析用的 Cookie,ad_storage 管廣告用的 Cookie;ad_user_data 管能不能把使用者資料送給 Google 做廣告,ad_personalization 管個人化廣告。GTM 裡和同意有關的設定在三個地方:

  • Google 自家的代碼有「內建同意聲明檢查」,會依同意狀態自己調整行為。
  • 其他代碼可以加「額外同意聲明檢查」,選「需要額外同意聲明才能觸發代碼」,指定的同意類型都是允許時才會觸發。旅行社的 Meta 像素,就該要求 ad_storage 是允許。
  • 在容器設定開啟「同意聲明總覽」,可以一頁看完哪些代碼設了同意、哪些還沒設;管理同意狀態的代碼,用「同意聲明初始化 - 所有網頁」觸發。

ethorx.com 的做法更直接:同意的控制放在網站程式裡。頁面一開始先宣告四種同意都是拒絕,訪客按下「同意」之後才執行這兩行:

updateGoogleAnalyticsConsent(true); // analytics_storage 改成允許,廣告三項維持拒絕
loadGoogleTagManager(gtmId);        // 這時才載入 GTM 容器

這等於 Google 說的基本同意模式。同意之前連 GTM 都沒有,容器裡的代碼自然不會跑;訪客撤回同意時,網站也會刪掉 GA 的 Cookie。代價 Google 也寫得很清楚:在使用者和橫幅互動前就擋住 Google 代碼,Google 無法驗證同意選擇,可能少掉資料。我們的容器裡只有 GA4 代碼、沒有任何廣告代碼,寧可少算,也不在同意前送出資料,這個取捨可以接受。

要投 ChatGPT 廣告 或 Meta 廣告的話,我會把轉換像素也放在同意之後。如果你要投 Google 廣告,而且網站有歐洲經濟區的訪客,規則就更明確了。Google 要求服務這些使用者的廣告主取得同意,並透過同意模式把 ad_user_data 和 ad_personalization 的選擇傳給 Google。台灣網站要做到什麼程度,依你的隱私權政策和法務判斷;我的建議是至少讓廣告類代碼等訪客同意再觸發。

發布前用預覽模式驗收

GTM 的「預覽」會打開 Tag Assistant:輸入網址、按連結,網站會在另一個視窗以偵錯模式開啟。之後每做一個動作,Tag Assistant 都會列出哪些代碼觸發了、照什麼順序,沒觸發的也會告訴你原因。偵錯介面只出現在啟動預覽的那個瀏覽器,一般訪客看不到;要給同事或代理商一起看,可以從 Tag Assistant 分享預覽網址。

有 Cookie 同意機制的網站,預覽時要記得先在那個視窗按同意。以 ethorx.com 為例,沒按同意,GTM 根本不會載入,Tag Assistant 也就抓不到容器。

2026 年 10 月發布第 3 版時,我們照這個順序驗收。先確認還沒按同意時,頁面沒有任何 GTM 或 Google 代碼載入;按同意之後,GTM 和 GA4 的請求都成功。接著在 GA4 即時報表看到測試操作產生的事件,最後把同意撤回,確認換頁後 GTM 不再載入。第三步不能省,前兩步都成功也一樣。資料層出現事件,只代表網站送出了;GA4 有沒有收到,要在 GA4 的即時報表或 DebugView 看到才算數。

權限與版本:工程師離職,GTM 不該跟著失聯

旅行社真正的問題,往往是 GTM 唯一的管理員就是那位離職的工程師。GTM 的權限分兩層:

層級權限能做什麼
帳戶管理員建立容器、調整所有人的權限
帳戶使用者只看得到基本的帳戶資訊
容器讀取看得到代碼、觸發條件和變數,不能修改
容器編輯可以建立工作區、修改設定,不能建版本或發布
容器核准可以建立版本,不能發布
容器發布全部都能做,包含發布

Google 建議至少要有兩個管理員,避免唯一的管理員換了角色,整個團隊被鎖在外面。我的建議是公司自己的帳號至少要有一個管理員,代理商給「編輯」就夠,發布權留在公司手上。

每次發布,GTM 都會留下一個版本,也記得是誰在什麼時候發布的。改壞了,可以直接把舊版本重新發布回去。所以版本名稱要寫成看得懂的話,我們第 3 版叫「Content-to-lead attribution」,半年後打開也知道那次改了什麼。

加第三方像素時,先找「社群範本庫」有沒有對應的範本。範本由第三方開發者提供,加入前要看它要求哪些權限;更新時 GTM 會提醒,由你決定要不要接受。自訂 HTML 代碼幾乎沒有限制,Google 在 web.dev 的建議也提到,它很容易被寫成拖慢網頁的程式,能用範本就用範本。

我們能協助的部分

網站還在規劃或要改版的話,追蹤需求最好在建置時就列進規格,事後補比較費工。例如報名表送出成功時,要同時通知 CRM、推一筆 generate_lead 給 GA4,這兩件事在寫表單程式時一起做最省事。我們做官網與電商開發時,表單、CRM 和行銷工具的串接,是在建置階段一起規劃的。

常見問題

GTM 要付費嗎?

標準版免費,一般公司官網用標準版就夠了。付費的 Tag Manager 360 多了企業用的功能,例如發布前要另一個人核准的流程。

GTM 和 GA4 要先裝哪一個?

先建好 GA4 資源、拿到評估 ID,再到 GTM 新增 Google 代碼把它裝上去。順序反過來也可以,只是 GTM 的 Google 代碼一定要填那個 ID 才能運作。

預覽模式看得到代碼觸發,GA4 即時報表卻沒有資料,可能是什麼原因?

常見有三種:測試用的瀏覽器沒按同意,GA4 代碼被同意設定擋下;評估 ID 填成另一個資源的;或是瀏覽器的擴充功能、隱私設定擋掉了追蹤請求。可以順便打開 GA4 的 DebugView,預覽模式會把你的裝置設成偵錯模式,事件會一筆一筆列出來。

裝了 GTM,網站會變快嗎?

不一定,要看裡面放了什麼。GTM 本身也是一段要載入的程式,代碼越多,越會和網頁搶資源。用不到的代碼要暫停或刪掉,只加例外條件擋住,程式碼還是留在容器裡;不急的代碼可以等「視窗已載入」之後再觸發。

參考來源

以下依 Google 代碼管理工具、Tag Platform、Analytics 與 web.dev 說明整理,介面位置、權限名稱與同意模式的規定以官方頁面當下為準。

從這篇繼續看相關內容

依文章主題整理同站文章、服務/產品與 FAQ 入口,讓下一步有清楚的閱讀方向。

延伸閱讀

下一步

服務入口

了解網站診斷與 GEO 服務

先確認網站能否被搜尋引擎讀取、內容缺哪些頁面,再決定觀測與修改的範圍。

查看相關頁面

常見問題

AI 搜尋一定要求網站有作者頁嗎?

作者、來源與更新資訊各自交代什麼,先看一題直接回答。

查看 FAQ 解答

網站與搜尋

從你的網站,找出下一步該改什麼

提供官網網址,我們會先確認網站能否被搜尋引擎讀取、內容缺哪些頁面,再說明適合的觀測與修改範圍。