Google Tag Manager

Server-Side GTM 與 GA4 整合設定:2026 年實測步驟與資料流解析

Open Data 4TW 編輯團隊 Open Data 4TW 編輯團隊
· · Server-Side GTM, GA4 事件追蹤, 伺服器端追蹤

為什麼要把 GA4 事件改成走 Server-Side GTM?

把 GA4 事件改走 Server-Side GTM,核心目的是讓追蹤資料的傳送路徑不再完全依賴使用者的瀏覽器環境。近年瀏覽器陸續收緊第三方 Cookie 與跨站追蹤政策,廣告阻擋器也越來越普及,這些因素都會造成 Client 端(Web 端)直接發送給 GA4 的事件遺失或延遲。Server-Side GTM 提供一條額外的中繼管道,讓事件先送到你自訂的伺服器網域,再轉交 GA4,藉此降低瀏覽器政策與擴充套件對資料收集的幹擾。伺服器端追蹤的機制,等同於在你自己的基礎設施上建立了一道可控的閘道,讓資料傳送不再完全受限於使用者端環境的變動。

GA4 本身就允許第一方 Cookie(例如 _ga)寫入,但你仍無法控制使用者端的外掛程式或瀏覽器隱私設定。若你發現 GA4 報表上的工作階段數、頁面瀏覽數與 Search Console 的收錄趨勢明顯對不上,或是廣告阻擋器盛行導致關鍵事件流失,這就是評估是否導入 Server-Side GTM 的時機。透過伺服器端中繼,即便使用者端封鎖了第三方請求,只要第一方網域上的請求不被攔截,事件仍然有機會完整送達 GA4。

需要先釐清的是,這項調整不需要更動 GA4 資源本身。你既有的 GA4 評估 ID、資料流與報表結構都會保留,只是事件傳送路徑從「瀏覽器 → GA4」改為「瀏覽器 → Server 容器 → GA4」。相對地,如果你的流量單純、沒有發生明顯的追蹤中斷,或暫時無法維護伺服器端基礎設施,那麼繼續使用 Client 端 GTM 也仍是可行方案。伺服器端架構雖然能解決部分資料缺失問題,但需要額外維護容器、網域與憑證,人力與成本考量也必須一併評估。

在開始設定前,可以先閱讀Server-Side GTM 是什麼?從資料流看伺服器端追蹤架構,瞭解事件在伺服器容器內的流動順序。這會幫助你後續在操作介面時,更能掌握用戶端與代碼之間的關係。建議你將該篇文章的資料流圖示與本篇文章的步驟對照,先理解事件從 Web 端到 Server 容器再到 GA4 的整體路徑,再進入操作介面會更容易上手。

Step 1:在 Server 容器新增 GA4 用戶端

進入 Server 容器後,點選左側選單的「用戶端」(Clients),按下「新增」並選擇「Google Analytics:GA4」。將這個用戶端命名為容易辨識的名稱(例如「GA4 Client」),儲存後即可。這個動作會建立一個接收器,讓 Web 端轉送過來的事件有明確的進入點。用戶端在伺服器容器中扮演的是「進站口」的角色,後續所有 GA4 相關請求都必須先通過這個進站口,才能被辨識與分派。

用戶端在 Server 容器中扮演「接收器」的角色,它不負責把資料送給 GA4,而是先接收並辨識事件。Web 容器或 gtag.js 產生的 GA4 請求,會先打到 Server 容器網址,接著由 GA4 Client 接手判斷事件類型與參數。之後再由 Server 端的代碼接手傳送。用戶端本身不會產生任何網路請求,它只負責將進來的請求解析成可被後續代碼讀取的資料物件,因此用戶端設定正確與否,會直接影響後續代碼能否拿到正確的事件名稱與參數。

GA4 Client 與 Server 容器「用戶端」的對應關係

在官方文件中,當你新增用戶端時,畫面上會出現 Web 與 App 的選項差異。若你的網站是傳統內容型網站,選擇 Web 即可;若同時有 App 內容,則需依照 GA4 資源內的資料流類型分別建立對應的用戶端。Web 與 App 的事件協定不同,前者使用 Measurement Protocol 的網頁格式,後者則使用 Firebase SDK 的格式,伺服器容器無法用單一用戶端同時解析兩種請求。若你同時經營網站與 App,就必須在 Server 容器中建立兩個用戶端,分別指定對應的 GA4 資源。

GA4 Client 設定完成後,Server 容器就具備了接收 GA4 事件的基本能力。但此時 Web 端還不知道要把事件送到哪裡,因此下一步必須處理 Web 端設定。如果 Web 端仍依照原本路徑直接將事件送往 GA4,Server 容器就形同虛設,因此「用戶端新增」與「Web 端轉送」兩者必須搭配執行,缺一不可。

Step 2:將 Web 端 GA4 事件轉送至 Server 容器

Web 端 GA4 事件要轉送到 Server 容器,關鍵在於設定 server_container_url 參數。這個參數會指定事件傳送的端點網址。當 Web 端的 GA4 基礎代碼執行時,它會將原本要直接送往 GA4 的請求,改送往你設定的 Server 容器網址。這相當於在原本的傳送路徑上插入一個中繼站,讓事件不會直接暴露在瀏覽器環境中。此參數隻影響傳送端點,不會改變事件本身的名稱或參數結構,GA4 收到的資料格式仍然與原本相同。

如果你使用 gtag.js,需要在 GA4 基礎代碼片段中加入 server_container_url,並填上你的 Server 容器網址。如果你使用 Client 端 GTM,作法是在 GA4 代碼設定的「代碼網址」欄位填入 Server 容器網址。兩種方式都有效,選擇哪一種取決於你目前網站採用的部署方式。無論是 gtag.js 或 GTM,填入的都是同一個 Server 容器網址,且此網址必須與 Server 容器建立時取得的網址完全一致,包含通訊協定與路徑。

Web 端轉送方式的兩種選擇(gtag.js 與 GTM)

gtag.js 適合直接寫在頁面原始碼中的站點,設定方式是在代碼中加入以下參數:

gtag('config', 'G-XXXXXXXXXX', {
  server_container_url: 'https://your-server-url.com'
});

若你已經使用 Client 端 GTM,則在 GA4 代碼的「代碼網址」欄位中直接填入相同的 Server 容器網址即可。兩種方式的效果相同,事件都會改由 Server 容器接收後再轉交 GA4。在串接過程中,你只需要選定其中一種方式,不必同時使用兩種,否則可能造成重複送件的風險。

此步驟最常見的錯誤有兩個:一是網址打錯或漏掉 https;二是設定完成後沒有重新發布 Web 容器。網址錯誤時,事件會直接掉在瀏覽器端;未發布則會讓舊版代碼繼續運作。設定完成後務必檢查 Web 端容器或 gtag.js 的版本狀態。若 Web 端代碼仍以舊版本執行,即使 Server 容器已設定完成,事件仍會依照原本路徑送往 GA4,導致串接失敗但不報錯,這種情況在實務上最容易被忽略。

GA4 評估 ID 與 Server 容器網址的判斷方式

值得留意的是,這個環節最容易混淆的是「GA4 評估 ID」與「Server 容器網址」兩者的用途。評估 ID 決定事件最終歸屬於哪個 GA4 資源,Server 容器網址決定事件先送到哪裡暫存與處理。兩者在傳送路徑上各自扮演不同角色,不能互相取代。判斷方式很簡單:評估 ID 的格式為 G-XXXXXXXXXX,一定是 G 開頭後接十個字元;Server 容器網址則是一組完整的 URL,通常會以 https:// 開頭,並帶有固定的伺服器主機名稱。若你在設定時看到兩個欄位,一個需要填 G 開頭的字串,另一個需要填 URL,那就是這兩者。

如果將評估 ID 誤填入 Server 容器網址欄位,事件會被送往錯誤的位址;若將 Server 容器網址誤填入評估 ID 欄位,GA4 就無法辨識這組代碼屬於哪個資源。兩者的用途完全不同,但在設定介面上位置接近,容易在快速操作時填錯。建議在填入後,複製到記事本上比對一次,確認格式無誤再儲存發布。

Step 3:在 Server 容器新增 GA4 代碼

Server 容器收到事件後,需要一組代碼負責將格式化後的資料送往 GA4。前往「代碼」(Tags)頁面,新增「Google Analytics:GA4」代碼,並填入 GA4 評估 ID(Measurement ID)。這個 ID 必須與 Web 端 GA4 資料流的評估 ID 完全一致,否則事件會被 GA4 丟棄。評估 ID 是辨識資源的唯一憑證,Server 代碼透過這組 ID 才知道要將事件送往哪一個 GA4 資源,網站內若有測試與正式多個資源,各自承接不同流量,就必須分別建立對應的 Server 代碼。

代碼設定完成後,還需要指定觸發條件。觸發條件決定這組代碼在什麼情況下執行。最保險的作法是在測試階段先選擇「All Pages」,也就是所有進到 Server 容器的事件都觸發傳送,確認整體流程無誤後,再依事件名稱收斂觸發範圍。伺服器容器中的觸發條件與 Web 容器類似,可以依事件名稱、參數值或來源路徑設定規則,但執行環境是在伺服器上,因此不依賴瀏覽器 DOM 或變數。

代碼觸發條件的設定策略(先全部再收斂)

「先全部再收斂」是 Server 端代碼設定的常見策略。第一次串接時,你可能不確定 Server 容器收到的事件名稱與參數格式是否符合預期,此時先讓 GA4 代碼對所有事件觸發,再搭配 Debug 模式觀察實際收到的資料,這樣會比一開始就設定嚴格的觸發條件更容易除錯。觸發條件設得過嚴,可能導致事件被伺服器攔截但沒有轉送出去,而這種狀況在報表上不會出現任何錯誤提示。

當你確認某幾類事件的參數完整且名稱正確後,就可以將觸發條件修改為「事件名稱符合」,只讓這幾類事件觸發 GA4 代碼。這樣做的好處是能減少 Server 資源消耗,也避免不必要的事件幹擾 GA4 報表。收斂觸發範圍的判斷依據,來自 Debug 模式中觀察到的事件清單與參數完整性,而不是憑空想像。只有實際進到 Server 容器的事件,纔有資格列入觸發條件。

如果你同時管理多個 GA4 資源,例如測試資源與正式資源並行,建議在代碼名稱中加入資源名稱(例如「GA4 Main-正式資源」),以免日後在 Server 容器介面中無法分辨哪組代碼對應哪個資源。代碼名稱只是辨識用途,不會影響傳送行為,但若能一眼看出對應的資源,在後續維護或調整觸發條件時會節省不少時間。

Step 4:發布容器並驗證事件是否正確送達 GA4

完成前三步驟後,接著要驗證整個流程真的能運作。先在 Server 容器按下「Preview」進入 Debug 模式,接著在 Web 端載入你的網站。操作一下頁面與事件(例如滾動頁面、點擊按鈕、送出表單),回到 Server 容器的 Preview 畫面時,應該能看到這些事件陸續出現在左側事件清單中。Preview 模式與正式發布的差別在於,Preview 只對目前開啟的瀏覽器工作階段生效,不會影響其他使用者,因此適合用於初步驗證。

確認 Server 容器有收到事件,並已觸發 GA4 代碼後,再回到 GA4 後臺,開啟 DebugView 與即時(Realtime)報表交叉比對。DebugView 會顯示透過 Debug 模式傳入的事件,即時報表則顯示真實使用者觸發的活動。兩者都出現你剛才操作的事件,才代表流程完整串接。若只有 Server 容器出現事件而 GA4 後臺沒有,表示代碼階段可能設定錯誤;若 GA4 有出現但 DebugView 沒有,表示事件可能透過舊路徑送達。

用 GA4 DebugView 與 Realtime 雙重驗證事件

DebugView 與 Realtime 兩個工具各有用途。DebugView 適合檢查事件名稱與參數是否正確,它會顯示每個事件帶有的參數(例如 page_location、page_title、engagement_time_msec)。Realtime 報表則適合確認整體流量是否開始透過 Server 容器進入 GA4,因為它會列出過去 30 分鐘內的使用者活動。可將這兩個工具視為不同層級的驗證:DebugView 偏向細節檢查,Realtime 偏向整體流向確認。

驗證工具 主要用途 適合檢查的項目 資料範圍
Server 容器 Preview 確認 Server 端有收到事件並觸發代碼 事件名稱、觸發狀態 目前 Debug 工作階段
GA4 DebugView 檢查事件參數是否完整 page_location、page_title、engagement_time_msec Debug 模式下的使用者
GA4 Realtime 確認整體流量是否進入 GA4 使用者的裝置類別、事件計數 過去 30 分鐘內所有使用者

驗證時建議依照以下清單逐項檢查:

  • Server 容器 Preview 畫面是否出現事件記錄。
  • 該事件是否觸發了 GA4 代碼。
  • GA4 DebugView 是否顯示相同的事件名稱。
  • GA4 Realtime 報表是否出現使用者與事件計數。
  • 評估 ID 是否與 Web 資料流一致。

如果事件有進到 Server 容器但 GA4 沒有收到,優先檢查 GA4 代碼的評估 ID 是否正確;如果 Server 容器根本沒收到事件,問題出在 Web 端的 server_container_url 設定或發布狀態。照著順序排查,通常很快能找到問題點。你也可以使用瀏覽器開發者工具中的網路請求頁籤,觀察請求是否送到 Server 容器網域;若請求仍送往 google-analytics.com,代表 Web 端設定尚未生效。

Step 5:確認 GA4 資源端設定與資料流對應

Server 容器設定完成並發布後,最後一步是回到 GA4 資源確認能否正確接收事件。你要檢查的是「管理」→「資料流」中的 Web 資料流是否存在,以及該資料流顯示的評估 ID 是否與 Server 容器 GA4 代碼填入的 ID 相同。這一步不需要更動任何設定,只是確認兩邊的對應關係是否一致,避免因資源調整而影響事件收錄。

若 GA4 資源中同時存在 Web 與 App 資料流,請確認 Server 容器的 GA4 Client 也選擇了正確的用戶端類型。Web 和 App 的追蹤協定不同,Server 容器無法用同一組用戶端同時處理兩種類型的資料。若你同時需要處理 Web 與 App 事件,就必須在 Server 容器中分別建立兩個用戶端,並各別指定對應的資料流類型,纔不會造成事件被丟棄或在錯誤的資源中顯示。

GA4 資料流(Data Stream)評估 ID 的對應檢查

資料流代表事件的接收端點,評估 ID 則是用來辨識這個端點的字串(格式為 G-XXXXXXXXXX)。Server 容器中的 GA4 代碼填入了哪一組評估 ID,事件就會歸屬到該 ID 對應的 GA4 資源。因此確認這組 ID 在 Web 端與 Server 端一致,是整個設定的最後一道防線。若有任何一端填入了不同的 ID,事件仍會被 GA4 接收,但會歸屬到錯誤的資源,而這種錯誤在 Debug 模式中不一定會顯示,因為 GA4 不會回傳錯誤訊息。

請注意,不建議在串接完成後任意刪除或改動 GA4 資料流。因為 Server 容器的代碼是直接綁定評估 ID,若資料流被刪除或變更,後續事件會因為找不到對應資源而被丟棄。若你有測試與正式環境分離的需求,請在初始規劃時就建立兩個獨立的 GA4 資源,並在 Server 容器中分別建立對應的代碼。這樣一來,測試與正式流量各自進入指定的資源,不會互相干擾。

常見問題與排錯(FAQ 前置)

即使完成上述步驟,實際運作時仍可能出現一些高頻問題。以下是幾個最常見的情境與判斷方法,能幫助你快速縮小排查範圍。這些問題大多來自於設定過程中的細節遺漏,因此逐步比對設定值會比隨機嘗試更有效率。

事件重複送件的判斷方法

事件重複計算通常發生在兩種情況:一是 Web 端原本的 GA4 代碼並未停用,同時 Server 端的 GA4 代碼也已啟用,同一個事件被送達 GA4 兩次;二是 Web 端設定了 server_container_url,但事件同時也以舊路徑送到 GA4。要判斷是否有重複,可以在 GA4 Realtime 報表中觀察同一個使用者、短時間內是否出現相同的 event_name 多次。如果你在 Server 容器上線後仍保留 Web 端 GA4 代碼且觸發條件無任何排除,重複送件的風險很高。建議先保留 Web 端代碼進行比對,確認 Server 端穩定後再調整。調整方式包含停用 Web 端的 GA4 代碼,或在 Web 端 GA4 代碼中改用伺服器容器作為唯一的傳送端點,讓請求不再直接通往 GA4。

為什麼要把 GA4 事件改成透過 Server-Side GTM 傳送?

為了降低瀏覽器追蹤限製造成的資料缺失,並可自訂網域延長 Cookie 壽命,讓 GA4 事件傳送更穩定。

如果 GA4 已經在用 Client 端 GTM,還有必要改嗎?

若你發現數據因廣告阻擋器或瀏覽器政策明顯流失,值得改;若流量單純且無追蹤中斷問題,可暫緩。

Server-Side GTM 與 GA4 整合需要先準備什麼?

需要一組已建立的 Server 容器、一個 GA4 資源與 Web 資料流、以及 Server 容器網址。

server_container_url 是做什麼的?

它是 Web 端的 GA4 代碼中用來指定事件轉送端點(Server 容器網址)的參數,沒有它事件不會進到 sGTM。

如何確認 GA4 事件真的透過 Server 容器送出?

在 Server 容器開啟 Preview(Debug)模式,確認有事件進來;再到 GA4 DebugView 與即時報表比對。

GA4 的評估 ID(Measurement ID)在 Web 端與 Server 端要填一樣嗎?

要,Server 容器內的 GA4 代碼需填入同一組 Measurement ID,才能對應到同一個 GA4 資源。

改完 Server-Side GTM 後,Web 端原本的 GA4 代碼可以刪掉嗎?

建議先保留,確認 Server 端事件穩定且無重複後再評估;否則可能造成事件重複計算或漏資料。

Server-Side GTM 會影響 GA4 既有的使用者識別嗎?

不會變更 GA4 的使用者識別機制,但事件傳送路徑會改變,需確認 _ga Cookie 與 user_pseudo_id 仍正常寫入。

關於 Server 容器本身的建置,可以參考GTM Server-Side 設定教學:從建立容器到自訂網域部署。若你還在評估是否值得導入,GTM Server-Side 與 Client-Side 架構差異:2026 年 SEO 如何選擇最佳標記管理方案可以幫助你分析兩種架構的適用情境。這篇文章整理了伺服器端與用戶端標記管理在資料流、Cookie 管理與追蹤穩定度上的差異,可作為決策參考。

最終,GA4 事件走 Server-Side GTM 的設定重點,就是讓事件傳送路徑多一層掌控。依照本篇文章的五個步驟逐步操作,並透過 Debug 模式與 GA4 後臺雙重驗證,即可確認事件有確實送達。導入伺服器端追蹤不是一次性的工作,而是一個持續調整的過程;日後若網站或 App 新增事件,也需要回到 Server 容器確認對應的觸發條件與代碼設定是否仍然適用。

標籤
Server-Side GTMGA4 事件追蹤伺服器端追蹤GTM 設定資料品質優化
Eric Chang
Eric Chang
SEO 數據分析與網站量測研究者

以官方文件、實際設定與量測結果整理 SEO 數據、網站追蹤與分析方法,並標示資料來源與判讀限制。