為標記啟用區域專屬行為

本文適用對象為透過自家伺服器提供 Google 指令碼的開發人員。建議您為代碼啟用區域專屬行為,藉此解鎖進階同意聲明模式等功能,並根據使用者的所在位置控管代碼行為。

事前準備

請務必先完成下列事項,再按照本指南的說明操作:

步驟 1:設定要求標頭

您必須傳送包含使用者區域資訊的特定要求標頭,如下節所述。

如果符合下列條件,可以直接從步驟 2 開始進行:

  • 使用 App Engine。App Engine 會自動傳送地理標頭。
  • 您使用的基礎架構供應商與下列供應商不同。您需要設定自訂標頭

將 Cloud Run 與 GCP 負載平衡器搭配使用

您可以透過「所有」HTTP 要求標頭,或針對特定要求傳送地理位置資訊。新增自訂要求標頭後,每 100 萬個要求就會產生費用,因此建議您只納入地理位置資訊,要求提供 Google 指令碼服務。這個做法最初需要較多設定,但可以協助你以最經濟實惠的方式執行基礎架構。

指令碼要求

如果只要為指令碼要求加入地理標頭,您必須設定新的後端並建立轉送規則。

如要建立新的後端,請按照下列指示操作:

  1. 開啟 GCP 負載平衡器
  2. 在負載平衡器中開啟「Backend configuration」(後端設定) 部分。建立新的後端服務。
    後端配置設定的螢幕截圖
  3. 設定新的後端服務:
    • 後端類型:選擇應用程式使用的網路端點群組類型。如果您使用 Cloud Run,請選擇「Serverless network Endpoints group」(無伺服器網路端點群組)
    • 在「新增後端」中,選擇伺服器端代碼管理工具部署的網路端點群組。
      新後端服務的螢幕截圖
  4. 開啟「進階設定」部分。新增自訂要求標頭。
    標頭名稱 標頭值
    X-Gclb-Country {client_region}
    X-Gclb-Region {client_region_subdivision}
  5. 儲存新的後端服務。

如何設定轉送規則:

  1. 在負載平衡器中開啟「轉送規則」專區。選擇「進階主機路徑和規則」 模式。
  2. 更新 pathRules 參數,將 gtm.js/gtag/js/gtag/destination 對應至新的後端服務。
    pathRules:
    - paths:
      - /gtm.js
      - /gtag*
      service: projects/project_id/global/backendServices/new backend service
    - paths:
      - /*
      service: projects/project_id/global/backendServices/original backend service
    
  3. 儲存變更。

所有要求

如要將地理位置資訊與所有 HTTP 要求一併傳送,您必須將自訂要求標頭新增至現有的後端服務,請參閱 Google Cloud 說明文件。為下列每個標頭建立一個新的自訂要求標頭

標頭名稱 標頭值
X-Gclb-Country {client_region}
X-Gclb-Country {client_region_subdivision}

GCP 負載平衡器

您可以透過「所有」HTTP 要求標頭,或針對特定要求傳送地理位置資訊。新增自訂要求標頭後,每 100 萬個要求就會產生費用,因此建議您只納入地理位置資訊,要求提供 Google 指令碼服務。這個做法最初需要較多設定,但可以協助你以最經濟實惠的方式執行基礎架構。

指令碼要求

如果只要為指令碼要求加入地理標頭,您必須設定新的後端並建立轉送規則。

如要建立新的後端,請按照下列指示操作:

  1. 開啟 GCP 負載平衡器
  2. 在負載平衡器中開啟「Backend configuration」(後端設定) 部分。建立新的後端服務。
    後端配置設定的螢幕截圖
  3. 設定新的後端服務:
    • 後端類型:選擇應用程式使用的網路端點群組類型。如果您使用 Cloud Run,請選擇「Serverless network Endpoints group」(無伺服器網路端點群組)
    • 在「新增後端」中,選擇伺服器端代碼管理工具部署的網路端點群組。
      新後端服務的螢幕截圖
  4. 開啟「進階設定」部分。新增自訂要求標頭。
    標頭名稱 標頭值
    X-Gclb-Country {client_region}
    X-Gclb-Region {client_region_subdivision}
  5. 儲存新的後端服務。

如何設定轉送規則:

  1. 在負載平衡器中開啟「轉送規則」專區。選擇「進階主機路徑和規則」 模式。
  2. 更新 pathRules 參數,將 gtm.js/gtag/js/gtag/destination 對應至新的後端服務。
    pathRules:
    - paths:
      - /gtm.js
      - /gtag*
      service: projects/project_id/global/backendServices/new backend service
    - paths:
      - /*
      service: projects/project_id/global/backendServices/original backend service
    
  3. 儲存變更。

所有要求

如要將地理位置資訊與所有 HTTP 要求一併傳送,您必須將自訂要求標頭新增至現有的後端服務,請參閱 Google Cloud 說明文件。為下列每個標頭建立一個新的自訂要求標頭

標頭名稱 標頭值
X-Gclb-Country {client_region}
X-Gclb-Country {client_region_subdivision}

Amazon Web Services (AWS) CloudFront

建立來源要求政策,在要求中加入 CloudFront-Viewer-CountryCloudFront-Viewer-Country-Region 標頭。

系統會自動新增下列標頭及其值:

標頭名稱 標頭值
CloudFront-Viewer (國家/地區) 使用者所在的國家/地區
CloudFront-Viewer-Country-Region 使用者的子產品群組
AWS CloudFront 的標頭設定

Azure 前門

使用規則引擎建立具有下列對應項目的規則集:修改要求標頭

標頭名稱 標頭值
X-Azure 國家/地區 {geo_country}
Azure Front Door 設定的螢幕截圖

Cloudflare

「代管轉換」部分中啟用「Add 訪客位置標頭」:

系統會自動加入以下標頭及其值:

標頭名稱 標頭值
CF-IP 國家/地區 使用者所在的國家/地區
cloudflare 設定的螢幕截圖

步驟 2:設定訪客區域變數

如果您在上述設定中設定了地理區域標頭,代碼管理工具會讀取 HTTP 要求標頭,來自動偵測區域或國家/地區。 或者,您也可以設定自訂標頭。

自動偵測

  1. 開啟 Google 代碼管理工具
  2. 開啟伺服器容器。
  3. 在「變數」選單中,「設定」內建變數清單。
  4. 選取「訪客地區」

現在可以在「訪客區域」變數中使用地理區域標題。

自訂標頭

  1. 開啟 Google 代碼管理工具
  2. 開啟伺服器容器。
  3. 在「變數」選單中,建立類型為「訪客區域」的「新增」使用者定義變數。
  4. 在「變數設定」中,選擇「自訂變數」
  5. 在「變數」選單中,建立兩個新的「要求標頭」變數:一個適用於您的國家/地區,另一個用於子產品群組代碼。請在 HTTP 要求標頭中填入國家/地區代碼。

  6. 使用您在「Visitor Region」變數中建立的變數,如螢幕截圖所示。

    變數設定的螢幕截圖

  7. 為變數命名並「儲存」

步驟 3:在用戶端中啟用區域專屬設定

為了使用訪客區域來處理傳入的 HTTP 要求,您必須將訪客區域新增至用戶端。

  1. 選取或建立要套用區域設定的用戶端。支援的用戶端包括:

    • Google 代碼管理工具:網站容器
    • Google Analytics (分析):GA4
    • Google Analytics (分析):通用 Analytics (分析)
  2. 設定 GA4 或通用 Analytics (分析) 用戶端時,請勾選「特定 ID 的預設 gtag.js 路徑」方塊,然後輸入網站容器的評估 ID。

  3. 勾選「啟用地區專屬設定」。將您在上一個步驟中建立的 {{Visitor Region}} 變數新增至「Region」欄位。

  4. 按一下「儲存」即可儲存客戶。

步驟 4:確認地區設定適用

如何測試設定是否正常運作:

  1. 開啟伺服器容器的預覽模式
  2. 使用第一方放送功能時載入網站。
  3. 在預覽視窗中,按一下「已聲明擁有權的 Google Analytics (分析) GA4 或通用 Analytics (分析)」用戶端。用戶端的螢幕截圖
  4. 如要查看實際區域,請將「Display Variables」圓形按鈕變更為數值。訪客區域欄位的螢幕截圖
    • ✅ 如果「區域」屬性顯示國家/地區代碼,則正確導入作業。
    • ❌ 如果 Region 屬性顯示 undefined 或遺失,表示伺服器未接收任何區域資料。檢查伺服器的 HTTP 標頭是否已根據 Google 代碼管理工具所尋找的預先定義變數進行設定。請參閱「設定要求標頭」一文。

後續步驟