Content Security Policy (CSP) è uno standard di sicurezza web ampiamente supportato che ha lo scopo di prevenire 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 una CSP.
Attiva il tag contenitore per utilizzare CSP
Per utilizzare Google Tag Manager in una pagina con un CSP, quest'ultimo deve consentire l'esecuzione del codice contenitore di Tag Manager. Questo codice è creato come codice
JavaScript incorporato 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, ovvero un valore casuale e non prevedibile che il server genera
individualmente per ogni risposta. Fornisci il valore nonce nella direttiva 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
Poi utilizza la versione del codice del contenitore Tag Manager inline che riconosce il nonce. Imposta l'attributo nonce sull'elemento script inline 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 attivare l'esecuzione di uno script incorporato, ad esempio fornendo l'hash dello script incorporato nella CSP.
Se gli approcci consigliati per nonce o hash non sono fattibili, è possibile
attivare lo script incorporato di Tag Manager aggiungendo la direttiva 'unsafe-inline'
alla sezione script-src della CSP.
Per utilizzare questo approccio, sono necessarie le seguenti direttive nel CSP:
| 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 il valore undefined in presenza di un CSP, a meno che non venga fornita l'istruzione
'unsafe-eval' 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
Per utilizzare il tag Google Analytics 4, i CSP devono includere le seguenti direttive. Gli endpoint contrassegnati con 1 sono specifici per le funzionalità pubblicitarie, ma ti consigliamo di includerli durante la configurazione iniziale in modo che i CSP non debbano essere aggiornati se colleghi Google Ads in un secondo momento.
| Direttiva | Contenuti |
|---|---|
| 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 Endpoint pubblicitari: questi domini sono necessari solo per le implementazioni GA4 collegate a Google Ads o che utilizzano le funzionalità pubblicitarie.
Google Ads
Per utilizzare un tag di conversione, remarketing o tag 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 dei dati utente di Google Ads durante l'esecuzione 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 dei dati utente di Google Ads non viene eseguito in contesti non sicuri, pertanto la configurazione CSP in questi casi non è applicabile.
Floodlight
Gli utenti 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 |
Merchant Center
Per inviare dati a Merchant Center, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| script-src | https://*.googletagmanager.com |
| img-src | https://*.merchant-center-analytics.goog |
| connect-src | https://*.merchant-center-analytics.goog |
Service worker
Per utilizzare il service worker per la corrispondenza avanzata, i beacon dei dati utente e le conversioni di Google Ads, il CSP deve includere le seguenti direttive:
| Direttiva | Contenuti |
|---|---|
| frame-src | https://www.googletagmanager.com |
Risolvi i problemi con Tag Assistant
Per risolvere i problemi relativi alla Content Security Policy (CSP), utilizza Tag Assistant. Tag Assistant mostrerà l'elenco delle risorse bloccate dalla Content Security Policy.
Apri Tag Assistant e inserisci l'URL del tuo sito web. Si apre una nuova scheda con il tuo sito web.
Se la Content Security Policy della tua pagina blocca una risorsa, nella sezione Problemi della pagina di Tag Assistant viene visualizzato un problema CSP.

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

Aggiungi tutte le risorse bloccate alla tua Content Security Policy.