Tag Manager mit einer Content Security Policy verwenden

Content Security Policy (CSP) ist ein weit verbreitetes Sicherheitsstandard, der bestimmte Arten von Injection-basierten Angriffen verhindern soll da Entwickler die Kontrolle über die von ihren Anwendungen geladenen Ressourcen haben. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites bereitstellen, eine CSP nutzen.

Container-Tag aktivieren, um die CSP zu verwenden

Wenn Sie Google Tag Manager auf einer Seite mit einer CSP verwenden möchten, muss die CSP die Ausführung Ihres Tag Manager-Containercodes. Dieser Code wird inline erstellt. JavaScript-Code, der das Skript gtm.js einfügt. Es gibt mehrere Möglichkeiten, z. B. mit einer Nonce oder einem Hash. Die empfohlene Methode ist die Verwendung eines nonce, der ein nicht zu erratender Zufallswert sein sollte, der vom Server generiert wird für jede Antwort einzeln. Geben Sie den Nonce-Wert im Feld „Content-Security- Richtlinie script-src:

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

Verwenden Sie dann die nicht aufrufbare Version des Inline-Containercodes für Tag Manager. Legen Sie für das Nonce-Attribut im Inline-Skriptelement 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 auf der Seite.

Es gibt noch andere Ansätze, um die Ausführung eines Inline-Skripts zu ermöglichen: da sie den Hash des Inline-Skripts in der CSP angeben.

Wenn die empfohlenen Nonce- oder Hash-Methoden nicht praktikabel sind, können Sie das Tag Manager-Inline-Skript aktivieren, indem Sie 'unsafe-inline' hinzufügen in den Abschnitt script-src der CSP.

Die CSP benötigt die folgenden Anweisungen, um diesen Ansatz zu verwenden:

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 bei einer CSP als undefined ausgewertet, es sei denn, 'unsafe-eval' wird 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 Folgendes enthalten: folgenden Anweisungen:

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 Folgendes enthalten: folgenden Anweisungen:

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 Bereitstellungen von Google Analytics 4 (Google Analytics) mit Google-Signalen Die CSP muss 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

Universal Analytics (Google Analytics)

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

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 Folgendes enthalten: Anweisungen:

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

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 Folgendes enthalten: Anweisungen.

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

Um die Beacons für Google Ads-Nutzerdaten in sicheren Kontexten zu verwenden, muss 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. Konfiguration ist in diesen Fällen nicht anwendbar.

Floodlight

Floodlight-Nutzer können CSPs mit den folgenden Konfigurationen aktivieren. Ersetzen <FLOODLIGHT-CONFIG-ID>-Werte mit einem bestimmten 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 benutzerdefinierte Skripts Beacons in Tag Manager verwenden:

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