本文適用於想在與網站相同的第一方使用情境中代管伺服器端代碼的開發人員。由伺服器設定 Cookie,就能享有安全性和耐用性方面的優勢,因此建議使用同源託管。無論您在網站上部署的 Google 代碼為何 (gtag.js 或 gtm.js),下列操作說明都適用於設定相同來源的放送作業。
首次設定標記伺服器時,系統會將標記伺服器託管在雲端服務供應商提供的網域上。使用預設端點時,系統會將資料傳送至伺服器容器,但會在第三方情境中執行。如要享有第一方使用情境的好處 (例如更耐用的 Cookie),您的標記伺服器和網站必須在相同的網域中執行。
下表說明在父網站託管於 www.example.com
時,如何託管代碼伺服器:
相同來源 (最佳做法) | 子網域 | 預設網域 | |
---|---|---|---|
範例網址 | https:/ |
https:/ |
https:/ |
伺服器設定的 Cookie 存取權 | 具備安全性和耐用性的完整存取權。 | 具備安全性和耐用性的完整存取權。 | 無。只能設定 JavaScript Cookie。 |
設定複雜度 | 設定 CDN 或負載平衡器,以便轉送要求。可能需要更新 DNS 項目。 | 更新 DNS 項目。 | 已預先設定。 |
請選擇導入選項,即可開始使用。
必要條件
本指南假設您已具備下列條件:
- 在 代碼管理工具中設定伺服器容器
- 設定標記伺服器
- 可轉送要求的 CDN 或負載平衡器。
- 如果您使用的是 App Engine:代碼標記伺服器必須執行 2.2.0 以上版本。為了讓代碼管理伺服器能持續運作,請遷移至 Cloud Run。
設定自訂網域
您可以設定伺服器容器,讓該容器在自家網站所用網域的某個路徑上執行。舉例來說,如果您的網站在 www.example.com
提供網路流量,請預留路徑 (例如 www.example.com/metrics
) 供伺服器容器使用。
1. 選擇要用於標記伺服器的網域路徑
這個路徑將保留給這項第一方放送服務實作項目。請務必選擇未使用的路徑。
您可能要使用的路徑範例包括:/collect
、/metrics
、/data
請記下這個路徑字串。您會在後續步驟中使用這個值,取代 /metrics
在以下位置:/metrics
2. 將流量轉送至您的標記伺服器
如果網站已設定支援按路徑轉送流量的 CDN 或負載平衡器,請跳至步驟 4。
- 加入指向您網站的來源或後端。
- 將「主機」標頭覆寫為網站的主機名稱,例如
example.com
- 允許轉送所有 Cookie 和查詢字串。如果平台沒有這個選項,系統可能會預設執行這項操作。
- 加入指向您標記伺服器的其他來源或後端,可以是雲端服務供應商提供的網域,例如
metrics.run.app
- 將「主機」標頭覆寫為上述網域。允許轉送所有 Cookie 和查詢字串。
- 加入路徑規則 (例如
/metrics/*
),將流量轉送至標記伺服器。 - 設定預留的伺服器端代碼路徑,使該路徑的順位高於預設規則。
- 更新 DNS 以指向 CDN 或負載平衡器 (如果尚未完成),這可能要過一段時間才會生效。
- 前往剛設定的網域上的
/healthy
端點,例如https://example.com/metrics/healthy
。畫面上應會顯示ok
。
3. 在 Google 代碼管理工具中更新伺服器網址
您需要更新伺服器容器設定,讓伺服器能夠正確識別路徑前置字元並處理要求。
如要更新至新端點,請按照下列步驟操作:
- 開啟 Google 代碼管理工具
- 開啟與網站相同來源的伺服器容器。
- 在「管理」分頁 >「容器設定」下方,移除所有先前的網址。這是必要的,因為所有伺服器容器網址都必須共用相同的路徑。
- 按一下「新增網址」,然後輸入網址 (含前置路徑)。
- 按一下「儲存」,然後返回工作區。
- 按一下「Preview」按鈕,即可開始新的偵錯工作階段,並在另一個分頁中傳送要求。
- 按一下已傳送的要求。請確認您的用戶端已聲明這項傳入要求。
排解常見問題
- 預覽畫面未顯示傳入要求
- 前往雲端專案的記錄檔探索工具。確認伺服器端代碼標記部署作業是否接收流量。如果不是,請按照步驟 1 中的指示操作。
- 確認 CDN 或負載平衡器是否會轉送 Cookie。
- 確認您只有一個預覽伺服器,且標記伺服器已設定
PREVIEW_SERVER_URL
。 - 前往
PREVIEW_SERVER_URL
+/healthy
,確認預先發布版伺服器是否正在執行。畫面上應會顯示ok
。
- 用戶端未認領要求:請更新容器設定中的網址,以便使用保留路徑。如果網址不含路徑,或路徑不同,用戶端就無法正常運作。