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 Entwickler die Kontrolle über die von ihren Anwendungen geladenen Ressourcen erhalten. 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 wird als Inline-JavaScript-Code erstellt, der das gtm.js-Skript einfügt. Dazu gibt es mehrere Möglichkeiten, z. B. die Verwendung einer Nonce oder eines Hashs. Die empfohlene Methode ist die Verwendung einer Nonce. Dies sollte ein nicht erratbarer, zufälliger Wert sein, den der Server für jede Antwort einzeln 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. Legen Sie das Attribut nonce für das 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 gibt die Nonce dann an alle Scripts 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 Angabe des Hash-Werts des Inline-Skripts in der CSP.

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

Der CSP muss Folgendes zulassen, damit dieser Ansatz verwendet werden kann:

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 werden sie bei Vorhandensein einer CSP als undefined ausgewertet, es sei denn, die Anweisung 'unsafe-eval' 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 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 Beacon für Google Ads-Nutzerdaten wird nicht in unsicheren Kontexten ausgeführt. Daher ist die CSP-Konfiguration in diesen Fällen nicht zutreffend.

Floodlight

Wenn Sie Floodlight verwenden möchten, muss die 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

Wenn Sie benutzerdefinierte Floodlight-Skripts verwenden möchten, muss die CSP zusätzlich zu den oben genannten Punkten Folgendes zulassen:

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

Merchant Center

Damit Sie das Merchant Center verwenden können, muss die 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

Google Tag Gateway für Werbetreibende

Wenn Sie das Google Tag Gateway für Werbetreibende verwenden, wird das Google-Tag von einem Messpfad auf Ihrer Website (z. B. https://www.example.com/metrics) geladen und sendet Daten an diesen Pfad. Einige Tags senden weiterhin Anfragen an Google-Domains. Behalten Sie daher die für jedes Produkt aufgeführten Anweisungen bei und lassen Sie außerdem Folgendes zu:

Anweisung Inhalt Zweck
script-src-elem 'self' Google-Tag über den Messpfad laden
img-src 'self' Messanfragen
connect-src 'self' Messanfragen
worker-src 'self' Service Worker

Achten Sie darauf, dass Ihr CDN oder Webserver den Content-Security-Policy-Header Ihrer Website nicht zu Antworten aus Ihrem Messpfad hinzufügt. Andernfalls kann der Browser den Service Worker blockieren.

Serverseitiges Tagging

Wenn das Google-Tag Daten an einen Servercontainer sendet, muss die CSP auch Ihren Tagging-Server zulassen. Diese Anweisungen ersetzen nicht die für jedes Produkt aufgeführten Anweisungen, z. B. https://www.googletagmanager.com. Was Sie hinzufügen, hängt davon ab, wo Ihr Tagging-Server gehostet wird:

Anweisung Same-Origin-Einrichtung Subdomain einrichten Zweck
img-src 'self' https://TAGGING_SERVER_DOMAIN Messanfragen
connect-src 'self' https://TAGGING_SERVER_DOMAIN Messanfragen
frame-src 'self' https://TAGGING_SERVER_DOMAIN Service Worker
worker-src 'self' Nicht erforderlich Service Worker
script-src-elem 'self' https://TAGGING_SERVER_DOMAIN Nur wenn Sie das Google-Tag von Ihrem Tagging-Server laden

Bei einer Same-Origin-Einrichtung wird der Tagging-Server über einen Pfad auf Ihrer Website bereitgestellt (z. B. https://www.example.com/metrics). Bei einer Subdomain-Einrichtung ersetzen Sie TAGGING_SERVER_DOMAIN durch Ihre Tagging-Server-Domain (z. B. sgtm.example.com).

Achten Sie bei einer Same-Origin-Konfiguration darauf, dass Ihr CDN oder Webserver den Content-Security-Policy-Header Ihrer Website nicht zu Antworten aus dem Tagging-Pfad hinzufügt. Andernfalls kann der Browser den Service Worker blockieren.

Service Worker

Das Google-Tag verwendet einen Service Worker nur, wenn Sie das Google Tag Gateway für Werbetreibende oder serverseitiges Tagging verwenden. Die für die jeweilige Einrichtung erforderlichen Anweisungen finden Sie unter Google Tag Gateway für Werbetreibende und Serverseitiges Tagging. Wenn Sie beide verwenden, muss die CSP beide zulassen.

Fehlerbehebung mit dem Tag Assistant

Verwenden Sie den Tag Assistant, um Probleme mit der Content Security Policy (CSP) zu beheben. Im Tag Assistant wird die Liste der Ressourcen angezeigt, 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 Tag Assistant im Bereich Seitenprobleme ein CSP-Problem angezeigt.

    Screenshot des 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.