COOKiES Gestión de Consentimiento
Módulo de gestión de consentimiento de usuario para Drupal que permite el manejo de cookies compatible con GDPR y la integración de servicios de terceros con una interfaz de usuario completamente configurable y traducible.
cookies
Instalar
composer require 'drupal/cookies:^1.2'
Overview
COOKiES es una solución integral de gestión de consentimiento de usuario para sitios Drupal que necesitan cumplir con GDPR y regulaciones de privacidad similares. El módulo permite que los módulos de integración de terceros existentes continúen siendo utilizados mientras asegura que los usuarios deben aceptar el uso de cookies antes de que se instalen.
Construido sobre la biblioteca JavaScript cookiesJSR, COOKiES proporciona un banner de consentimiento de cookies totalmente responsivo y traducible con control granular sobre las categorías de servicios (seguimiento, marketing, social, funcional, video, rendimiento). Los administradores del sitio pueden configurar servicios individuales con información detallada del procesador, enlaces a políticas de privacidad y textos de marcador de posición personalizados que aparecen cuando el contenido está bloqueado.
El módulo genera automáticamente documentación compatible con GDPR que lista todos los servicios configurados y sus detalles de procesamiento de datos. Esta documentación puede mostrarse como una página dedicada, incrustarse mediante un Block, o insertarse usando el token [cookies:docs]. Para usuarios autenticados, las preferencias de consentimiento pueden almacenarse en la base de datos y restaurarse en diferentes navegadores y sesiones.
Importante: No se asume ninguna responsabilidad respecto al cumplimiento del GDPR. Los administradores del sitio son responsables de asegurar la configuración adecuada y el cumplimiento legal.
Features
- Banner de consentimiento de cookies totalmente responsivo con opciones de Aceptar Todo, Rechazar Todo y Configuración granular
- Soporte completo de traducción para todo el texto de la interfaz a través del sistema de traducción de configuración de Drupal
- Gestión de consentimiento a nivel de grupo o servicio individual con grupos de servicios configurables (Seguimiento, Marketing, Social, Funcional, Video, Rendimiento)
- Documentación compatible con GDPR generada automáticamente que muestra detalles del procesador, políticas de privacidad e información de cookies
- Almacenamiento persistente de consentimiento para usuarios autenticados en diferentes navegadores y sesiones
- Solución de dos clics para contenido externo (iframes, embeds, videos) a través del submódulo cookies_filter
- Estilizado CSS personalizable mediante variables CSS o reemplazo completo de hoja de estilos
- Soporte de Token ([cookies:docs]) para incrustar documentación de cookies en el contenido
- Carga de biblioteca JavaScript desde CDN o instalación local
- Opción de visualización del banner activada por desplazamiento para mejorar la velocidad de la página
- Configuración de cookies configurable incluyendo nombre, expiración, dominio, indicador seguro y atributo SameSite
- Enlace de menú dinámico en el menú Herramientas para abrir el diálogo de configuración de cookies
Use Cases
Consentimiento básico de cookies GDPR
Instala COOKiES y coloca el bloque Cookies UI en tu tema. Configura los grupos de servicios y servicios que coincidan con las integraciones de terceros de tu sitio. Añade enlaces a las páginas de política de privacidad e información legal. Los usuarios ven el banner de consentimiento en su primera visita y pueden ajustar sus preferencias en cualquier momento a través del diálogo de configuración.
Integración con Google Tag Manager
Habilita el submódulo cookies_gtag junto con el módulo google_tag. Se crea automáticamente un servicio 'gtag'. Los scripts de GTM no se cargarán hasta que el usuario acepte las cookies de seguimiento. Configura los detalles del procesador con la información de Google LLC para la documentación.
Incrustación de video con consentimiento
Habilita el submódulo cookies_video. Las incrustaciones de medios de video (YouTube, Vimeo) muestran un marcador de posición con un botón de consentimiento en lugar de cargarse inmediatamente. El usuario puede aceptar específicamente las cookies de video o aceptar todas las cookies.
Integración de servicios de terceros personalizados
Crea una nueva entidad de servicio COOKiES para tu integración personalizada. En tu módulo, usa el servicio cookies.knock_out para verificar si es necesario el bloqueo. Escucha los eventos JavaScript cookiesjsrUserConsent para inicializar tu servicio cuando se otorgue el consentimiento. Usa el plugin jQuery cookiesOverlay() para mostrar marcadores de posición.
Consentimiento de cookies multilingüe
Todos los textos de COOKiES son traducibles a través de la traducción de configuración de Drupal. Ve a /admin/config/system/cookies/texts/translate para añadir traducciones para cada idioma. La documentación de servicios y las descripciones de grupos también admiten traducción.
Consentimiento a nivel de grupo para interfaz simplificada
Habilita 'Group consent' en la configuración de COOKiES. Los usuarios ven solo los grupos de servicios (Seguimiento, Marketing, etc.) sin interruptores individuales de servicios. Combínalo con 'Display cookie documentation links' para proporcionar información detallada del servicio en una página separada.
Persistencia del consentimiento para usuarios autenticados
Habilita 'Store consent for authenticated users' en las opciones de callback. Las preferencias de los usuarios que han iniciado sesión se guardan en la base de datos. Cuando inician sesión en un navegador diferente, sus preferencias de consentimiento se restauran automáticamente.
Solución de dos clics para contenido de texto
Habilita el submódulo cookies_filter. Añade el COOKiES Filter a un formato de texto. El contenido con iframes, incrustaciones o imágenes externas muestra un marcador de posición de consentimiento. Los usuarios deben hacer clic para aceptar las cookies antes de que se cargue el contenido externo.
Tips
- Usa variables CSS para personalizar la apariencia del banner de cookies sin reemplazar completamente la hoja de estilos. Consulta la documentación de cookiesJSR para ver las variables disponibles.
- El token [cookies:docs] puede usarse en el contenido para incrustar la documentación de cookies en cualquier lugar, como en tu página de política de privacidad.
- Establece el límite de scroll a un valor >= 1 para diferir la carga de la biblioteca y mejorar las puntuaciones de velocidad de página.
- Para el cumplimiento del GDPR en Italia, habilita 'Deny all services on Layer close' para tratar el botón X como una acción de rechazo.
- Al crear integraciones de servicios personalizados, usa nombres de máquina consistentes entre tu entidad de servicio y la clave de servicio de JavaScript.
- Añade los detalles de la empresa procesadora (URL de política de privacidad, contacto) para proporcionar documentación GDPR completa automáticamente.
- Usa el modo de consentimiento por grupo con enlaces de documentación cuando tengas muchos servicios para simplificar la interfaz de usuario.
Technical Details
Admin Pages 6
/admin/config/system/cookies
Página de resumen que proporciona acceso a todas las secciones de configuración de COOKiES, incluyendo configuración base, textos del widget, grupos de servicios y servicios individuales.
/admin/config/system/cookies/config
Configura los ajustes principales del sistema de gestión de consentimiento COOKiES, incluyendo propiedades de cookies, comportamiento del banner, opciones del diálogo de configuración, ajustes de la biblioteca JavaScript, estilos y opciones de callback.
/admin/config/system/cookies/texts
Configura todas las etiquetas de texto traducibles, mensajes y enlaces mostrados en la interfaz de consentimiento de cookies. Todos los textos soportan el sistema de traducción de configuración de Drupal para sitios multilingües.
/admin/config/system/cookies/cookies-service-group
Gestiona grupos de servicios que organizan los servicios de cookies individuales en categorías (ej., Seguimiento, Marketing, Social). Los grupos se muestran como pestañas en el diálogo de configuración y organizan la documentación de cookies.
/admin/config/system/cookies/cookies-service
Gestiona servicios de cookies individuales que representan integraciones de terceros que requieren consentimiento del usuario. Cada servicio pertenece a un grupo y puede tener información detallada del procesador, textos de marcador de posición personalizados y documentación.
/cookies/documentation
Página pública que muestra documentación completa de todos los servicios de cookies configurados, organizados por grupo. Muestra detalles del procesador, enlaces de política de privacidad y descripciones de servicios según lo requiere el RGPD.
Permisos 3
Hooks 1
hook_cookies_user_consent
Se invoca cuando un usuario cambia sus preferencias de consentimiento de cookies. Usa este hook para realizar operaciones de backend basadas en cambios de consentimiento mientras se mantiene la capacidad de caché del sitio.
Troubleshooting 6
Asegúrate de que el bloque 'Cookies UI' esté colocado en el diseño de bloques de tu tema y sea visible (verifica la configuración de visibilidad del bloque). Verifica que el bloque esté asignado al tema correcto. Revisa la consola del navegador en busca de errores de JavaScript.
Cuando 'Load Cookies JSR from CDN' está deshabilitado, la biblioteca debe estar instalada en /libraries/cookiesjsr/dist/cookiesjsr.min.js. Descárgala desde https://github.com/jfeltkamp/cookiesjsr y colócala en la ubicación correcta.
Verifica que la entidad de servicio tenga habilitado 'Consent required'. Comprueba que tu código de integración use el servicio cookies.knock_out para determinar el bloqueo. Asegúrate de que el bloque COOKiES UI sea accesible en las páginas donde debe ocurrir el bloqueo.
COOKiES usa traducción de configuración. Navega a /admin/config/system/cookies/texts y haz clic en 'Translate' para añadir traducciones para cada idioma. Limpia las cachés después de añadir traducciones.
Asegúrate de que tu enlace del menú use el formato de hash correcto: #editCookieSettings (o tu valor configurado). El bloque COOKiES UI debe estar presente en la página para que se abra el diálogo.
Habilita 'Store consent for authenticated users' en /admin/config/system/cookies/config bajo Callback options. Esto almacena el consentimiento en el almacenamiento key-value y lo restaura al iniciar sesión.
Security Notes 5
- No se asume ninguna responsabilidad con respecto al cumplimiento del GDPR. Los administradores del sitio son responsables de la configuración adecuada y el cumplimiento legal.
- Configura el atributo SameSite de la cookie apropiadamente: 'Strict' proporciona la mayor seguridad pero puede afectar la funcionalidad entre sitios.
- Habilita 'Secure mode' (solo HTTPS) para sitios de producción para evitar la transmisión de cookies a través de conexiones no cifradas.
- La cookie que almacena las preferencias de consentimiento no contiene información de identificación personal, solo indicadores de aceptación de servicios.
- Al almacenar el consentimiento de usuarios autenticados, las preferencias están vinculadas al ID de usuario y se almacenan en el almacenamiento key-value de Drupal.