Die Content Security Policy (CSP) ist ein weitgehend unterstützter Websicherheitsstandard, der bestimmte Arten von injektionsbasierten Angriffen verhindern soll. Dazu erhalten Entwickler die Kontrolle über die von ihren Anwendungen geladenen Ressourcen. In diesem Leitfaden erfahren Sie, wie Sie Google Tag Manager auf Websites mit 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 konzipiert, 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
an:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com www.google.com
Verwenden Sie dann die Nonce-sensitive Version des Inline-Tag Manager-Containercodes. Legen Sie für das Inline-Script-Element das Attribut „nonce“ 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 Skripts weiter, die der Seite hinzugefügt werden.
Es gibt auch andere Möglichkeiten, die Ausführung eines Inline-Skripts zu ermöglichen, z. B. durch Angabe des Hashs des Inline-Skripts in der 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
-Abschnitt der CSP hinzufügen.
Für diesen Ansatz sind die folgenden Anweisungen im CSP erforderlich:
Anweisung | Inhalt |
---|---|
script-src | '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 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
Damit Sie den Vorschau-Modus von Google Tag Manager verwenden können, muss die CSP die folgenden Anweisungen enthalten:
Anweisung | Inhalt |
---|---|
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-Daten: |
Google Analytics 4 (Google Analytics)
Damit das Google Analytics 4-Tag (Google Analytics) verwendet werden kann, muss die CSP die folgenden Anweisungen enthalten:
Anweisung | Inhalt |
---|---|
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 Google Analytics 4-Implementierungen (Google Analytics) mit Google-Signalen muss die CSP die folgenden Anweisungen enthalten:
Anweisung | Inhalt |
---|---|
script-src | https://*.googletagmanager.com |
img-src | https://*.google-analytics.com https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD> |
connect-src | https://*.google-analytics.com https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD> https://pagead2.googlesyndication.com |
frame-src | https://td.doubleclick.net https://www.googletagmanager.com |
Google Ads
Wenn Sie ein Google Ads-Conversion-, Remarketing- oder Conversion-Verknüpfungs-Tag verwenden möchten, muss die CSP die folgenden Anweisungen enthalten:
Anweisung | Inhalt |
---|---|
script-src | 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.com.<TLD> |
frame-src | https://www.googletagmanager.com https://td.doubleclick.net |
connect-src | https://pagead2.googlesyndication.com https://www.googleadservices.com https://www.google.com https://google.com |
Google Ads-Nutzerdaten-Beacon
Wenn Sie die Google Ads-Beacons für Nutzerdaten in sicheren Kontexten verwenden möchten, muss die CSP die folgenden Direktiven enthalten:
Anweisung | Inhalt |
---|---|
script-src | 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 die CSP-Konfiguration in diesen Fällen nicht anwendbar.
Floodlight
Floodlight-Nutzer können CSPs mit den folgenden Konfigurationen aktivieren. Ersetzen Sie die <FLOODLIGHT-CONFIG-ID>
-Werte entweder 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://td.doubleclick.net 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 vom Typ „Benutzerdefinierte Scripts“:
Anweisung | Inhalt |
---|---|
frame-src | https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net |
Für Bild-Tags gilt:
Anweisung | Inhalt |
---|---|
img-src | https://ad.doubleclick.net https://ade.googlesyndication.com |
Service Worker
Damit der Service Worker für erweiterten Abgleich, Nutzerdaten-Beacons und Google Ads-Conversions verwendet werden kann, muss die CSP die folgenden Anweisungen enthalten:
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 von Ihrer Content Security Policy blockiert werden.
Öffnen Sie den Tag Assistant und geben Sie die URL Ihrer Website ein. Ihre Website wird in einem neuen Tab geöffnet.
Wenn eine Ressource durch die Content Security Policy (CSP) auf Ihrer Seite blockiert wird, wird im Bereich Seitenprobleme von Tag Assistant ein CSP-Problem angezeigt.
Klicken Sie neben dem CSP-Problem auf Problem ansehen, um die Liste aller blockierten Ressourcen auf Ihrer Seite aufzurufen.
Fügen Sie alle blockierten Ressourcen Ihrer Content Security Policy hinzu.