# Intégration Webflow : installer FlowConsent correctement

Installer FlowConsent sur Webflow : coller le snippet dans Site settings → Custom code, publier, et retirer le Measurement ID GA de Apps & Integrations.

> Canonical: https://www.flowconsent.com/fr/doc/webflow-integration
> Last updated: 2026-07-30
Installer FlowConsent sur Webflow tient en deux étapes : coller votre snippet dans **Site settings → Custom code → Head code** et publier — puis **retirer tout Measurement ID Google Analytics de Site settings → Apps & Integrations**. Cette seconde étape n'est pas optionnelle : Webflow injecte son intégration GA native au-dessus de votre custom code, là où aucun outil de consentement ne peut la bloquer.

## Étape 1 — Coller le snippet dans Head code

Copiez votre snippet depuis **Builder → Déploiement → Intégration** — un onglet **Webflow** le génère pour vous. Il comporte deux parties, et leur ordre compte :

```html title="Site settings → Custom code → Head code"
<script>
// FlowConsent Loader - PLACER AVANT tout autre script dans le <head>
window.dataLayer=window.dataLayer||[];
function gtag(){dataLayer.push(arguments);}
gtag('consent','default',{
  'ad_storage':'denied',
  'analytics_storage':'denied',
  'ad_user_data':'denied',
  'ad_personalization':'denied',
  'wait_for_update':500
});
gtag('set','url_passthrough',true);
gtag('set','ads_data_redaction',true);
</script>
<!-- FlowConsent CMP -->
<script src="https://VOTRE-CODE-LICENCE.consent.flowconsent.com/cookie-manager.js?code=VOTRE_CODE_LICENCE"></script>
```

Le premier bloc est le **stub Consent Mode** : il enregistre des défauts `denied` pour les quatre signaux de consentement Google dès le parsing du HTML. Le second charge la bannière elle-même. Le stub vient en premier parce que le script de la bannière se charge de façon asynchrone — le stub, inline, gagne toujours la course contre tout tag Google chargé ensuite.

Dans Webflow : **Site settings → Custom code → Head code**, collez le snippet tout en haut, enregistrez, puis **publiez** le site. Le custom code ne part qu'à la publication — l'aperçu du Designer ne l'exécute pas.

## Étape 2 — Retirer le Measurement ID GA de Apps & Integrations

> [!WARNING]
> Si un Measurement ID Google Analytics est renseigné dans **Site settings → Apps & Integrations**, Webflow injecte son propre chargeur GA **au-dessus de votre custom code**. Son `gtag('config')` entre alors dans le dataLayer avant vos défauts de consentement, Google le traite sans aucune restriction, et les cookies analytics sont posés quoi que fasse la bannière. **Aucune CMP ne peut gagner cette course** — la seule correction est de retirer le Measurement ID de ce panneau et de déclarer Google Analytics dans **Builder → Services**, pour que la bannière ne l'injecte qu'après consentement.

Ce n'est pas théorique : les défauts Consent Mode ne s'appliquent qu'aux tags entrés dans le dataLayer **après** eux. Un `gtag('config', 'G-XXXX')` mis en file plus tôt est traité comme si le refus n'avait jamais existé.

## Comment FlowConsent détecte la course perdue

Vous n'avez pas à le découvrir en auditant les cookies à la main. Au démarrage, la bannière inspecte le dataLayer : si une entrée `gtag('config')` précède les défauts de consentement, elle affiche une erreur explicite dans la console du navigateur et remonte un événement `ConsentDefaultRaceLost` à la télémétrie FlowConsent, en nommant les identifiants de tags concernés. Si vous voyez cette erreur, un tag est injecté au-dessus du snippet — sur Webflow, c'est presque toujours le panneau Apps & Integrations.

## Vérifier l'installation

L'**assistant d'installation** (Builder → Intégration) contrôle la page en ligne pour vous, dans l'ordre où les choses cassent en vrai :

1. le chargeur FlowConsent est présent, avec **votre** code licence ;
2. le stub Consent Mode est présent ;
3. le stub **précède** chaque tag Google — et il signale spécifiquement un tag injecté par les réglages du site Webflow.

> [!TIP]
> Terminez par un scan de refus depuis l'onglet **Conformité** : il charge votre site publié dans un vrai navigateur, refuse le consentement et confirme que rien ne part. C'est ça, la preuve que l'installation est correcte — pas le fait que la bannière soit visible.
