WP WordPress Principiante

DataFirefly Cookie Consent — Guía completa

Instalación, configuración del banner, Google Consent Mode v2, auditoría de trackers y registro CNIL/Garante del plugin WordPress DataFirefly Cookie Consent.

Actualizado Versión del módulo 1.0.0

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.

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.

  • 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 Gestionar mis cookies 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.
¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte