# DataFirefly Cookie Consent — Guía completa

> Presentación DataFirefly Cookie Consent es un plugin WordPress y WooCommerce de gestión del consentimiento de cookies. Combina tres bloques: un banner de consentimiento conforme RGPD/CNIL/Garante, la emisión nativa de las…

- Página: <https://www.datafirefly.com/es/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/>
- Idioma: es
- Actualizado el: 2026-07-01
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## Presentación

DataFirefly Cookie Consent es un plugin WordPress y WooCommerce de gestión del consentimiento de cookies. Combina tres bloques: un banner de consentimiento conforme RGPD/CNIL/Garante, la emisión nativa de las señales Google Consent Mode v2 antes de cualquier etiqueta de Google, y una auditoría que detecta los trackers realmente cargados en tu sitio con un registro de prueba exportable.

## Requisitos

- WordPress 6.2 o superior
- PHP 8.0 o superior
- WooCommerce 8.0+ (opcional — el plugin funciona también en WordPress solo, compatibilidad HPOS declarada)
- GTM o GA4 ya instalado si quieres aprovechar el Consent Mode v2 (el plugin no instala las etiquetas de Google por ti)

## Instalación

1. Descarga el archivo `df-cookie-consent.zip` desde tu cuenta DataFirefly.
2. En el admin de WordPress, ve a **Plugins → Añadir nuevo → Subir plugin**, selecciona el ZIP y haz clic en **Instalar ahora**.
3. Haz clic en **Activar**. Al activarse, el plugin crea la tabla de registro `wp_dfcc_consent_log`, genera un salt aleatorio para el hash de las IPs y programa dos tareas cron (purga diaria del registro y escaneo de trackers).
4. Un nuevo menú **Cookie Consent** aparece en la barra lateral del admin con cuatro páginas: Panel, Ajustes, Auditoría y Registro.

El banner se muestra inmediatamente en el frontend con los ajustes por defecto (diseño de barra en la parte inferior, tema claro, modo opt-in, las 4 categorías activadas).

## Configuración del banner

Todos los ajustes se encuentran en **Cookie Consent → Ajustes**.

### Comportamiento general

- **Activar el banner**: interruptor global del plugin.
- **Modo**: opt-in (obligatorio en la UE — ningún cookie no esencial antes del consentimiento) u opt-out.
- **Botón Rechazar todo en el primer nivel**: activado por defecto, conforme a la recomendación CNIL del 17 de septiembre de 2020. No lo desactives si tu audiencia es europea.
- **Duración del cookie de consentimiento**: 180 días por defecto. La elección del usuario se guarda en el cookie `dfcc_consent` (codificado, first-party).
- **Versión de la política**: incrementa este número cuando tu política de cookies cambie de manera sustancial — el banner se volverá a presentar automáticamente a todos los visitantes y el registro guardará la nueva versión.

### Apariencia

- **Diseño**: barra a todo ancho, tarjeta de esquina o modal centrada.
- **Posición**: parte superior o inferior de la página (para los diseños barra y tarjeta).
- **Tema**: claro, oscuro o auto (sigue la preferencia del sistema del visitante vía prefers-color-scheme).
- **Color de acento**: personaliza el color del botón principal.

En móvil (menos de 640 px), el banner pasa automáticamente a pantalla completa para seguir siendo legible. Las animaciones respetan prefers-reduced-motion.

### Categorías de cookies

Cuatro categorías vienen preconfiguradas, cada una con etiqueta y descripción modificables:

- **Necesarias** (necessary) — siempre activas, no desactivables por el visitante: carrito, sesión, seguridad.
- **Funcionales** (functional) — preferencias, idioma, chat.
- **Estadísticas** (analytics) — Google Analytics, Matomo, etc.
- **Marketing** (marketing) — Google Ads, Meta Pixel, remarketing.

### Textos y enlaces

El título del banner, el texto de introducción y las etiquetas de los cuatro botones (Aceptar todo, Rechazar todo, Personalizar, Guardar mis elecciones) son modificables en los ajustes. Rellena también las URLs de tu política de privacidad y de tu política de cookies — se muestran como enlaces discretos bajo los botones. Todos los textos pasan por las funciones de traducción de WordPress: el plugin se entrega con 5 catálogos (FR, EN, ES, DE, IT) y sigue siendo personalizable vía Loco Translate.

## Google Consent Mode v2

Es el corazón técnico del plugin. Desde marzo de 2024, Google exige que los sitios europeos emitan las 7 señales Consent Mode v2 para seguir midiendo las conversiones de Google Ads y construyendo las audiencias GA4.

### Funcionamiento

El plugin imprime un bloque `gtag('consent', 'default', ...)` en el head HTML con la prioridad 1 de wp_head — es decir, antes de cualquier contenedor GTM o etiqueta GA4 cargada de manera estándar. Las 7 señales emitidas:

- `ad_storage`, `ad_user_data`, `ad_personalization` — controladas por la categoría Marketing
- `analytics_storage` — controlada por la categoría Estadísticas
- `functionality_storage`, `personalization_storage` — controladas por la categoría Funcionales
- `security_storage` — siempre granted (recomendación de Google)

El mapeo categorías → señales es automático: no se necesita ninguna configuración manual. Cuando el visitante hace su elección, se emite inmediatamente un `gtag('consent', 'update', ...)` y la elección se reaplica como estado por defecto en cada página siguiente.

### Ajustes de Consent Mode

- **Región EEA**: por defecto, el deny estricto solo se aplica a los 31 países del EEE (más Reino Unido y Suiza) mediante el parámetro region de gtag — el resto del mundo permanece en granted. Detección nativa de Cloudflare vía la cabecera CF-IPCountry.
- **url_passthrough**: activado por defecto. Conserva los identificadores de clic gclid y dclid en las URLs incluso en caso de rechazo, permitiendo la medición de conversiones sin cookies.
- **ads_data_redaction**: activado por defecto. Censura los datos de usuario enviados a Google cuando ad_storage está en denied.
- **wait_for_update**: 500 ms por defecto. Retraso concedido a las etiquetas de Google para esperar la actualización del consentimiento.

### Verificar que todo funciona

1. Abre tu sitio en navegación privada, abre la consola del navegador y escribe `dataLayer`: debes ver la entrada consent default antes de la entrada gtm.js.
2. En Google Tag Assistant o el modo Preview de GTM, la pestaña Consent debe mostrar las 7 señales con su estado.
3. Acepta el banner y vuelve a escribir `dataLayer`: debe aparecer una entrada consent update con los nuevos estados.

## Auditoría de conformidad

La página **Cookie Consent → Auditoría** lanza un escaneo que busca tu página de inicio y analiza el HTML realmente servido.

### Qué detecta el escaneo

- **23 trackers conocidos**: Google Analytics 4, GTM, Meta Pixel, TikTok, LinkedIn, Pinterest, Snapchat, Twitter/X, Bing UET, Matomo, Microsoft Clarity, Hotjar, Mixpanel, Plausible, HubSpot, Intercom, Crisp, Tawk, YouTube, Vimeo, Stripe y otros — cada uno clasificado en su categoría de consentimiento esperada.
- **11 plugins WordPress en riesgo**: MonsterInsights, Site Kit, PixelYourSite, Facebook/Pinterest/TikTok for WooCommerce, HubSpot, MC4WP y otros plugins que inyectan trackers por su cuenta.
- **Cookies del lado servidor**: snapshot con identificación automática del proveedor (_ga, _fbp, _gcl, etc.).

### Puntuación y recomendaciones

El escaneo produce una puntuación de conformidad de 0 a 100 basada en la diferencia entre tus categorías declaradas y los trackers realmente detectados. Los problemas se clasifican en tres niveles — critical, warning, info — cada uno con una recomendación accionable (por ejemplo: un tracker de marketing detectado mientras la categoría está desactivada en el banner). Un escaneo automático también se ejecuta en segundo plano mediante el cron `dfcc_cron_scan_trackers`.

## Registro de consentimiento

La página **Cookie Consent → Registro** lista cada evento de consentimiento guardado en la tabla dedicada `wp_dfcc_consent_log`.

### Datos registrados

- Marca de tiempo UTC, UID anónimo persistente (trazabilidad multi-evento de un mismo visitante)
- Tipo de evento: accept_all, reject_all, custom, withdraw
- Estado completo por categoría, versión de la política y del banner
- IP doblemente protegida: hash SHA-256 con el salt aleatorio generado en la activación (irreversible), más IP truncada a /24 (IPv4) o /64 (IPv6) para análisis anónimo
- User agent, URL de la página, referer, región, idioma, user_id de WordPress si está conectado

### Filtros y exportación

Filtra por período, tipo de evento o UID, y luego exporta a CSV (BOM UTF-8, separador punto y coma — se abre directamente en Excel francés) o a JSON pretty. Estas exportaciones constituyen tu prueba de consentimiento en caso de inspección de la CNIL o del Garante.

### Retención

Por defecto, el registro se conserva 1825 días (5 años, duración recomendada por la CNIL). La purga automática se ejecuta cada noche mediante el cron `dfcc_cron_purge_logs`. La retención es ajustable en los ajustes. A tener en cuenta: la desactivación del plugin conserva los logs (prueba de consentimiento); solo la desinstalación completa vía Plugins → Eliminar purga la tabla, las opciones y los crons.

## Enlace "Gestionar mis cookies" en el pie de página

La normativa exige que el visitante pueda modificar su elección en cualquier momento. Dos opciones:

- **Shortcode**: coloca `` en un widget o menú del pie de página — genera un enlace que reabre la modal de personalización.
- **API JavaScript**: llama a `window.dfcc.open()` desde cualquier elemento de tu tema.

## API para desarrolladores

### API JavaScript

El objeto global `window.dfcc` expone:

- `dfcc.open()` — abre la modal de personalización
- `dfcc.accept()` — acepta todas las categorías
- `dfcc.reject()` — rechaza todas las categorías opcionales
- `dfcc.withdraw()` — retira el consentimiento (se registra un evento withdraw)
- `dfcc.getConsent()` — devuelve el estado completo del consentimiento
- `dfcc.hasConsent('analytics')` — comprueba una categoría dada (útil para condicionar tus propios scripts)

### Endpoint REST

Un endpoint POST está disponible en `wp-json/dfcc/v1/consent` para registrar un evento de consentimiento desde tu propio código (protegido por nonce).

### Hooks de WordPress

- `dfcc_before_banner_render` — acción disparada antes del renderizado del banner (para ocultarlo en ciertas páginas por ejemplo)
- `dfcc_after_consent_logged` — acción disparada después de cada escritura en el registro (para sincronizar un CRM por ejemplo)
- `dfcc_consent_mode_defaults` — filtro sobre los estados por defecto de las 7 señales Consent Mode
- `dfcc_scan_trackers_patterns` — filtro para añadir tus propios patrones de detección al escáner

## Solución de problemas

- **Las señales Consent Mode no aparecen antes de GTM**: comprueba que ningún plugin de rendimiento desplaza o difiere los scripts del head. El bloque dfcc-consent-mode-default debe permanecer inline y no diferido.
- **El banner reaparece en cada visita**: comprueba que un sistema de caché no está sirviendo una página congelada con un cookie antiguo, y que la duración del cookie no está a 0.
- **El escaneo de auditoría falla**: el servidor debe poder hacer una petición HTTP a su propia página de inicio. En algunos alojamientos con loopback bloqueado, autoriza las peticiones locales o comprueba el cortafuegos.
- **Las IPs registradas son las de Cloudflare**: el plugin lee CF-Connecting-IP con prioridad — si el problema persiste, comprueba que tu configuración de servidor transmite bien las cabeceras de Cloudflare.
