La Content Security Policy (CSP) è uno standard di sicurezza web ampiamente supportato, progettato per impedire determinati tipi di attacchi basati su injection, offrendo 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.
Attiva il tag contenitore per utilizzare CSP
Per utilizzare Google Tag Manager su una pagina con un CSP, quest'ultimo deve consentire l'esecuzione del codice del 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, che deve essere un valore casuale e imprevedibile generato dal server singolarmente per ogni risposta. Fornisci il valore nonce nella direttiva Content-Security-Policy script-src-elem come nonce-{SERVER-GENERATED-NONCE} e utilizza la versione compatibile con nonce del codice del contenitore Tag Manager incorporato. Imposta l'attributo nonce sull'elemento script incorporato 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 consentire 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 l'istruzione 'unsafe-inline' alla sezione script-src-elem del CSP.
Per utilizzare questo approccio, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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 |
Variabili JavaScript personalizzate
A causa del modo in cui sono implementate, le variabili JavaScript personalizzate verranno valutate come undefined in presenza di una CSP, a meno che l'istruzione 'unsafe-eval' non sia specificata nella sezione script-src della CSP.
| Direttiva | Contenuti |
|---|---|
script-src |
'unsafe-eval' |
Modalità di anteprima
Per utilizzare la modalità di anteprima di Google Tag Manager, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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
Per utilizzare Google Analytics, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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 |
Per utilizzare Google Analytics senza funzionalità di Google Ads, i CSP devono consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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
Per utilizzare un tag di conversione dell'annuncio, di remarketing o tag Linker conversioni di Google Ads, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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 |
Dati utente di Google Ads
Per utilizzare i beacon dei dati utente di Google Ads quando vengono eseguiti in contesti sicuri, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
connect-src |
https://www.google.com |
frame-src |
https://www.googletagmanager.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
Per utilizzare Floodlight, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
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 |
Per utilizzare gli script personalizzati di Floodlight, il CSP deve consentire anche quanto segue (oltre a quanto sopra):
| Direttiva | Contenuti |
|---|---|
frame-src |
https://*.fls.doubleclick.net |
Merchant Center
Per utilizzare Merchant Center, il CSP deve consentire quanto segue:
| Direttiva | Contenuti |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://*.merchant-center-analytics.goog |
connect-src |
https://*.merchant-center-analytics.goog |
Gateway del tag Google per gli inserzionisti
Quando utilizzi il gateway del tag Google per gli inserzionisti, il tag Google viene caricato da un percorso di misurazione sul tuo sito web e invia i dati a questo percorso (ad esempio https://www.example.com/metrics). Alcuni tag inviano ancora richieste ai domini Google, quindi mantieni le istruzioni elencate per ogni prodotto e consenti anche quanto segue:
| Direttiva | Contenuti | Finalità |
|---|---|---|
script-src-elem |
'self' |
Caricamento del tag Google dal percorso di misurazione |
img-src |
'self' |
Richieste di misurazione |
connect-src |
'self' |
Richieste di misurazione |
worker-src |
'self' |
Service worker |
Assicurati che la CDN o il server web non aggiungano l'intestazione Content-Security-Policy del tuo sito web alle risposte del percorso di misurazione.
In caso contrario, il browser può bloccare il service worker.
Tagging lato server
Quando il tag Google invia dati a un contenitore del server,
il CSP deve consentire anche il server di tagging. Queste istruzioni non sostituiscono quelle elencate per ogni prodotto, ad esempio https://www.googletagmanager.com.
Ciò che aggiungi dipende da dove è ospitato il server di tagging:
| Direttiva | Configurazione della stessa origine | Configurazione dei sottodomini | Finalità |
|---|---|---|---|
img-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
Richieste di misurazione |
connect-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
Richieste di misurazione |
frame-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
Service worker |
worker-src |
'self' |
Non necessaria | Service worker |
script-src-elem |
'self' |
https://TAGGING_SERVER_DOMAIN |
Solo se carichi il tag Google dal tuo server di tagging |
In una configurazione della stessa origine, il server di tagging viene pubblicato da un percorso sul tuo sito web (ad esempio https://www.example.com/metrics). In una configurazione del sottodominio, sostituisci TAGGING_SERVER_DOMAIN con il dominio del server di tagging (ad esempio sgtm.example.com).
In una configurazione della stessa origine, assicurati che la CDN o il server web non aggiunga l'intestazione Content-Security-Policy del tuo sito web alle risposte dal percorso di tagging.
In caso contrario, il browser può bloccare il service worker.
Service worker
Il tag Google utilizza un service worker solo quando utilizzi il gateway del tag Google per gli inserzionisti o il tagging lato server. Per le istruzioni necessarie per ogni configurazione, consulta Gateway del tag Google per gli inserzionisti e Tagging lato server. Se li utilizzi entrambi, la CSP deve consentirli entrambi.
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, viene visualizzato un problema CSP nella sezione Problemi della pagina di Tag Assistant.

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

Aggiungi tutte le risorse bloccate alla tua Content Security Policy.