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
11,451 sites
89
drupal.org

Instalar

Drupal 11, 10, 9 v1.2.16
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
COOKiES /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.

Configuración de COOKiES /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.

Textos del widget COOKiES /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.

Entidades de grupo de servicios COOKiES /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.

Entidades de servicios 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.

Documentación de cookies /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

Permite configurar las etiquetas de texto traducibles que se muestran en el widget de consentimiento de COOKiES.

Permite configurar los ajustes principales de COOKiES, incluyendo propiedades de cookies, comportamiento del banner y opciones de biblioteca.

Permite crear, editar y eliminar servicios y grupos de servicios de COOKiES.

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
El banner de cookies no aparece

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.

Error de carga de biblioteca - sigue cargando desde CDN a pesar de la configuración local

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.

Los servicios no bloquean el contenido

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.

La traducción no funciona para los textos de cookies

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.

El diálogo de configuración no se abre a través del enlace del menú

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.

El consentimiento del usuario autenticado no persiste

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.