Content Security Policy (CSP) to powszechnie obsługiwany standard bezpieczeństwa internetowego, który ma zapobiegać niektórym rodzajom ataków opartych na wstrzykiwaniu kodu. Umożliwia on programistom kontrolowanie zasobów wczytywanych przez ich aplikacje. Z tego przewodnika dowiesz się, jak wdrożyć Menedżera tagów Google w witrynach, które korzystają z zasad CSP.
Włączanie tagu w kontenerze do korzystania z CSP
Aby używać Menedżera tagów Google na stronie z zasadami CSP, zasady te muszą zezwalać na wykonywanie kodu kontenera Menedżera tagów. Ten kod jest wbudowanym kodem JavaScript, który wstawia skrypt gtm.js. Można to zrobić na kilka sposobów, np. używając liczby jednorazowej lub haszu. Zalecana metoda to użycie wartości nonce, która powinna być nieprzewidywalną, losową wartością generowaną przez serwer indywidualnie dla każdej odpowiedzi. Podaj wartość nonce w dyrektywie Content-Security-
Policy script-src:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com www.google.com
Następnie użyj wersji wbudowanego kodu kontenera Menedżera tagów, która uwzględnia wartość nonce. Ustaw atrybut nonce w elemencie skryptu wstawionego w kodzie na tę samą wartość:
<!-- 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 -->
Menedżer tagów będzie następnie przekazywać wartość nonce do wszystkich skryptów, które dodaje do strony.
Istnieją inne sposoby włączania wykonywania skryptu wbudowanego, np. podanie w CSP skrótu skryptu wbudowanego.
Jeśli zalecane podejścia z użyciem wartości nonce lub funkcji skrótu nie są możliwe, możesz włączyć skrypt wbudowany Menedżera tagów, dodając dyrektywę 'unsafe-inline' do sekcji script-src w zasadach CSP.
Aby korzystać z tej metody, musisz umieścić w nagłówku CSP te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| script-src | 'unsafe-inline' https://www.googletagmanager.com |
| img-src | www.googletagmanager.com |
| connect-src | www.googletagmanager.com www.google.com |
Niestandardowe zmienne JavaScript
Ze względu na sposób implementacji niestandardowych zmiennych JavaScript w przypadku obecności CSP będą one przyjmować wartość undefined, chyba że w sekcji script-src CSP zostanie podana dyrektywa 'unsafe-eval'.
| Dyrektywa | Treść |
|---|---|
| script-src | 'unsafe-eval' |
Tryb podglądu
Aby móc korzystać z trybu podglądu Menedżera tagów Google, musisz umieścić w nagłówku CSP te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| 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: |
Google Analytics 4
Aby używać tagu Google Analytics 4, musisz umieścić w nagłówku CSP te dyrektywy: Punkty końcowe oznaczone numerem 1 są przeznaczone specjalnie dla funkcji reklamowych, ale zalecamy uwzględnienie ich podczas wstępnej konfiguracji, aby w przypadku późniejszego połączenia z Google Ads nie trzeba było aktualizować standardu CSP.
| Dyrektywa | Treść |
|---|---|
| script-src | https://*.googletagmanager.com |
| img-src | https://*.google-analytics.com https://*.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://*.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. Punkty końcowe reklam: te domeny są aktywnie wymagane tylko w przypadku wdrożeń GA4, które są połączone z Google Ads lub korzystają z funkcji reklamowych.
Google Ads
Aby używać tagu konwersji, remarketingu lub tagu łączącego konwersje Google Ads, musisz umieścić w nagłówku CSP te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| 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.<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> |
Sygnał danych użytkownika Google Ads
Aby używać obrazów typu beacon danych użytkownika Google Ads w bezpiecznych kontekstach, w nagłówku CSP muszą być uwzględnione te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| script-src | https://www.googletagmanager.com |
| frame-src | https://www.googletagmanager.com |
| connect-src | https://google.com https://www.google.com |
Sygnał danych użytkownika reklam Google nie działa w niebezpiecznych kontekstach, więc w takich przypadkach konfiguracja CSP nie ma zastosowania.
Floodlight
Użytkownicy Floodlight mogą włączyć CSP, korzystając z tych konfiguracji: Zastąp wartości
<FLOODLIGHT-CONFIG-ID> konkretnym identyfikatorem reklamodawcy Floodlight lub wartością *, aby zezwolić na dowolny identyfikator reklamodawcy:
Dla wszystkich użytkowników:
| Dyrektywa | Treść |
|---|---|
| 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 |
W przypadku sygnałów „skryptów niestandardowych”:
| Dyrektywa | Treść |
|---|---|
| frame-src | https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net |
W przypadku tagów graficznych:
| Dyrektywa | Treść |
|---|---|
| img-src | https://ad.doubleclick.net https://ade.googlesyndication.com |
Merchant Center
Aby wysyłać dane do Merchant Center, musisz umieścić w nagłówku CSP te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| script-src | https://*.googletagmanager.com |
| img-src | https://*.merchant-center-analytics.goog |
| connect-src | https://*.merchant-center-analytics.goog |
Skrypt service worker
Aby używać Service Worker do konwersji rozszerzonych, sygnałów z danymi użytkowników i konwersji w Google Ads, nagłówek CSP musi zawierać te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| frame-src | https://www.googletagmanager.com |
Rozwiązywanie problemów za pomocą rozszerzenia Tag Assistant
Aby rozwiązać problemy ze standardem Content Security Policy (CSP), użyj Tag Assistant. Tag Assistant wyświetli listę zasobów, które są blokowane przez (standard) Content Security Policy.
Otwórz Tag Assistant i wpisz adres URL swojej witryny. Otworzy się nowa karta z Twoją witryną.
Jeśli zasób jest blokowany przez standard Content Security Policy na stronie, w sekcji Problemy ze stroną w Asystencie tagów wyświetli się problem z CSP.

Kliknij Wyświetl problem obok problemu z CSP, aby wyświetlić listę wszystkich zablokowanych zasobów na stronie.

Dodaj wszystkie zablokowane zasoby do standardu Content Security Policy.