Content Security Policy (CSP) è uno standard di sicurezza web ampiamente supportato, progettato per impedire determinati tipi di attacchi basati sull'iniezione, dando agli sviluppatori il controllo sulle risorse caricate dalle loro applicazioni. Utilizza questa guida per capire come implementare Google Tag Manager sui siti che utilizzano un CSP.
Attivare il tag contenitore per utilizzare CSP
Per utilizzare Google Tag Manager in una pagina con un CSP, il CSP deve consentire l'esecuzione del codice del contenitore di Tag Manager. Questo codice è creato come codice JavaScript in linea che inserisce lo script gtm.js. Esistono diversi modi per farlo, ad esempio l'utilizzo di un nonce o di un hash. Il metodo consigliato è utilizzare un
nonce, che deve essere un valore casuale e non prevedibile generato dal server
singolarmente per ogni risposta. Fornisci il valore nonce nella direttiva script-src dei Criteri di sicurezza del contenuto:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com www.google.com
Utilizza quindi la versione del codice del contenitore di Tag Manager in linea che riconosce il nonce. Imposta l'attributo nonce dell'elemento dello script in linea sullo stesso valore:
<!-- 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 propagherà quindi il nonce a tutti gli script che aggiunge alla pagina.
Esistono altri approcci per abilitare l'esecuzione di uno script in linea, ad esempio fornire l'hash dello script in linea nel CSP.
Se gli approcci consigliati con nonce o hash non sono fattibili, è possibile
abilitare lo script in linea di Tag Manager aggiungendo la 'unsafe-inline'
direttiva alla sezione script-src del CSP.
Per utilizzare questo approccio, nel CSP sono necessarie le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| script-src | 'unsafe-inline' https://www.googletagmanager.com |
| img-src | www.googletagmanager.com |
| connect-src | www.googletagmanager.com www.google.com |
Variabili JavaScript personalizzate
A causa della modalità di implementazione delle variabili JavaScript personalizzate, queste
restituiscono undefined in presenza di un CSP, a meno che non venga fornita la
'unsafe-eval' direttiva nella sezione script-src del CSP.
| Direttiva | Contenuti |
|---|---|
| script-src | 'unsafe-eval' |
Modalità di anteprima
Per utilizzare la modalità di anteprima di Google Tag Manager, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| 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 (Google Analytics)
Per utilizzare il tag Google Analytics 4 (Google Analytics), il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| 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 |
Per le implementazioni di Google Analytics 4 (Google Analytics) che utilizzano Google Signals, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| 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://www.googletagmanager.com |
Google Ads
Per utilizzare un tag di conversione, remarketing o Linker conversioni di Google Ads, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| 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> |
Beacon dati utente Google Ads
Per utilizzare i beacon dati utente Google Ads quando vengono eseguiti in contesti sicuri, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| script-src | https://www.googletagmanager.com |
| frame-src | https://www.googletagmanager.com |
| connect-src | https://google.com https://www.google.com |
Il beacon dati utente Google Ads non viene eseguito in contesti non sicuri, pertanto la configurazione CSP in questi casi non è applicabile.
Floodlight
Gli utenti di Floodlight possono attivare i CSP utilizzando le seguenti configurazioni. Sostituisci i valori
<FLOODLIGHT-CONFIG-ID> con un ID inserzionista
Floodlight specifico o con * per consentire qualsiasi ID inserzionista:
Per tutti gli utenti:
| Direttiva | Contenuti |
|---|---|
| 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 |
Per i beacon "script personalizzati":
| Direttiva | Contenuti |
|---|---|
| frame-src | https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net |
Per i tag immagine:
| Direttiva | Contenuti |
|---|---|
| img-src | https://ad.doubleclick.net https://ade.googlesyndication.com |
Service worker
Per utilizzare il service worker per la corrispondenza avanzata, i beacon dati utente e le conversioni di Google Ads, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| frame-src | https://www.googletagmanager.com |
Risolvere i problemi con Tag Assistant
Per risolvere i problemi relativi ai Criteri di sicurezza del contenuto (CSP), utilizza Tag Assistant. Tag Assistant visualizzerà l'elenco delle risorse bloccate dai Criteri di sicurezza del contenuto.
Apri Tag Assistant e inserisci l'URL del tuo sito web. Si apre una nuova scheda con il tuo sito web.
Se i Criteri di sicurezza del contenuto nella pagina bloccano una risorsa, nella sezione Problemi della pagina di Tag Assistant viene visualizzato un problema relativo ai CSP.

Seleziona Visualizza problema accanto al problema relativo ai CSP per visualizzare l'elenco di tutte le risorse bloccate nella pagina.

Aggiungi tutte le risorse bloccate ai Criteri di sicurezza del contenuto.