Utiliser Tag Manager avec une Content Security Policy

Content Security Policy (CSP) est un service Web standard de sécurité conçue pour empêcher certains types d'attaques par injection en permettant aux développeurs de contrôler les ressources chargées par leurs applications. Ce guide vous aidera à comprendre comment déployer Google Tag Manager sur les sites utiliser une CSP.

Activer la balise conteneur pour utiliser CSP

Pour utiliser Google Tag Manager sur une page avec une CSP, celle-ci doit autoriser l'exécution du code de votre conteneur Tag Manager. Ce code est intégré Code JavaScript qui injecte le script gtm.js. Il existe plusieurs façons de faire comme l'utilisation d'un nonce ou d'un hachage. La méthode recommandée consiste à utiliser nonce, qui doit être une valeur aléatoire impossible à deviner que le serveur génère individuellement pour chaque réponse. Fournissez la valeur nonce dans le champ Content-Security- Règle script-src:

Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com

Utilisez ensuite la version non nonce du code du conteneur Tag Manager intégré. Définissez la même valeur pour l'attribut nonce de l'élément de script intégré:

<!-- 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 propage ensuite le nonce à tous les scripts qu'il ajoute la page.

Il existe d'autres approches pour permettre l'exécution d'un script intégré, telles que en fournissant le hachage du script intégré dans CSP.

Si les approches de hachage ou de nonce recommandées ne sont pas envisageables, vous pouvez activer le script intégré Tag Manager en ajoutant 'unsafe-inline' à la section script-src du fournisseur de services cloud.

Les directives suivantes sont nécessaires dans CSP pour utiliser cette approche:

script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
connect-src www.googletagmanager.com

Variables JavaScript personnalisées

Compte tenu de la façon dont les variables JavaScript personnalisées sont implémentées, elles renvoie undefined en présence d'une CSP, sauf si 'unsafe-eval' est fournie dans la section script-src de la CSP.

script-src: 'unsafe-eval'

Mode aperçu

Pour utiliser le mode Aperçu de Google Tag Manager, la CSP doit inclure le paramètre directives suivantes:

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)

Pour utiliser la balise Google Analytics 4 (Google Analytics), la CSP doit inclure le paramètre directives suivantes:

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

Pour les déploiements de Google Analytics 4 (Google Analytics) à l'aide de signaux Google, CSP doit inclure les directives suivantes:

script-src:  https://*.googletagmanager.com
img-src:     https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
             https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src: https://*.google-analytics.com https://*.analytics.google.com
             https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
frame-src:   https://td.doubleclick.net

Universal Analytics (Google Analytics)

Pour utiliser la balise Universal Analytics (Google Analytics), la CSP doit inclure le paramètre directives suivantes:

script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com

Pour utiliser une balise de conversion Google Ads, la CSP doit inclure les éléments suivants : directives:

Pour des connexions sécurisées:

script-src: https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com
frame-src: https://www.googletagmanager.com https://td.doubleclick.net

Pour les connexions non sécurisées:

script-src: www.googleadservices.com www.google.com www.googletagmanager.com
img-src: googleads.g.doubleclick.net www.google.com google.com

Pour utiliser une balise de remarketing Google Ads, la CSP doit inclure les éléments suivants : .

Pour des connexions sécurisées:

script-src: https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com
img-src: https://www.google.com https://google.com
frame-src: https://bid.g.doubleclick.net https://td.doubleclick.net

Pour les connexions non sécurisées:

script-src: www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src: www.google.com google.com
frame-src: bid.g.doubleclick.net td.doubleclick.net

Pour utiliser les balises Google Ads pour les données utilisateur lors de l'exécution dans des contextes sécurisés, la CSP doit inclure les directives suivantes:

script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com

La balise Google Ads pour les informations sur l'utilisateur ne s'exécute pas dans des contextes non sécurisés. CSP donc configuration dans ce cas n'est pas applicable.

Floodlight

Les utilisateurs Floodlight peuvent activer les CSP à l'aide des configurations suivantes. Remplacer des valeurs <FLOODLIGHT-CONFIG-ID> avec un Référence annonceur Floodlight ou * pour autoriser toutes les références annonceur:

Pour tous les utilisateurs:

img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net

Pour les "scripts personnalisés" : dans Tag Manager:

frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

Pour les tags d'image:

img-src: https://ad.doubleclick.net

Pour le mode Consentement:

img-src: https://ade.googlesyndication.com