為廣告客戶設定 Google 代碼存取介面

本文適用於想部署廣告主專用 Google 代碼閘道的使用者。建議您使用廣告主專用 Google 代碼閘道,取得最持久的代碼設定。

總覽

廣告主專用 Google 代碼閘道可讓您使用自有第一方基礎架構 (託管於網站網域) 部署 Google 代碼。這項基礎架構位於網站和 Google 服務之間。本文的設定說明有助於您更準確地評估網站。您可以使用現有的內容傳遞網路 (CDN)、負載平衡器或網路伺服器進行設定。

在標準 Google 代碼設定中,網頁會向 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
Standalone Tag 2 G-67890 /fjdso/ g-67890.fps.goog
GTM 容器 GTM-ABCDEF /cvfjk/ gtm-abcdef.fps.goog

填入下列資訊,即可在本文中填入範例。

Your domain: example.com
Google tag ID: G-12345
Tag serving path: /metrics

有多組代碼/多個容器時的處理方式:

如果代碼都在同一個 GTM 容器,就不需要重複設定。只要加入單一 Google 代碼管理工具容器,系統就會處理其中的所有代碼。

如果代碼分別位於不同 GTM 容器,或是並未連結 GTM,請務必為各項執行個體分別完成這項設定。這個做法適用於下列情境:

  • 執行多個獨立的 Google 代碼管理工具容器。
  • 不在容器中的個別代碼 (例如 G-XXXXXX)。

進行這項操作時,請務必為各個容器或代碼分別指派不重複的代碼傳送路徑。

2. 轉送流量

本節假設網站已採用可按路徑轉送流量的 CDN 或負載平衡器。

Google Cloud

您需要設定新的後端,查詢網站訪客的大約地理位置,並在現有的外部應用程式負載平衡器中建立路由規則。

建立新的後端

  1. 開啟 GCP 負載平衡器

  2. 在負載平衡器中,開啟「後端設定」部分。 建立新的後端服務。 後端設定設定

  3. 使用地理位置資訊設定新的後端服務:

    • 指定名稱,例如 measurement-be-svc
    • 將「後端類型」設為「網際網路的網路端點群組」
    • 將「Protocol」(通訊協定) 設為「HTTPS」,並將「Timeout」(逾時) 保留為預先填入的值。
    • 在「後端」下方,按一下「網際網路的網路端點群組」下拉式選單,然後建立新的網際網路網路端點群組:
      • 將「網路端點群組類型」設為「網際網路 NEG (全域、區域性)」
      • 將「範圍」設為「全域」
      • 將「Add through」(透過以下方式新增) 設為「Fully qualified domain name and port」(完整網域名稱與通訊埠)
      • 將「完整網域名稱」設為 G-12345.fps.goog
      • 按一下「CREATE」(建立) 建立端點。
      • 關閉「網路端點群組」分頁,返回「新增後端服務」分頁。
    • 搜尋並選取新的網路端點群組名稱。
    • 開啟「進階設定」部分。新增下列自訂要求標頭。
      標頭名稱 標頭值
      Host G-12345.fps.goog
      X-Forwarded-CountryRegion {client_region_subdivision}
      X-Forwarded-Geolocation latlong={client_city_lat_long};city={client_city}
    • 檢查其他設定。這項整合功能不需要 Cloud CDNCloud Armor,因此您可以放心停用這兩項服務。
    • 儲存新的後端服務。

設定轉送規則

  1. 在負載平衡器中,開啟「轉送規則」部分。

  2. 新增下列主機與路徑規則:

    主機 路徑 後端
    * /metrics/* measurement-be-svc

  3. 更新負載平衡器設定。

  4. 在瀏覽器中前往 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
  1. 在「DNS」分頁中,開啟「記錄」部分。
  2. 新增下列設定的記錄:
    • 將「Type」(類型) 設為「CNAME」
    • 將「Name」(名稱) 設定為 fps
    • 將「Target」(目標) 設為 G-12345.fps.goog
  3. 儲存 CNAME 記錄。

建立來源規則

  1. 在「規則」分頁中,開啟「來源規則」並建立規則。
  2. 輸入規則名稱,例如 Route measurement
  3. 根據自訂篩選運算式比對傳入的要求,然後按一下「編輯運算式」
  4. 在建構工具中貼上下列運算式:(http.host eq "example.com" and starts_with(http.request.uri.path, "/metrics"))
  5. 將「Host Header」更新為「Rewrite to...」G-12345.fps.goog
  6. DNS 記錄更新為「覆寫為...」fps.example.com
  7. 儲存來源規則。
  8. 如有其他來源規則,請提高新建立規則的位置,確保系統會在任何其他萬用字元路徑之後執行該規則。
  9. 在瀏覽器中前往 https://example.com/metrics/healthy,確認設定是否正確。頁面應顯示「ok」。

包含地理位置資訊

  1. 在「規則」分頁中開啟「設定」
  2. 啟用「新增訪客位置資訊標題」選項。
  3. 請稍候幾分鐘,讓規則生效。在瀏覽器中,前往 https://example.com/metrics/?validate_geo=healthy,確認設定是否正確。頁面應顯示 ok

Akamai

如要在廣告主專用 Google 代碼閘道中放送代碼,您需要在資源中新增規則,轉送要求並新增地理位置資訊。

建立重新導向規則

  1. 在資源管理工具中建立新的版本 的放送設定
  2. 在「資源設定」部分下方,新增 Rule
    • 輸入名稱,例如 Route measurement
  3. 新增 Match
    • 將比對下拉式選單設為「路徑」和「為下列其中一項」
    • 將比對值設為 /metrics/*
  4. 新增「行為」
    • 選取「Standard Property Behavior」(標準資源行為),然後選擇「Origin Server」(原始伺服器) 行為
    • 將「Origin Server Hostname」(原始伺服器主機名稱) 設為 G-12345.fps.goog
    • 將「Forward Host Header」設為「Origin Hostname」
  5. 儲存新規則並部署變更
    • 請務必先在暫存環境中測試新的重新導向規則,再推出正式版
    • 提示:請確認您沒有任何規則會修改或移除外送回應標頭。如果缺少 Content-Type 回應標頭,Google 指令碼可能會失敗。

包含地理位置資訊

  1. 在「資源設定」下選擇「重新導向規則」 (如上所述)

  2. 新增「行為」

    • 選取「標準資源行為」,然後選擇「內容指定目標 (EdgeScape)」行為
    • 將「啟用」設為 true
  3. 儲存新行為並部署變更。

    • 請務必先在暫存環境中測試新的重新導向規則,再推出正式版
  4. 在瀏覽器中前往 https://example.com/metrics/healthy,確認設定是否正確。頁面應包含「ok」文字。前往 https://example.com/metrics/?validate_geo=healthy,確認是否包含地理資訊。頁面應包含「ok」文字。

Amazon CloudFront

如要透過廣告主專用 Google 代碼閘道放送代碼,您必須設定發布行為,轉送要求並新增地理位置資訊。

新增來源

  1. 前往 Amazon Web Services (AWS) 中的 CloudFront 頁面
  2. 選擇 CloudFront Distribution
  3. 在「來源」分頁中,使用下列設定建立來源:
    • 將「Origin domain」(原始網域) 設為 G-12345.fps.goog
    • 將「Protocol」(通訊協定) 設為「HTTPS Only」(僅限 HTTPS)

建立重新導向行為

  1. 前往 AWS 的 CloudFront 頁面
  2. 選擇 CloudFront Distribution
  3. 在「Behaviors」(行為) 分頁中,建立新的「Behavior」(行為),並套用下列設定:
    • 將「路徑模式」設為 /metrics/*
    • 將「來源和來源群組」設為 G-12345.fps.goog
    • 將「Compress objects automatically」(自動壓縮物件) 設為「No」(否)
    • 將「檢視者通訊協定政策」設為「僅限 HTTPS」
    • 將「允許的 HTTP 方法」設為「GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE」
    • 在「快取鍵和來源要求」下方,選擇「快取政策和來源要求政策」
      • 將「快取政策」設為「CachingDisabled」
      • 將「來源要求政策」設為「AllViewerExceptHostHeader」
  4. 在「行為」清單中,確認新行為的 Precedence 高於所有其他行為
    • 如要變更 Precedence,請選取所需行為,然後選取「向上移動」按鈕,直到該行為高於所有其他行為為止。
  5. 在瀏覽器中前往 https://example.com/metrics/healthy,確認設定是否正確。頁面應顯示「ok」。

包含地理位置資訊

  1. 如要轉送必要的地理位置資訊,請在重新導向行為中將「Headers」設為「AllViewerExceptHostHeader」
    • 如需 CloudFront 檢視器位置標頭的完整清單,請參閱這篇文章
  2. 請稍候幾分鐘,等待發布內容部署完成。在瀏覽器中前往 https://example.com/metrics/?validate_geo=healthy,確認設定是否正確。頁面應顯示 ok

Fastly

如要在廣告主專用 Google 代碼閘道中放送代碼,您需要設定 Fastly CDN 服務,轉送要求並新增地理位置資訊。這個程序需要建立一個「條件」、一個「主機」,以及兩個「VCL 片段」

建立條件和主機

首先,您要設定條件來識別閘道的要求,並設定主機將要求轉送至 Google。

  1. 使用下列設定建立新的條件

    • 「類型」Request
    • 名稱Google Tag Gateway Path (或您偏好的名稱)
    • 適用條件: req.url.path ~ "^/metrics"
  2. 使用下列設定建立新的「主機」

    • 主機名稱/地址fps.goog
  3. 使用下列其他設定配置新主機:

    • 按一下「附加條件」,然後選取您在步驟 1 中建立的條件。
    • 將「Override host」設為 fps.goog
    • 其他設定保留預設值。
    • 按一下「更新」即可儲存主機。

新增 Google 代碼 ID 和地理位置標頭

接著,您會新增 VCL (Varnish 設定語言) 片段,附加 Google 代碼 ID 和用戶端地理位置資料。您必須使用完全相同的程式碼,分別為 vcl_missvcl_pass 建立兩個不同的程式碼片段。

  1. 在服務中前往「VCL Snippets」,然後使用下列欄位建立 Snippet:

    • 名稱Geo_MISS (或您偏好的名稱)
    • 刊登位置Within Subroutine
    • Subroutinevcl_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 = "latlong=" +
          client.geo.latitude + "," + client.geo.longitude + ";city=" +
          client.geo.city;
      }
      
  2. 使用下列欄位建立另一個程式碼片段:

    • 名稱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 = "latlong=" +
          client.geo.latitude + "," + client.geo.longitude + ";city=" +
          client.geo.city;
      }
      

    現在應該會有兩個新的獨立程式碼片段。這樣一來,無論是「快取失敗」(vcl_miss) 或「快取通過」(vcl_pass),系統都會將地理位置標頭新增至需要從主機擷取的任何要求。

啟用及驗證完整設定

建立主機、條件和 VCL 程式碼片段後,您現在可以啟用並測試完整設定。

  1. 按一下「啟用」,即可部署所有新變更。
  2. 在瀏覽器中執行下列兩項測試,驗證設定

    • 測試 1 (代碼和路徑):前往 https://example.com/metrics/healthy
    • 測試 2 (地理位置):前往 https://example.com/metrics/?validate_geo=healthy

    兩頁都應顯示 ok

其他

如要在廣告主專用 Google 代碼閘道中放送代碼,請設定 CDN 或負載平衡器,將要求轉送至廣告主專用 Google 代碼閘道端點。

  1. 加入指向 G-12345.fps.goog 的來源或後端。
  2. 將「主機」標頭覆寫為 G-12345.fps.goog。允許轉送所有 Cookie 和查詢字串。
  3. 如要傳遞訪客的地理位置資訊,請加入下列任一標頭:
    • X-Forwarded-CountryRegion - 使用單一 ISO 3166-2 代碼表示使用者國家/地區 (例如:US-CA)。
    • X-Forwarded-CountryX-Forwarded-Region
      • X-Forwarded-Country - 使用者的國家/地區,採用 ISO 3166-1 alpha-2 代碼 (例如:US)。
      • X-Forwarded-Region - 使用者的區域子行政區代碼 (例如:CA)。
    • 如果同時加入這兩組標頭,系統會使用 X-Forwarded-CountryRegion
  4. 新增路徑規則,將流量導向廣告主專用 Google 代碼閘道。/metrics/*
  5. 設定預留路徑,使該路徑的優先順序高於預設規則。
  6. 在瀏覽器中,前往 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 -->

測試評估設定

如要測試評估設定,請將容器設定為至少有一個會觸發的代碼。

  1. 前往 Tag Assistant 並預覽容器。
  2. 前往網站觸發事件。
  3. 依序點選「摘要」 >「輸出」 >「已傳送的命中」分頁標籤,確認命中資料會轉送至 /metrics

    驗證設定的螢幕截圖