Content Security Policy (CSP) to powszechnie obsługiwany standard bezpieczeństwa w internecie, który ma zapobiegać niektórym rodzajom ataków opartych na wstrzykiwaniu kodu. Umożliwia on deweloperom kontrolowanie zasobów wczytywanych przez ich aplikacje. Z tego przewodnika dowiesz się, jak wdrożyć Menedżera tagów Google w witrynach, które używają standardu CSP.
Włączanie tagu w kontenerze do używania standardu CSP
Aby używać Menedżera tagów Google na stronie z CSP, standard CSP musi zezwalać na wykonywanie kodu kontenera Menedżera tagów. Ten kod jest wbudowany jako wbudowany kod JavaScript, który wstrzykuje skrypt gtm.js. Można to zrobić na kilka sposobów, np. za pomocą nonce lub hasha. Zalecamy używanie
nonce, czyli nieodgadnionych, losowych wartości, które serwer generuje
indywidualnie dla każdej odpowiedzi. Podaj wartość nonce w dyrektywie script-src standardu Content-Security-Policy:
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 nonce. Ustaw ten sam atrybut nonce w elemencie skryptu wbudowanego:
<!-- 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 wtedy propagować nonce do wszystkich skryptów, które dodaje do strony.
Istnieją inne sposoby na włączenie wykonywania skryptu wbudowanego, np. podanie hasha skryptu wbudowanego w standardzie CSP.
Jeśli zalecane metody nonce lub hash nie są możliwe, możesz włączyć skrypt wbudowany Menedżera tagów, dodając dyrektywę 'unsafe-inline'
do sekcji script-src standardu CSP.
Aby używać tego rozwiązania, w standardzie CSP musisz umieścić 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 niestandardowe zmienne JavaScript będą miały wartość undefined w przypadku standardu CSP, chyba że w sekcji script-src standardu CSP podana jest dyrektywa 'unsafe-eval'.
| Dyrektywa | Treść |
|---|---|
| script-src | 'unsafe-eval' |
Tryb podglądu
Aby korzystać z trybu podglądu Menedżera tagów Google, w standardzie CSP musisz umieścić 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 data: |
Google Analytics 4
Aby używać tagu Google Analytics 4, w standardzie CSP musisz umieścić te dyrektywy. Punkty końcowe oznaczone numerem 1 są przeznaczone specjalnie do funkcji reklamowych , ale zalecamy ich uwzględnienie podczas wstępnej konfiguracji, aby nie trzeba było aktualizować standardu CSP , jeśli później połączysz Google Ads.
| 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, w standardzie CSP musisz umieścić 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ć sygnałów danych użytkownika Google Ads w kontekstach bezpiecznych, w standardzie CSP musisz umieścić 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 Google Ads nie działa w kontekstach niebezpiecznych, więc konfiguracja CSP w takich przypadkach nie ma zastosowania.
Floodlight
Użytkownicy Floodlight mogą włączyć standard CSP, korzystając z tych konfiguracji. Zastąp wartości
<FLOODLIGHT-CONFIG-ID> konkretnym identyfikatorem reklamodawcy Floodlight lub * aby zezwolić na dowolny identyfikator reklamodawcy:
W przypadku 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 |
Skrypt service worker
Aby używać skryptu service worker do konwersji rozszerzonych, sygnałów danych użytkownika i konwersji Google Ads, w standardzie CSP musisz umieścić te dyrektywy:
| Dyrektywa | Treść |
|---|---|
| frame-src | https://www.googletagmanager.com |
Rozwiązywanie problemów za pomocą rozszerzenia Tag Assistant
Aby rozwiązywać problemy ze standardem Content Security Policy (CSP), użyj rozszerzenia Tag Assistant. Rozszerzenie Tag Assistant wyświetli listę zasobów, które są blokowane przez standard Content Security Policy.
Otwórz rozszerzenie Tag Assistant i wpisz adres URL swojej witryny. Otworzy się nowa karta z Twoją witryną.
Jeśli standard Content Security Policy na Twojej stronie blokuje zasób, w sekcji Problemy ze stroną w rozszerzeniu 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.