Tag Manager mit einer Content Security Policy verwenden

Content Security Policy (CSP) ist ein weit verbreiteter Web Sicherheitsstandard, der bestimmte Arten von Angriffen durch Einschleusung verhindern soll. Dazu können Entwickler festlegen, welche Ressourcen von ihren Anwendungen geladen werden dürfen. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites mit einer CSP bereitstellen.

Container-Tag für die Verwendung von CSP aktivieren

Wenn Sie Google Tag Manager auf einer Seite mit einer CSP verwenden möchten, muss die CSP die Ausführung des Tag Manager-Containercodes zulassen. Dieser Code ist als Inline-JavaScript-Code aufgebaut, der das gtm.js- Skript einschleust. Dafür gibt es mehrere Möglichkeiten, z. B. die Verwendung einer Nonce oder eines Hashwerts. Die empfohlene Methode ist die Verwendung einer Nonce. Dabei handelt es sich um einen nicht vorhersehbaren, zufälligen Wert, der vom Server für jede Antwort einzeln generiert wird. Geben Sie den Nonce-Wert in der Content-Security-Policy- Anweisung script-src-elem an:

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

Verwenden Sie dann die Nonce-fähige Version des Inline-Containercodes von Tag Manager. Legen Sie für das Nonce-Attribut des Inline-Skript- Elements 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 gibt die Nonce dann an alle Skripts weiter, die er der Seite hinzufügt.

Es gibt auch andere Möglichkeiten, die Ausführung eines Inline-Skripts zu aktivieren, z. B. indem Sie den Hashwert des Inline-Skripts in der CSP angeben.

Wenn die empfohlenen Nonce- oder Hashwert-Methoden nicht möglich sind, können Sie das Inline-Skript von Tag Manager aktivieren, indem Sie die 'unsafe-inline' Anweisung zum Abschnitt script-src-elem der CSP hinzufügen.

Die folgenden Anweisungen sind in der CSP erforderlich, um diese Methode zu verwenden:

Anweisung Inhalt
script-src-elem 'unsafe-inline' https://www.googletagmanager.com
img-src www.googletagmanager.com
connect-src www.googletagmanager.com www.google.com

Benutzerdefinierte JavaScript-Variablen

Aufgrund der Implementierung benutzerdefinierter JavaScript-Variablen wird für sie bei Vorhandensein einer CSP der Wert undefined festgelegt, es sei denn, die 'unsafe-eval' Anweisung ist im Abschnitt script-src der CSP angegeben.

Anweisung Inhalt
script-src 'unsafe-eval'

Vorschaumodus

Damit Sie den Vorschaumodus von Google Tag Manager verwenden können, muss die CSP die folgenden Anweisungen enthalten:

Anweisung Inhalt
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

Damit Sie das Google Analytics-Tag verwenden können, muss die CSP die folgenden Anweisungen enthalten. Die mit 1 gekennzeichneten Endpunkte sind speziell für Werbe funktionen. Wir empfehlen jedoch, sie bei der ersten Einrichtung einzufügen, damit die CSP nicht aktualisiert werden muss, wenn Sie Google Ads später verknüpfen.

Anweisung Inhalt
script-src-elem https://www.googletagmanager.com
img-src https://*.google-analytics.com
https://www.googletagmanager.com
https://*.g.doubleclick.net 1
https://*.google.com 1
https://*.google.<TLD> 1
connect-src https://*.google-analytics.com
https://*.analytics.google.com
https://www.googletagmanager.com
https://*.g.doubleclick.net 1
https://*.google.com 1
https://*.google.<TLD> 1
https://pagead2.googlesyndication.com 1
frame-src https://www.googletagmanager.com 1

1 Werbeendpunkte: Diese Domains sind nur für Google Analytics-Bereitstellungen erforderlich, die mit Google Ads verknüpft sind oder Werbefunktionen verwenden.

Damit Sie ein Google Ads-Conversion-, Remarketing- oder Conversion- Verknüpfungs-Tag verwenden können, muss die CSP die folgenden Anweisungen enthalten:

Anweisung Inhalt
script-src-elem https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
https://pagead2.googlesyndication.com https://googleads.g.doubleclick.net
img-src https://www.googletagmanager.com https://googleads.g.doubleclick.net https://www.google.com
https://pagead2.googlesyndication.com https://www.googleadservices.com
https://google.com https://www.google.<TLD>
frame-src https://www.googletagmanager.com
connect-src https://pagead2.googlesyndication.com https://www.googleadservices.com https://googleads.g.doubleclick.net
https://ad.doubleclick.net https://www.google.com https://google.com https://www.google.<TLD>

Damit Sie die Google Ads-Beacons für Nutzerdaten in sicheren Kontexten verwenden können, muss die CSP die folgenden Anweisungen enthalten:

Anweisung Inhalt
script-src-elem https://www.googletagmanager.com
frame-src https://www.googletagmanager.com
connect-src https://google.com https://www.google.com

Das Google Ads-Beacon für Nutzerdaten 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 die <FLOODLIGHT-CONFIG-ID> Werte durch eine bestimmte Floodlight-Werbetreibenden-ID oder durch *, um eine beliebige Werbetreibenden-ID zuzulassen:

Für alle Nutzer:

Anweisung Inhalt
img-src https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com
https://www.googletagmanager.com
frame-src https://www.googletagmanager.com
connect-src https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com
https://ad.doubleclick.net

Für Beacons mit benutzerdefinierten Skripts:

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

Für Bild-Tags:

Anweisung Inhalt
img-src https://ad.doubleclick.net https://ade.googlesyndication.com

Merchant Center

Damit Daten an das Merchant Center gesendet werden können, muss die CSP die folgenden Anweisungen enthalten:

Anweisung Inhalt
script-src-elem https://www.googletagmanager.com
img-src https://*.merchant-center-analytics.goog
connect-src https://*.merchant-center-analytics.goog

Service Worker

Damit Sie den Service Worker für erweiterte Übereinstimmungen, Beacons für Nutzerdaten und Google Ads-Conversions verwenden können, muss die CSP die folgenden Anweisungen enthalten:

Anweisung Inhalt
frame-src https://www.googletagmanager.com

Fehlerbehebung mit dem Tag Assistant

Verwenden Sie den Tag Assistant, um Probleme mit der Content Security Policy (CSP) zu beheben. Der Tag Assistant zeigt eine Liste der Ressourcen an, die von Ihrer Content Security Policy blockiert werden.

  1. Öffnen Sie den Tag Assistant und geben Sie die URL Ihrer Website ein. Ihre Website wird in einem neuen Tab geöffnet.

  2. Wenn eine Ressource auf Ihrer Seite durch die Content Security Policy blockiert wird, wird im Bereich Seitenprobleme des Tag Assistant ein CSP-Problem angezeigt.

    Screenshot von Tag Assistant mit CSP-Problem

  3. Wählen Sie neben dem CSP-Problem Problem ansehen aus, um die Liste aller blockierten Ressourcen auf Ihrer Seite aufzurufen. Screenshot des Tag Assistant mit dem Schieberegler für CSP-Probleme

  4. Fügen Sie alle blockierten Ressourcen Ihrer Content Security Policy hinzu.