# Integración con Webflow: instala FlowConsent correctamente

Instala FlowConsent en Webflow: pega el snippet en Site settings → Custom code, publica y elimina el Measurement ID de GA de Apps & Integrations.

> Canonical: https://www.flowconsent.com/es/doc/webflow-integration
> Last updated: 2026-07-30
Instalar FlowConsent en Webflow son dos pasos: pega tu snippet en **Site settings → Custom code → Head code** y publica — después **elimina cualquier Measurement ID de Google Analytics de Site settings → Apps & Integrations**. Ese segundo paso no es opcional: Webflow inyecta su integración nativa de GA por encima de tu custom code, donde ninguna herramienta de consentimiento puede bloquearla.

## Paso 1 — Pega el snippet en Head code

Copia tu snippet desde **Builder → Despliegue → Integración** — una pestaña **Webflow** lo genera por ti. Tiene dos partes, y su orden importa:

```html title="Site settings → Custom code → Head code"
<script>
// FlowConsent Loader - COLOCAR ANTES de cualquier otro script en el <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://TU-CODIGO-LICENCIA.consent.flowconsent.com/cookie-manager.js?code=TU_CODIGO_LICENCIA"></script>
```

El primer bloque es el **stub de Consent Mode**: registra valores por defecto `denied` para las cuatro señales de consentimiento de Google en el mismo momento del parseo del HTML. El segundo carga el banner. El stub va primero porque el script del banner se carga de forma asíncrona — el stub, inline, siempre gana la carrera a cualquier etiqueta de Google cargada después.

En Webflow: **Site settings → Custom code → Head code**, pega el snippet al principio del todo, guarda y **publica** el sitio. El custom code solo se sirve al publicar — la vista previa del Designer no lo ejecuta.

## Paso 2 — Elimina el Measurement ID de GA de Apps & Integrations

> [!WARNING]
> Si hay un Measurement ID de Google Analytics configurado en **Site settings → Apps & Integrations**, Webflow inyecta su propio cargador de GA **por encima de tu custom code**. Su `gtag('config')` entra entonces en el dataLayer antes que tus valores por defecto de consentimiento, Google lo procesa sin ninguna restricción y las cookies de analítica se colocan haga lo que haga el banner. **Ninguna CMP puede ganar esta carrera** — la única solución es eliminar el Measurement ID de ese panel y declarar Google Analytics en **Builder → Servicios**, para que el banner solo lo inyecte tras el consentimiento.

No es teórico: los valores por defecto de Consent Mode solo se aplican a las etiquetas que entran en el dataLayer **después** de ellos. Un `gtag('config', 'G-XXXX')` encolado antes se procesa como si el rechazo nunca hubiera existido.

## Cómo detecta FlowConsent la carrera perdida

No tienes que descubrirlo auditando cookies a mano. Al arrancar, el banner inspecciona el dataLayer: si una entrada `gtag('config')` precede a los valores por defecto de consentimiento, registra un error explícito en la consola del navegador y envía un evento `ConsentDefaultRaceLost` a la telemetría de FlowConsent, con los identificadores de las etiquetas afectadas. Si ves ese error, hay una etiqueta inyectada por encima del snippet — en Webflow, casi siempre es el panel Apps & Integrations.

## Verifica la instalación

El **asistente de instalación** (Builder → Integración) comprueba la página publicada por ti, en el orden en que las cosas fallan de verdad:

1. el cargador de FlowConsent está presente, con **tu** código de licencia;
2. el stub de Consent Mode está presente;
3. el stub **precede** a toda etiqueta de Google — y señala específicamente una etiqueta inyectada por los ajustes del sitio de Webflow.

> [!TIP]
> Termina con un escaneo de rechazo desde la pestaña **Conformidad**: carga tu sitio publicado en un navegador real, rechaza el consentimiento y confirma que nada se dispara. Esa es la prueba de que la instalación es correcta — no el hecho de que el banner sea visible.
