Klaro - Gestión de cookies y consentimiento
Implementa la biblioteca JavaScript Klaro Consent Manager en Drupal para la gestión de cookies y consentimiento compatible con GDPR.
klaro
Install
composer require 'drupal/klaro:^3.0'
Overview
El módulo Klaro Cookie & Consent Management integra la biblioteca JavaScript de código abierto Klaro consent manager en Drupal, proporcionando una solución integral para gestionar el consentimiento del usuario para cookies, servicios externos e integraciones de terceros.
El módulo permite a los administradores del sitio configurar qué servicios externos (como Google Analytics, YouTube, Facebook, etc.) requieren el consentimiento del usuario antes de cargarse. Proporciona un diálogo de consentimiento personalizable donde los visitantes pueden otorgar o denegar el consentimiento para servicios individuales o grupos de servicios organizados por propósito.
Las capacidades principales incluyen detección automática y bloqueo de recursos externos, diálogos de consentimiento contextual para contenido incrustado, gestión de cookies con eliminación automática al revocar el consentimiento, y soporte completo para sitios multilingües. El módulo cumple con las regulaciones europeas de privacidad, incluyendo GDPR y la Directiva ePrivacy, implementando principios de privacidad por defecto.
Features
- Diálogo configurable de gestión de consentimiento/cookies para visitantes del sitio con múltiples modos de visualización (silencioso, aviso, modal)
- Atribución automática de recursos externos incluyendo scripts, iframes, imágenes, audio y etiquetas de video
- Soporte para más de 25 servicios predefinidos incluyendo YouTube, Vimeo, Google Analytics, Google Tag Manager, Matomo, Facebook, Instagram, TikTok, LinkedIn y más
- Agrupación de servicios basada en propósitos (Analytics, Publicidad, CMS, Contenido externo, LiveChat, Seguridad, Estilos)
- Diálogos de consentimiento contextual que muestran superposiciones de bloqueo en línea con vistas previas en miniatura para contenido incrustado
- Gestión de cookies con reglas de eliminación configurables incluyendo coincidencia regex, ruta y especificaciones de dominio
- Opciones de almacenamiento configurables usando cookies o localStorage del navegador con expiración personalizable
- Patrones de exclusión y desactivación de URL para controlar el comportamiento de Klaro en rutas específicas
- Plugin de filtro de texto para procesar contenido en formatos de texto
- Soporte completo de traducción mediante el módulo Configuration Translation
- Estilos personalizables con integración de Theme para los temas de administración Olivero, Claro y Gin
- Características de accesibilidad incluyendo etiquetas ARIA y soporte de navegación por teclado
- Ejecución de código de callback JavaScript para lógica de integración personalizada por servicio
- Detección y registro de recursos desconocidos para identificar integraciones externas no cubiertas
Use Cases
Consentimiento básico de cookies GDPR
Instale Klaro, habilite el permiso 'Use Klaro! UI' para usuarios anónimos, configure dialog_mode como 'notice', habilite los servicios de YouTube y Vimeo si usa videos incrustados, y agregue el servicio 'Analytics' si usa Google Analytics o Matomo. Los visitantes verán un aviso de consentimiento y podrán gestionar sus preferencias.
Bloqueo de contenido externo incrustado
Habilite los servicios de YouTube, Vimeo y redes sociales. Active 'Process preprocess_field' y 'Process final HTML' en la configuración de atribución automática. Los iframes externos y los contenidos incrustados mostrarán superposiciones de consentimiento contextual con miniaturas hasta que los usuarios acepten.
Modo silencioso con solo consentimiento contextual
Configure dialog_mode como 'silent' para deshabilitar la ventana emergente de consentimiento. Los usuarios solo verán diálogos de consentimiento contextual cuando encuentren contenido externo bloqueado. Útil para sitios que desean una intrusión mínima mientras bloquean contenido de terceros.
Consentimiento estricto con modal obligatorio
Configure dialog_mode como 'manager' para un modal de consentimiento completo con el que se debe interactuar antes de navegar. Habilite 'Add close button' para cumplir con los requisitos de países que exigen una opción de rechazo. Configure todos los servicios con los propósitos apropiados.
Detección de recursos externos desconocidos
Habilite 'Log unknown resources' para que Klaro registre cualquier recurso externo sin servicios coincidentes. Revise los registros de Drupal para identificar integraciones que necesitan configuraciones de servicio. Opcionalmente, habilite 'Block unknown external resources' para bloquear todo el contenido externo no configurado.
Integración de servicio personalizado
Cree un nuevo servicio para su integración externa personalizada. Agregue las URLs/patrones de origen al campo 'Sources', configure los propósitos apropiados, agregue patrones de cookies para eliminación y, opcionalmente, agregue código JavaScript de callback para lógica personalizada de manejo de consentimiento.
Tips
- Otorgue el permiso 'Use Klaro! UI' a los usuarios anónimos - esto es necesario para que el diálogo de consentimiento aparezca para los visitantes
- Los servicios de YouTube y Vimeo están habilitados por defecto; revise y habilite otros servicios según las necesidades de su sitio
- Use la opción 'Log unknown resources' temporalmente para descubrir integraciones externas que necesitan configuraciones de servicio
- Para acceso al gestor de consentimiento basado en menú, agregue un enlace con rel="open-consent-manager", href="#klaro", o class="open-consent-manager"
- El Text Filter se puede usar para contenido agregado a través de editores de texto, pero se prefiere el preprocesamiento específico de campo
- Cuando use Matomo, utilice el servicio matomo_cookies y agregue _paq.push(['requireCookieConsent']); a la configuración de Matomo para bloqueo solo de cookies
- Process final HTML es experimental - pruebe exhaustivamente ya que el HTML mal formado puede causar problemas
- El módulo agrega el nombre del tema activo como una clase (por ejemplo, klaro-theme-gin) para estilos específicos del tema
Technical Details
Admin Pages 6
/admin/config/user-interface/klaro
Página de configuración principal para el gestor de consentimiento Klaro. Configura el comportamiento del diálogo, opciones de botones, configuración de almacenamiento, procesadores de atribución automática, manejo de recursos desconocidos y opciones de estilo.
/admin/config/user-interface/klaro/texts
Configura todas las cadenas de texto mostradas en los diálogos de consentimiento de Klaro. Todos los textos son traducibles para sitios multilingües.
/admin/config/user-interface/klaro/services
Gestiona los servicios de Klaro (aplicaciones) que requieren consentimiento del usuario. Los servicios definen qué recursos externos se bloquean hasta que se otorga el consentimiento.
/admin/config/user-interface/klaro/services/add
Crea una nueva configuración de servicio de Klaro para gestionar el consentimiento de integraciones externas.
/admin/config/user-interface/klaro/purposes
Gestiona las categorías de propósitos para agrupar servicios en el gestor de consentimiento.
/admin/config/user-interface/klaro/purposes/add
Crea una nueva categoría de propósito para organizar servicios.
Permissions 2
Hooks 3
hook_preprocess_field
Permite a los módulos preprocesar la salida de campos. Klaro utiliza esto para decorar automáticamente los formateadores de campos iframe, oembed, html, video_embed_field_video y simple_gmap.
hook_js_alter
Modifica los archivos JavaScript antes de que se emitan. Klaro utiliza esto para marcar archivos de script para carga basada en consentimiento.
hook_page_attachments_alter
Modifica los adjuntos de página. Klaro utiliza esto para procesar archivos JS adjuntados manualmente basándose en los identificadores de adjuntos configurados.
Security Notes 4
- El permiso 'Administer Klaro!' tiene 'restrict access' establecido en verdadero y solo debe otorgarse a administradores de confianza
- El código de callback ingresado para los servicios se ejecuta como JavaScript - solo los administradores de confianza deben configurar los servicios
- El Text Filter solo debe habilitarse para formatos de texto utilizados por editores de contenido de confianza
- Se aplica filtrado XSS a los campos de texto de consentimiento contextual permitiendo solo las etiquetas a, em y strong