Tag Manager mit einer Content Security Policy verwenden

Die Content Security Policy (CSP) ist ein weit verbreiteter Websicherheitsstandard, der bestimmte Arten von Injection-basierten Angriffen verhindern soll, indem er Entwicklern Kontrolle über die von ihren Anwendungen geladenen Ressourcen gibt. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites bereitstellen, für die eine CSP verwendet wird.

Container-Tag aktivieren, um die CSP zu verwenden

Damit Sie Google Tag Manager auf einer Seite mit einer CSP verwenden können, muss die CSP die Ausführung Ihres Tag Manager-Containercodes zulassen. Dieser Code wird als Inline-JavaScript-Code erstellt, der das Skript gtm.js einschleust. Dafür gibt es mehrere Möglichkeiten, z. B. die Verwendung einer Nonce oder eines Hashs. Die empfohlene Methode ist die Verwendung einer Nonce. Dabei sollte es sich um einen nicht zu erratenden, zufälligen Wert handeln, den der Server für jede Antwort individuell generiert. Geben Sie den Nonce-Wert in der Content-Security-Policy-Anweisung script-src an:

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

Verwenden Sie dann die Nonce-kompatible Version des Inline Tag Manager-Containercodes. Legen Sie das Nonce-Attribut im Inline-Skriptelement 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 leitet die Nonce dann an alle Skripts weiter, die der Seite hinzugefügt werden.

Es gibt auch andere Ansätze, um die Ausführung eines Inline-Skripts zu ermöglichen, z. B. die Bereitstellung des Hashs des Inline-Skripts in der CSP.

Wenn die empfohlenen Nonce- oder Hash-Ansätze nicht umsetzbar sind, können Sie das Tag Manager-Inline-Script aktivieren, indem Sie die Anweisung 'unsafe-inline' in den Abschnitt script-src der CSP einfügen.

Die folgenden Anweisungen sind in der CSP erforderlich, um diesen Ansatz zu verwenden:

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

Benutzerdefinierte JavaScript-Variablen

Aufgrund der Implementierung von benutzerdefinierten JavaScript-Variablen werden sie als undefined ausgewertet, wenn eine CSP vorhanden ist, es sei denn, die Anweisung 'unsafe-eval' ist im Abschnitt script-src der 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

Für Bereitstellungen in Google Analytics 4 (Google Analytics) mit Google-Signalen 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>

Universal Analytics (Google Analytics)

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

script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com

Damit ein Google Ads-Conversion-Tag verwendet werden kann, muss die CSP die folgenden 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
frame-src: https://www.googletagmanager.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

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://bid.g.doubleclick.net 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: bid.g.doubleclick.net td.doubleclick.net

Damit die Google Ads-Beacons für Nutzerdaten bei Ausführung in sicheren Kontexten verwendet werden können, muss die CSP die folgenden Anweisungen enthalten:

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

Das Beacon für Google Ads-Nutzerdaten funktioniert nicht in unsicheren Kontexten, sodass die CSP-Konfiguration in diesen Fällen nicht erforderlich ist.

Floodlight

Floodlight-Nutzer können CSPs mit den folgenden Konfigurationen aktivieren. Ersetzen Sie <FLOODLIGHT-CONFIG-ID>-Werte entweder durch eine bestimmte Floodlight-Werbetreibenden-ID oder durch *, um eine 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 für benutzerdefinierte Skripts 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 gilt:

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