內容安全政策 (CSP) 是廣受支援的網路安全標準,可讓開發人員控管應用程式載入的資源,防止特定類型的注入式攻擊。請參閱本指南,瞭解如何在採用 CSP 的網站上部署 Google 代碼管理工具。
啟用容器代碼以使用 CSP
如要在含有 CSP 的網頁上使用 Google 代碼管理工具,CSP 必須允許執行代碼管理工具容器程式碼。這段程式碼會建構為內嵌 JavaScript 程式碼,用於插入 gtm.js 指令碼。有幾種方法可以達成上述目的,例如使用隨機數或雜湊。建議使用Nonce,這應該是伺服器為每個回應個別產生的隨機值,且無法猜測。在 Content-Security-Policy script-src-elem 指令中提供隨機值,做為 nonce-{SERVER-GENERATED-NONCE},並使用內嵌代碼管理工具容器代碼的隨機值感知版本。將內嵌指令碼元素上的 nonce 屬性設為相同的值:
<!-- Google Tag Manager -->
<script nonce='{SERVER-GENERATED-NONCE}'>(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=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
代碼管理工具隨後會將隨機碼傳播至新增至網頁的任何指令碼。
您也可以採用其他方法,例如在 CSP 中提供內嵌指令碼的雜湊,啟用內嵌指令碼的執行作業。
如果無法採用建議的 Nonce 或雜湊方法,可以將 'unsafe-inline' 指令新增至 CSP 的 script-src-elem 區段,啟用代碼管理工具內嵌指令碼。
如要使用這種做法,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com 'unsafe-inline' |
img-src |
https://www.googletagmanager.com |
connect-src |
https://www.googletagmanager.com https://www.google.com |
自訂 JavaScript 變數
由於自訂 JavaScript 變數的導入方式,除非在 CSP 的 script-src 部分提供 'unsafe-eval' 指令,否則在 CSP 存在的情況下,這些變數會評估為 undefined。
| 指令 | 內容 |
|---|---|
script-src |
'unsafe-eval' |
預覽模式
如要使用 Google 代碼管理工具的預覽模式,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com https://tagmanager.google.com |
style-src |
https://www.googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com |
img-src |
https://www.googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com |
font-src |
https://fonts.gstatic.com data: |
Google Analytics
如要使用 Google Analytics,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net |
connect-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net https://pagead2.googlesyndication.com |
frame-src |
https://www.googletagmanager.com |
如要使用 Google Analytics,但不要使用任何 Google Ads 功能,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://www.googletagmanager.com https://*.google-analytics.com |
connect-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com |
Google Ads
如要使用 Google Ads 轉換、再行銷或轉換連接器代碼,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com https://www.googleadservices.com https://www.google.com |
img-src |
https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> |
connect-src |
https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> https://ad.doubleclick.net |
frame-src |
https://www.googletagmanager.com |
Google Ads 使用者資料
如要在安全環境中執行,並使用 Google Ads 使用者資料信號,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
connect-src |
https://www.google.com |
frame-src |
https://www.googletagmanager.com |
Google Ads 使用者資料信標不會在不安全的環境中執行,因此在這些情況下,CSP 設定不適用。
泛光燈
如要使用 Floodlight,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
img-src |
https://www.googletagmanager.com https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com |
connect-src |
https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com https://ad.doubleclick.net |
frame-src |
https://www.googletagmanager.com |
如要使用 Floodlight 自訂指令碼,CSP 也必須允許下列項目 (除了上述項目外):
| 指令 | 內容 |
|---|---|
frame-src |
https://*.fls.doubleclick.net |
Merchant Center
如要使用 Merchant Center,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://*.merchant-center-analytics.goog |
connect-src |
https://*.merchant-center-analytics.goog |
Service Worker
如要使用 Service Worker 進行強化比對、傳送使用者資料信號及回報 Google 廣告轉換,CSP 必須允許下列項目:
| 指令 | 內容 |
|---|---|
frame-src |
https://www.googletagmanager.com |
使用 Tag Assistant 排除問題
如要排解內容安全政策 (CSP) 問題,請使用 Tag Assistant。Tag Assistant 會顯示遭內容安全政策封鎖的資源清單。
開啟 Tag Assistant,然後輸入網站網址。網站會在新分頁中開啟。
如果網頁的內容安全政策封鎖了資源,Tag Assistant 的「網頁問題」部分就會顯示 CSP 問題。

選取 CSP 問題旁的「查看問題」,即可查看網頁上所有遭封鎖的資源清單。

將所有遭封鎖的資源新增至內容安全政策。