本文適用對象為透過自家伺服器提供 Google 指令碼的開發人員。建議您為代碼啟用區域專屬行為,藉此解鎖進階同意聲明模式等功能,並根據使用者的所在位置控管代碼行為。
事前準備
請務必先完成下列事項,再按照本指南的說明操作:
步驟 1:設定要求標頭
您必須傳送包含使用者區域資訊的特定要求標頭,如下節所述。
如果符合下列條件,可以直接從步驟 2 開始進行:
- 使用 App Engine。App Engine 會自動傳送地理標頭。
- 您使用的基礎架構供應商與下列供應商不同。您需要設定自訂標頭。
將 Cloud Run 與 GCP 負載平衡器搭配使用
您可以透過「所有」HTTP 要求標頭,或針對特定要求傳送地理位置資訊。新增自訂要求標頭後,每 100 萬個要求就會產生費用,因此建議您只納入地理位置資訊,要求提供 Google 指令碼服務。這個做法最初需要較多設定,但可以協助你以最經濟實惠的方式執行基礎架構。
指令碼要求
如果只要為指令碼要求加入地理標頭,您必須設定新的後端並建立轉送規則。
如要建立新的後端,請按照下列指示操作:
- 開啟 GCP 負載平衡器
- 在負載平衡器中開啟「Backend configuration」(後端設定) 部分。建立新的後端服務。
- 設定新的後端服務:
- 後端類型:選擇應用程式使用的網路端點群組類型。如果您使用 Cloud Run,請選擇「Serverless network Endpoints group」(無伺服器網路端點群組)。
- 在「新增後端」中,選擇伺服器端代碼管理工具部署的網路端點群組。
- 開啟「進階設定」部分。新增自訂要求標頭。
標頭名稱 標頭值 X-Gclb-Country {client_region} X-Gclb-Region {client_region_subdivision} - 儲存新的後端服務。
如何設定轉送規則:
- 在負載平衡器中開啟「轉送規則」專區。選擇「進階主機路徑和規則」 模式。
- 更新
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
- 儲存變更。
所有要求
如要將地理位置資訊與所有 HTTP 要求一併傳送,您必須將自訂要求標頭新增至現有的後端服務,請參閱 Google Cloud 說明文件。為下列每個標頭建立一個新的自訂要求標頭:
標頭名稱 | 標頭值 |
---|---|
X-Gclb-Country |
{client_region} |
X-Gclb-Country |
{client_region_subdivision} |
GCP 負載平衡器
您可以透過「所有」HTTP 要求標頭,或針對特定要求傳送地理位置資訊。新增自訂要求標頭後,每 100 萬個要求就會產生費用,因此建議您只納入地理位置資訊,要求提供 Google 指令碼服務。這個做法最初需要較多設定,但可以協助你以最經濟實惠的方式執行基礎架構。
指令碼要求
如果只要為指令碼要求加入地理標頭,您必須設定新的後端並建立轉送規則。
如要建立新的後端,請按照下列指示操作:
- 開啟 GCP 負載平衡器
- 在負載平衡器中開啟「Backend configuration」(後端設定) 部分。建立新的後端服務。
- 設定新的後端服務:
- 後端類型:選擇應用程式使用的網路端點群組類型。如果您使用 Cloud Run,請選擇「Serverless network Endpoints group」(無伺服器網路端點群組)。
- 在「新增後端」中,選擇伺服器端代碼管理工具部署的網路端點群組。
- 開啟「進階設定」部分。新增自訂要求標頭。
標頭名稱 標頭值 X-Gclb-Country {client_region} X-Gclb-Region {client_region_subdivision} - 儲存新的後端服務。
如何設定轉送規則:
- 在負載平衡器中開啟「轉送規則」專區。選擇「進階主機路徑和規則」 模式。
- 更新
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
- 儲存變更。
所有要求
如要將地理位置資訊與所有 HTTP 要求一併傳送,您必須將自訂要求標頭新增至現有的後端服務,請參閱 Google Cloud 說明文件。為下列每個標頭建立一個新的自訂要求標頭:
標頭名稱 | 標頭值 |
---|---|
X-Gclb-Country |
{client_region} |
X-Gclb-Country |
{client_region_subdivision} |
Amazon Web Services (AWS) CloudFront
建立來源要求政策,在要求中加入 CloudFront-Viewer-Country
和 CloudFront-Viewer-Country-Region
標頭。
系統會自動新增下列標頭及其值:
標頭名稱 | 標頭值 |
---|---|
CloudFront-Viewer (國家/地區) | 使用者所在的國家/地區 |
CloudFront-Viewer-Country-Region | 使用者的子產品群組 |
Cloudflare
在「代管轉換」部分中啟用「Add 訪客位置標頭」:
系統會自動加入以下標頭及其值:
標頭名稱 | 標頭值 |
---|---|
CF-IP 國家/地區 | 使用者所在的國家/地區 |
步驟 2:設定訪客區域變數
如果您在上述設定中設定了地理區域標頭,代碼管理工具會讀取 HTTP 要求標頭,來自動偵測區域或國家/地區。 或者,您也可以設定自訂標頭。
自動偵測
- 開啟 Google 代碼管理工具
- 開啟伺服器容器。
- 在「變數」選單中,「設定」內建變數清單。
- 選取「訪客地區」。
現在可以在「訪客區域」變數中使用地理區域標題。
自訂標頭
- 開啟 Google 代碼管理工具
- 開啟伺服器容器。
- 在「變數」選單中,建立類型為「訪客區域」的「新增」使用者定義變數。
- 在「變數設定」中,選擇「自訂變數」。
在「變數」選單中,建立兩個新的「要求標頭」變數:一個適用於您的國家/地區,另一個用於子產品群組代碼。請在 HTTP 要求標頭中填入國家/地區代碼。
使用您在「Visitor Region」變數中建立的變數,如螢幕截圖所示。
為變數命名並「儲存」。
步驟 3:在用戶端中啟用區域專屬設定
為了使用訪客區域來處理傳入的 HTTP 要求,您必須將訪客區域新增至用戶端。
選取或建立要套用區域設定的用戶端。支援的用戶端包括:
- Google 代碼管理工具:網站容器
- Google Analytics (分析):GA4
- Google Analytics (分析):通用 Analytics (分析)
設定 GA4 或通用 Analytics (分析) 用戶端時,請勾選「特定 ID 的預設 gtag.js 路徑」方塊,然後輸入網站容器的評估 ID。
勾選「啟用地區專屬設定」。將您在上一個步驟中建立的 {{Visitor Region}} 變數新增至「Region」欄位。
按一下「儲存」即可儲存客戶。
步驟 4:確認地區設定適用
如何測試設定是否正常運作:
- 開啟伺服器容器的預覽模式。
- 使用第一方放送功能時載入網站。
- 在預覽視窗中,按一下「已聲明擁有權的 Google Analytics (分析) GA4 或通用 Analytics (分析)」用戶端。
- 如要查看實際區域,請將「Display Variables」圓形按鈕變更為數值。
- ✅ 如果「區域」屬性顯示國家/地區代碼,則正確導入作業。
- ❌ 如果 Region 屬性顯示
undefined
或遺失,表示伺服器未接收任何區域資料。檢查伺服器的 HTTP 標頭是否已根據 Google 代碼管理工具所尋找的預先定義變數進行設定。請參閱「設定要求標頭」一文。