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 wdrażać Menedżera tagów Google w witrynach, które korzystają z 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-elem jako nonce-{SERVER-GENERATED-NONCE} i użyj wersji kodu kontenera Menedżera tagów wstawianego w tekście, która uwzględnia nonce. Ustaw dla atrybutu nonce w elemencie skryptu wbudowanego 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 przekaże wtedy 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 nonce lub haszowania nie są możliwe, możesz włączyć skrypt wbudowany Menedżera tagów, dodając dyrektywę 'unsafe-inline'
do sekcji script-src-elem zasad CSP.
Aby korzystać z tej metody, musisz zezwolić na te działania w nagłówku CSP:
| Dyrektywa | Treść |
|---|---|
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 |
Niestandardowe zmienne JavaScript
Ze względu na sposób implementacji niestandardowych zmiennych JavaScript w 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 korzystać z trybu podglądu Menedżera tagów Google, CSP musi zezwalać na:
| Dyrektywa | Treść |
|---|---|
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
Aby korzystać z Google Analytics, standard CSP musi zezwalać na:
| Dyrektywa | Treść |
|---|---|
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 |
Aby korzystać z Google Analytics bez funkcji Google Ads, standard CSP musi zezwalać na te elementy:
| Dyrektywa | Treść |
|---|---|
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 |
Google Ads
Aby używać tagu konwersji, remarketingu lub tagu łączącego konwersje Google Ads, zasady CSP muszą zezwalać na te działania:
| Dyrektywa | Treść |
|---|---|
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 |
Dane użytkowników Google Ads
Aby korzystać z sygnałów danych użytkownika Google Ads w bezpiecznych kontekstach, standard CSP musi zezwalać na:
| Dyrektywa | Treść |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
connect-src |
https://www.google.com |
frame-src |
https://www.googletagmanager.com |
Sygnał danych użytkownika reklam Google nie działa w niebezpiecznych kontekstach, więc w takich przypadkach konfiguracja CSP nie ma zastosowania.
Floodlight
Aby korzystać z Floodlight, musisz zezwolić na te działania:
| Dyrektywa | Treść |
|---|---|
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 |
Aby korzystać ze skryptów niestandardowych Floodlight, dostawca CSP musi też zezwalać na te elementy (oprócz wymienionych powyżej):
| Dyrektywa | Treść |
|---|---|
frame-src |
https://*.fls.doubleclick.net |
Merchant Center
Aby korzystać z Merchant Center, dostawca usług w chmurze musi zezwalać na te działania:
| Dyrektywa | Treść |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://*.merchant-center-analytics.goog |
connect-src |
https://*.merchant-center-analytics.goog |
Skrypt service worker
Aby używać Service Workera do konwersji rozszerzonych, sygnałów danych użytkownika i konwersji w usługach reklamowych Google, zasady CSP muszą zezwalać na te działania:
| 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 Tag Assistant 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.