Tag Manager mit einer Content Security Policy verwenden

Die Content Security Policy (CSP) ist ein weithin unterstützter Websicherheitsstandard, der bestimmte Arten von injection-basierten Angriffen verhindern soll, indem Entwickler die Kontrolle über die von ihren Anwendungen geladenen Ressourcen haben. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites bereitstellen, die einen Content-Sicherheitsanbieter verwenden.

Aktivieren Sie das Container-Tag, um CSP zu verwenden.

Wenn Sie Google Tag Manager auf einer Seite mit einem CSP verwenden möchten, muss der CSP die Ausführung Ihres Tag Manager-Container-Codes zulassen. Dieser Code wird als Inline-JavaScript-Code erstellt, der das gtm.js-Script einschleust. Dafür gibt es mehrere Möglichkeiten, z. B. eine Nonce oder einen Hash. Wir empfehlen, einen Nonce zu verwenden. Das ist ein nicht zu erratender Zufallswert, der vom Server individuell für jede Antwort generiert wird. Geben Sie den Nonce-Wert in der Anweisung „script-src“ der Content-Security-Policy an:

Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com

Verwenden Sie dann die nonce-sensitive Version des Inline-Tag Manager-Containercodes. Legen Sie das Attribut „nonce“ für das Inline-Script-Element auf denselben Wert fest:

<!-- 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 -->

Tag Manager überträgt den Nonce dann an alle Scripts, die der Seite hinzugefügt werden.

Es gibt auch andere Möglichkeiten, die Ausführung eines Inline-Scripts zu ermöglichen, z. B. durch Angabe des Hashes des Inline-Scripts im CSP.

Wenn die empfohlenen Nonce- oder Hash-Ansätze nicht möglich sind, können Sie das Tag Manager-Inline-Script aktivieren, indem Sie die 'unsafe-inline'-Richtlinie dem Abschnitt script-src der CSP hinzufügen.

Für diesen Ansatz sind die folgenden Anweisungen in der CSP erforderlich:

script-src 'unsafe-inline' https://www.googletagmanager.com
img-src www.googletagmanager.com
connect-src www.googletagmanager.com

Benutzerdefinierte JavaScript-Variablen

Aufgrund der Implementierung von benutzerdefinierten JavaScript-Variablen wird im Falle eines CSP der Wert undefined zurückgegeben, es sei denn, die 'unsafe-eval'-Richtlinie ist im Abschnitt script-src des CSP angegeben.

script-src 'unsafe-eval'

Vorschaumodus

Damit der Vorschaumodus von Google Tag Manager verwendet werden kann, muss die CSP die folgenden Anweisungen enthalten:

script-src https://googletagmanager.com https://tagmanager.google.com
style-src https://googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src https://googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src https://fonts.gstatic.com data:

Google Analytics 4 (Google Analytics)

Damit das Google Analytics 4-Tag (Google Analytics) verwendet werden kann, muss die CSP die folgenden Anweisungen enthalten:

script-src  https://*.googletagmanager.com
img-src     https://*.google-analytics.com https://*.googletagmanager.com
connect-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com

Bei Google Analytics 4-Implementierungen (Google Analytics), bei denen Google-Signale verwendet werden, muss die CSP die folgenden Anweisungen enthalten:

script-src  https://*.googletagmanager.com
img-src     https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
             https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src https://*.google-analytics.com https://*.analytics.google.com
             https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
frame-src   https://td.doubleclick.net

Damit ein Google Ads-Conversion-Tag verwendet werden kann, muss die CSP folgende Anweisungen enthalten:

Für sichere Verbindungen:

script-src https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
img-src https://googleads.g.doubleclick.net https://www.google.com https://google.com https://pagead2.googlesyndication.com
frame-src https://www.googletagmanager.com https://td.doubleclick.net
connect-src https://pagead2.googlesyndication.com

Für nicht sichere Verbindungen:

script-src www.googleadservices.com www.google.com www.googletagmanager.com
img-src googleads.g.doubleclick.net www.google.com google.com pagead2.googlesyndication.com
connect-src pagead2.googlesyndication.com

Damit ein Google Ads-Remarketing-Tag verwendet werden kann, muss die CSP die folgenden Anweisungen enthalten.

Für sichere Verbindungen:

script-src https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com
img-src https://www.google.com https://google.com
frame-src https://td.doubleclick.net

Für nicht sichere Verbindungen:

script-src www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src www.google.com google.com
frame-src td.doubleclick.net

Damit Google Ads-Beacons für Nutzerdaten im sicheren Kontext verwendet werden können, muss die CSP folgende Anweisungen enthalten:

script-src https://www.googletagmanager.com
frame-src https://www.googletagmanager.com

Das Google Ads-Nutzerdaten-Beacon wird nicht in unsicheren Kontexten ausgeführt. Daher ist in diesen Fällen keine CSP-Konfiguration erforderlich.

Floodlight

Floodlight-Nutzer können CSPs mit den folgenden Konfigurationen aktivieren. Ersetzen Sie <FLOODLIGHT-CONFIG-ID>-Werte durch eine bestimmte Floodlight-Werbetreibenden-ID oder *, um jede beliebige Werbetreibenden-ID zuzulassen:

Für alle Nutzer:

img-src https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src https://td.doubleclick.net

Für Beacons vom Typ „Benutzerdefinierte Scripts“ in Tag Manager:

frame-src https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

Für Bild-Tags:

img-src https://ad.doubleclick.net

Für den Einwilligungsmodus:

img-src https://ade.googlesyndication.com