Tag Manager mit einer Content Security Policy verwenden

Die Content Security Policy (CSP) ist ein weitgehend unterstützter Websicherheitsstandard, der bestimmte Arten von Injektionsangriffen verhindern soll, indem Entwickler die Kontrolle über die von ihren Anwendungen geladenen Ressourcen erhalten. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites mit CSP bereitstellen.

CSP für das Container-Tag aktivieren

Wenn Sie Google Tag Manager auf einer Seite mit einer CSP verwenden möchten, muss die CSP die Ausführung des Tag Manager-Container-Codes zulassen. Dieser Code ist als Inline-JavaScript-Code aufgebaut, der das gtm.js-Script einfügt. Dafür gibt es verschiedene Möglichkeiten, z. B. die Verwendung eines Nonce oder eines Hash. Die empfohlene Methode ist die Verwendung einer Nonce. Das ist ein nicht erratbarer, zufälliger Wert, den der Server für jede Antwort individuell generiert. Geben Sie den Nonce-Wert in der Content-Security-Policy-Anweisung script-src-elem als nonce-{SERVER-GENERATED-NONCE} an und verwenden Sie die Nonce-fähige Version des Inline-Tag Manager-Containercodes. Setzen Sie das Attribut nonce für das Inline-Script-Element auf denselben Wert:

<!-- 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 Scripts weiter, die auf 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 Hash des Inline-Scripts im CSP.

Wenn die empfohlenen Nonce- oder Hash-Ansätze nicht möglich sind, kann das Inline-Script von Tag Manager aktiviert werden, indem Sie die 'unsafe-inline'-Anweisung zum script-src-elem-Abschnitt der CSP hinzufügen.

Damit Sie diesen Ansatz verwenden können, muss der CSP Folgendes zulassen:

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

Benutzerdefinierte JavaScript-Variablen

Aufgrund der Implementierung von benutzerdefinierten JavaScript-Variablen wird bei Vorhandensein einer CSP der Wert undefined zurückgegeben, sofern die 'unsafe-eval'-Anweisung nicht im script-src-Abschnitt der CSP angegeben ist.

Anweisung Inhalt
script-src 'unsafe-eval'

Vorschaumodus

Wenn Sie den Vorschau-Modus von Google Tag Manager verwenden möchten, muss die CSP Folgendes zulassen:

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 Google Analytics verwenden können, muss die CSP Folgendes zulassen:

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

Wenn Sie Google Analytics ohne Google Ads-Funktionen verwenden möchten, muss die CSP Folgendes zulassen:

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

Wenn Sie ein Google Ads-Conversion-, Remarketing- oder Conversion-Verknüpfungs-Tag verwenden möchten, muss die CSP Folgendes zulassen:

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

Wenn Sie die Google Ads-Beacons für Nutzerdaten in sicheren Kontexten verwenden möchten, muss die CSP Folgendes zulassen:

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

Das Google Ads-Beacon für Nutzerdaten wird nicht in unsicheren Kontexten ausgeführt. Daher ist die CSP-Konfiguration in diesen Fällen nicht anwendbar.

Floodlight

Damit Floodlight verwendet werden kann, muss der CSP Folgendes zulassen:

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

Damit Sie benutzerdefinierte Floodlight-Scripts verwenden können, muss der CSP zusätzlich zu den oben genannten Punkten Folgendes zulassen:

Anweisung Inhalt
frame-src https://*.fls.doubleclick.net

Merchant Center

Damit das Merchant Center verwendet werden kann, muss der CSP Folgendes zulassen:

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 den erweiterten Abgleich, Nutzerdaten-Beacons und Google Ads-Conversions verwenden können, muss die CSP Folgendes zulassen:

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

Fehlerbehebung mit dem Tag Assistant

Verwenden Sie Tag Assistant, um Probleme mit der Content Security Policy (CSP) zu beheben. Tag Assistant zeigt die Liste der Ressourcen an, die durch Ihre 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 die Content Security Policy auf Ihrer Seite eine Ressource blockiert, wird im Bereich Seitenprobleme von Tag Assistant ein CSP-Problem angezeigt.

    Screenshot des Tag Assistant mit CSP-Problem

  3. Klicken Sie neben dem CSP-Problem auf Problem ansehen, 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.