Utilizzare Tag Manager con un criterio di sicurezza del contenuto

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.

Attivare 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 del contenitore 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 nell'istruzione 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

Quindi, utilizza la versione con nonce del codice contenitore inline di Tag Manager. 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 attivare l'esecuzione di uno script incorporato, ad esempio fornendo l'hash dello script incorporato nel 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 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, i CSP devono 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

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://www.google.com https://google.com https://www.google.<TLD>

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

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 a Content Security Policy (CSP), utilizza Tag Assistant. Tag Assistant mostrerà l'elenco delle risorse bloccate dalla Content Security Policy.

  1. Apri Tag Assistant e inserisci l'URL del tuo sito web. Si apre una nuova scheda con il tuo sito web.

  2. Se la Content Security Policy della tua pagina blocca una risorsa, nella sezione Problemi con la pagina di Tag Assistant viene visualizzato un problema CSP.

    Screenshot di Tag Assistant che mostra il problema relativo a CSP

  3. Seleziona Visualizza problema accanto al problema CSP per visualizzare l'elenco di tutte le risorse bloccate nella pagina. Screenshot di Tag Assistant che mostra il cursore del problema relativo a CSP

  4. Aggiungi tutte le risorse bloccate alla Content Security Policy.