本文適用於想部署廣告主專用 Google 代碼閘道的使用者。建議您使用廣告主專用 Google 代碼閘道,取得最穩定的代碼設定。
總覽
透過廣告主專用 Google 代碼閘道,您可使用網站網域上託管的第一方基礎架構部署 Google 代碼。這項基礎架構位於您的網站和 Google 服務之間。這份文件中的設定有助於您更準確地評估網站。你可以使用現有的內容傳遞網路 (CDN)、負載平衡器或網頁伺服器進行設定。
在標準 Google 代碼設定中,網頁會向 Google 網域要求 Google 代碼。代碼觸發時,會直接將評估要求傳送至 Google 產品。使用廣告主專用 Google 代碼閘道時,網站會從第一方網域載入 Google 代碼。代碼觸發時,系統會使用您的第一方網域,將部分評估要求傳送至 Google。
這張圖表說明廣告主專用 Google 代碼閘道的資訊流:
事前準備
本指南假設您的網站已設定下列項目:
如要開始使用,請選擇設定類型。
1. 選擇評估路徑
您必須在網站網域上保留不重複的評估路徑,才能放送每個代碼或 Google 代碼管理工具容器。
評估路徑規定:
- 路徑不得已在網域中使用。
- 每個路徑都不得為根路徑「/」。
- 每個路徑不得超過 100 個半形字元。
Google 代碼管理工具:
如果您使用 Google 代碼管理工具,只需提供容器 ID (例如 GTM-XXXXXX)。只要設定一次,即可為已加入該容器的所有代碼 (例如 Google Analytics、Google Ads 等) 啟用這項功能。
每個不重複的容器或獨立代碼都需要專屬放送路徑和對應的 ID。
如要設定廣告主專用 Google 代碼閘道,請選擇網站未使用的路徑。為避免與網站上已有的路徑衝突,您可以選擇任何字母和數字組合,也可以選擇使用 /gtm、/metrics、/analytics 或任何其他字詞,讓路徑更容易辨識。
例如:
| 用途 | ID | 代碼提供路徑 | 原始端點 |
|---|---|---|---|
| 獨立代碼 1 | G-12345 |
/abjfo/ |
g-12345.fps.goog/abjfo/ |
| 獨立式代碼 2 | G-67890 |
/fjdso/ |
g-67890.fps.goog/fjdso/ |
| GTM 容器 | GTM-ABCDEF |
/cvfjk/ |
gtm-abcdef.fps.goog/cvfjk/ |
填寫下列內容,即可在本文中填入範例。
Your domain: example.com
Google tag ID: G-12345
Tag serving path: /metrics
如何處理多個代碼或容器:
如果代碼位於同一個 GTM 容器中,就不需要重複設定。只要新增單一 Google 代碼管理工具容器,系統就會處理其中的所有代碼。
如果代碼位於不同的 GTM 容器中,或是未連結... 您必須為每個執行個體重複執行這項設定。如果您執行下列項目,就適用這項規定:
- 多個獨立的 Google 代碼管理工具容器。
- 個別代碼 (例如 G-XXXXXX),且不在容器內。
執行這項操作時,請務必為每個容器或代碼指派專屬的代碼放送路徑。
2. 轉送流量
本節假設網站已使用支援按路徑轉送流量的 CDN 或負載平衡器。
Google Cloud
您需要設定新的後端,查詢網站訪客的大約地理位置,並在現有的外部應用程式負載平衡器中建立轉送規則。
建立新的後端
在負載平衡器中,開啟「後端設定」部分。 建立新的後端服務。

使用地理位置資訊設定新的後端服務:
- 指定名稱,例如
measurement-be-svc。 - 將「後端類型」設為「網際網路的網路端點群組」。
- 將「Protocol」(通訊協定) 設為「HTTPS」,並將「Timeout」(逾時) 保留為預先填入的值。
- 在「後端」下方,按一下「網際網路的網路端點群組」下拉式選單,然後建立新的網際網路網路端點群組:
- 將「網路端點群組類型」設為「網際網路 NEG (全域、區域性)」。
- 將「範圍」設為「全域」。
- 將「Add through」(透過以下方式新增) 設為「Fully qualified domain name and port」(完整網域名稱與通訊埠)。
- 將「完整網域名稱」設為
G-12345.fps.goog。 - 按一下「CREATE」(建立) 建立端點。
- 關閉「網路端點群組」分頁,返回「新增後端服務」分頁。
- 搜尋並選取新的網路端點群組名稱。
- 開啟「進階設定」部分。新增下列自訂要求標頭。
標頭名稱 標頭值 HostG-12345.fps.googX-Forwarded-Country{client_region}X-Forwarded-Region{client_region_subdivision} - 檢查其他設定。這項整合功能不需要 Cloud CDN 或 Cloud Armor,因此您可以放心停用這兩項服務。
- 儲存新的後端服務。
- 指定名稱,例如
設定轉送規則
在負載平衡器中,開啟「轉送規則」部分。
新增下列主機與路徑規則:
主機 路徑 後端 */metrics/*measurement-be-svc更新負載平衡器設定。
在瀏覽器中前往
https://example.com/metrics/healthy,確認設定是否正確。頁面應包含「ok」文字。前往https://example.com/metrics/?validate_geo=healthy,確認是否包含地理區域資訊。頁面應包含ok文字。
Cloudflare
如要在 Google 代碼閘道中放送廣告主的代碼,請為新子網域建立 CNAME 項目,建立原始規則轉送要求,並建立轉換規則納入地理位置資訊。如要完成這項設定,您必須擁有 Cloudflare Enterprise 方案。如果沒有 Enterprise 方案,請考慮改用 Cloudflare 自動設定。
建立 CNAME 記錄
選擇要保留給 CNAME 項目使用的子網域。填寫下列資訊,即可在本文中填入範例。這個 CNAME 絕不會在 Cloudflare 設定以外的地方公開,因此名稱是任意的。
CNAME subdomain: fps
- 在「DNS」分頁中,開啟「記錄」部分。
- 新增下列設定的記錄:
- 將「Type」(類型) 設為「CNAME」。
- 將「Name」(名稱) 設定為
fps。 - 將「Target」(目標) 設為
G-12345.fps.goog。
- 儲存 CNAME 記錄。
建立來源規則
- 在「規則」分頁中,開啟「來源規則」並建立規則。
- 輸入規則名稱,例如
Route measurement。 - 根據自訂篩選運算式比對傳入的要求,然後按一下「編輯運算式」。
- 在建立工具中貼上下列運算式:
(http.host eq "example.com" and starts_with(http.request.uri.path, "/metrics")) - 將「Host Header」更新為「Rewrite to...」
G-12345.fps.goog。 - 將 DNS 記錄更新為「覆寫為...」
fps.example.com。 - 儲存原始規則。
- 如有其他來源規則,請提高新建立規則的位置,確保系統會在任何其他萬用字元路徑之後執行該規則。
- 在瀏覽器中前往
https://example.com/metrics/healthy,確認設定是否正確。頁面應顯示「ok」。
包含地理位置資訊
- 在「規則」分頁中開啟「設定」
- 啟用「新增訪客位置資訊標頭」選項。
- 請稍候幾分鐘,讓規則生效。在瀏覽器中,前往
https://example.com/metrics/?validate_geo=healthy,確認設定是否正確。頁面應顯示「ok」。
Akamai
如要在廣告主專用 Google 代碼閘道中放送代碼,您需要在資源中新增規則,轉送要求並新增地理位置資訊。
建立重新導向規則
- 在資源管理工具中建立新的版本 的傳送設定
- 在「資源設定」部分下方,新增
Rule- 輸入名稱,例如
Route measurement
- 輸入名稱,例如
- 新增 Match
- 將比對下拉式選單設為「路徑」和「為下列其中一項」
- 將比對值設為
/metrics/*
- 新增「行為」
- 選取「Standard Property Behavior」(標準資源行為),然後選擇「Origin Server」(原始伺服器) 行為
- 將「Origin Server Hostname」(原始伺服器主機名稱) 設為
G-12345.fps.goog。 - 將「Forward Host Header」設為「Origin Hostname」
- 儲存新規則並部署變更
- 請務必先在測試環境中測試新的重新導向規則,再推出正式版
- 提示:請確認您沒有任何規則會修改或移除外送回應標頭。如果缺少
Content-Type回應標頭,Google 指令碼可能會失敗。
包含地理位置資訊
在「資源設定」下方選擇「重新導向規則」 (如上所述建立)
新增「行為」
- 選取「標準資源行為」,然後選擇「內容指定目標 (EdgeScape)」行為
- 將「啟用」設為
true
儲存新行為並部署變更。
- 請務必先在測試環境中測試新的重新導向規則,再推出正式版
在瀏覽器中前往
https://example.com/metrics/healthy,確認設定是否正確。頁面應包含「ok」文字。前往https://example.com/metrics/?validate_geo=healthy,確認是否包含地理區域資訊。頁面應包含ok文字。
Amazon CloudFront
如要透過廣告主專用 Google 代碼閘道放送代碼,您必須設定發布行為,轉送要求並新增地理位置資訊。
新增來源
- 前往 Amazon Web Services (AWS) 中的 CloudFront 頁面
- 選擇 CloudFront 發布項目
- 在「來源」分頁中,使用下列設定建立來源:
- 將「Origin domain」(原始網域) 設為
G-12345.fps.goog - 將「Protocol」(通訊協定) 設為「HTTPS Only」(僅限 HTTPS)
- 將「Origin domain」(原始網域) 設為
建立重新導向行為
- 前往 AWS 的 CloudFront 頁面
- 選擇 CloudFront 發布項目
- 在「Behaviors」(行為) 分頁中,建立新的「Behavior」(行為),並套用下列設定:
- 將「路徑模式」設為
/metrics/* - 將「來源和來源群組」設為
G-12345.fps.goog - 將「Compress objects automatically」(自動壓縮物件) 設為「No」(否)
- 將「Viewer protocol policy」(檢視器通訊協定政策) 設為「HTTPS only」(僅限 HTTPS)
- 將「Allowed HTTP Methods」(允許的 HTTP 方法) 設為「GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE」
- 在「快取金鑰和來源要求」下方,選擇「快取政策和來源要求政策」
- 將「快取政策」設為「CachingDisabled」
- 將「來源要求政策」設為「AllViewerExceptHostHeader」
- 將「路徑模式」設為
- 在「行為」清單中,確認新行為的
Precedence高於所有其他行為- 如要變更
Precedence,請選取所需行為,然後選取「向上移動」按鈕,直到該行為高於所有其他行為為止。
- 如要變更
- 在瀏覽器中前往
https://example.com/metrics/healthy,確認設定是否正確。頁面應顯示「ok」。
包含地理位置資訊
- 如要轉送必要的地理位置資訊,請在重新導向行為中將「Headers」設為「AllViewerExceptHostHeader」。
- 如需 CloudFront 檢視器位置標頭的完整清單,請參閱這篇文章
- 請稍候幾分鐘,等待發布作業完成。在瀏覽器中,前往
https://example.com/metrics/?validate_geo=healthy驗證設定。頁面應顯示「ok」。
Fastly
如要在廣告主專用 Google 代碼閘道中放送代碼,您必須設定 Fastly CDN 服務,轉送要求並新增地理位置資訊。這個程序需要建立一個 Condition、一個 Host 和兩個 VCL 片段。
建立條件和主機
首先,您要設定條件,找出閘道的要求和主機,然後將這些要求和主機轉送至 Google。
使用下列設定建立新的「條件」:
- 類型:
Request - 名稱:
Google Tag Gateway Path(或您偏好的名稱) - 適用條件:
req.url.path ~ "^/metrics"
- 類型:
使用下列設定建立新的「主機」:
- 主機名稱/地址:
fps.goog
- 主機名稱/地址:
使用下列其他設定來設定新主機:
- 按一下「附加條件」,然後選取您在步驟 1 中建立的條件。
- 將「Override host」設為
fps.goog。 - 其他設定保留預設值。
- 按一下「更新」即可儲存主機。
新增 Google 代碼 ID 和地理位置標頭
接著,您會新增 VCL (Varnish 設定語言) 片段,附加 Google 代碼 ID 和用戶端地理位置資料。您必須使用完全相同的程式碼,分別為 vcl_miss 和 vcl_pass 建立兩個不同的程式碼片段。
在服務中前往「VCL Snippets」,然後使用下列欄位建立 Snippet:
- 名稱:
Geo_MISS(或您偏好的名稱) - 刊登位置:
Within Subroutine - Subroutine (子常式):
vcl_miss VCL:
if (req.url.path ~ "^/metrics") { set bereq.http.X-Gtg-Tag-Id = "G-12345"; set bereq.http.X-Forwarded-Country = client.geo.country_code; set bereq.http.X-Forwarded-Region = client.geo.region; set bereq.http.X-Forwarded-Geolocation = "latlog=" + client.geo.latitude + "," + client.geo.longitude + ";city=" + client.geo.city; }
- 名稱:
使用下列欄位建立另一個程式碼片段:
- 名稱:
Geo_PASS(或您偏好的名稱) - 類型:
vcl_pass VCL:
if (req.url.path ~ "^/metrics") { set bereq.http.X-Gtg-Tag-Id = "G-12345"; set bereq.http.X-Forwarded-Country = client.geo.country_code; set bereq.http.X-Forwarded-Region = client.geo.region; set bereq.http.X-Forwarded-Geolocation = "latlog=" + client.geo.latitude + "," + client.geo.longitude + ";city=" + client.geo.city; }
現在您應該會有兩個新的獨立程式碼片段。這樣一來,無論是「快取未命中」(
vcl_miss) 或「快取通過」(vcl_pass),只要需要從主機擷取要求,系統都會加入地理位置標頭。- 名稱:
啟用及驗證完整設定
建立主機、條件和 VCL 片段後,您現在可以啟用並測試完整設定。
- 按一下「啟用」,即可部署所有新變更。
在瀏覽器中執行兩項測試,驗證設定:
- 測試 1 (代碼和路徑):前往
https://example.com/metrics/healthy - 測試 2 (地理位置):前往
https://example.com/metrics/?validate_geo=healthy
兩頁都應顯示
ok- 測試 1 (代碼和路徑):前往
其他
如要在廣告主專用 Google 代碼閘道中放送代碼,請設定 CDN 或負載平衡器,將要求傳送至廣告主專用 Google 代碼閘道端點。
- 加入指向
G-12345.fps.goog的來源或後端。 - 將「主機」標頭覆寫為
G-12345.fps.goog。允許轉送所有 Cookie 和查詢字串。 - 如要傳遞訪客的地理位置資訊,請加入下列任一標頭:
X-Forwarded-CountryRegion- 使用者的國家/地區,以單一 ISO 3166-2 代碼表示 (例如:US-CA)。X-Forwarded-Country和X-Forwarded-Region:X-Forwarded-Country- 使用者的國家/地區,採用 ISO 3166-1 alpha-2 代碼 (例如:US)。- (選用)
X-Forwarded-Region- 使用者的區域細分代碼 (例如:CA)。
- 如果同時加入這兩組標頭,系統會使用
X-Forwarded-CountryRegion。
- 新增路徑規則,將流量轉送至廣告主專用 Google 代碼閘道。
/metrics/* - 設定預留路徑,使該路徑的優先順序高於預設規則。
- 在瀏覽器中前往
https://example.com/metrics/healthy,確認設定是否正確。頁面應顯示「ok」。 前往https://example.com/metrics/?validate_geo=healthy,確認是否包含地理資訊。頁面應顯示「ok」。
步驟 3:更新網站上的指令碼,使用評估路徑
將網站各網頁上的指令碼替換為下列其中一個:
gtag.js
在 <head> 區段頂端,找出包含 Google 代碼 ID 的兩行指令碼:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-12345"></script>
並改用評估路徑:
<!-- Google tag (gtag.js) -->
<script async src="/metrics/"></script>
gtm.js
在 <head> 區段頂端,將代碼管理工具程式碼片段替換為下列內容:
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'/metrics/?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','');</script>
<!-- End Google Tag Manager -->
測試評估設定
如要測試評估設定,請將容器設定為至少有一個會觸發的代碼。
- 前往 Tag Assistant 並預覽容器。
- 前往網站觸發事件。
依序點選「摘要」 >「輸出」 >「已傳送的命中」分頁,確認命中是否已轉接至
/metrics。