Guía de implementación del consentimiento de cookies: gestión del consentimiento conforme a la ley

Implemente un consentimiento de cookies que cumpla con GDPR, ePrivacy, CCPA y regulaciones globales. Cubre banners de consentimiento, categorización de cookies e integración de CMP.

E
ECOSIRE Research and Development Team
|16 de marzo de 20269 min de lectura1.9k Palabras|

Parte de nuestra serie Compliance & Regulation

Leer la guía completa

Guía de implementación del consentimiento de cookies: gestión del consentimiento conforme a la ley

Se han emitido más de 400 millones de euros en multas conforme al RGPD específicamente por violaciones del consentimiento de las cookies desde 2020. La CNIL francesa multó a Google con 150 millones de euros y a Facebook con 60 millones de euros por hacer que fuera más fácil aceptar cookies que rechazarlas. El consentimiento de cookies ya no es un ejercicio de casilla de verificación: es un área de la ley de privacidad que se aplica estrictamente con requisitos técnicos específicos.

Esta guía cubre los requisitos legales, la implementación técnica y la gestión continua del consentimiento de cookies para sitios web y aplicaciones web.

Conclusiones clave

  • Según GDPR y ePrivacy, se debe obtener el consentimiento ANTES de configurar cookies no esenciales, no después
  • El consentimiento debe ser tan fácil de retirar como de otorgar (rechazar con un solo clic, no enterrado en la configuración)
  • Los muros de cookies ("aceptar o abandonar") son ilegales en la mayoría de los estados miembros de la UE
  • Se requiere el modo de consentimiento de Google v2 para Google Analytics y Ads en el EEE desde marzo de 2024.

Requisitos legales por región

Comparación de requisitos de consentimiento de cookies

RequisitoUE (GDPR + ePrivacidad)Reino Unido (PECR + RGPD del Reino Unido)EE. UU. (CCPA/leyes estatales)Brasil (LGPD)Canadá (PIPEDA)
Consentimiento previo para cookies no esencialesSí (optar por participar)Sí (optar por participar)No (modelo de exclusión voluntaria)Sí (optar por participar)Se permite el consentimiento implícito
Se requiere banner de consentimientoNo requerido (pero recomendado)Recomendado
Opciones granulares (por categoría)No requeridoRecomendado
Igual protagonismo para aceptar/rechazarN/AN/A
Se permite el muro de cookiesNo (en la mayoría de los estados)NoN/ANoN/A
Se requiere registro de consentimientoNo
Plazo de renovación del consentimientoMáximo 12 mesesMáximo 12 mesesN/ANo especificadoNo especificado
Se requiere política de cookiesSí (detallado)Sí (detallado)Sí (si se realiza seguimiento)

¿Qué se considera una galleta?

La Directiva de privacidad electrónica cubre no solo las cookies HTTP sino todas las tecnologías que almacenan o acceden a información en el dispositivo del usuario:

  • Cookies HTTP (propias y de terceros)
  • Almacenamiento local y almacenamiento de sesión
  • IndexedDB
  • Toma de huellas digitales del dispositivo
  • Seguimiento de píxeles/balizas web
  • ETags utilizadas para el seguimiento

Categorización de cookies

Categorías estándar

Categoría¿Se requiere consentimiento?EjemplosEstado predeterminado
Estrictamente necesarioNoCookies de sesión, tokens CSRF, cookies de equilibrador de carga, autenticaciónSiempre encendido
Funcional / preferenciasPreferencia de idioma, preferencia de tema, carrito guardadoApagado (hasta consentimiento)
Análisis / rendimientoGoogle Analytics, Hotjar, Plausible (con cookies)Apagado (hasta consentimiento)
Marketing/publicidadGoogle Ads, Facebook Pixel, cookies de retargetingApagado (hasta consentimiento)

Auditando sus cookies

Antes de implementar el consentimiento, audite cada cookie que establezca su sitio web:

// Browser console: list all cookies
document.cookie.split(';').forEach(c => console.log(c.trim()));

// Or use a scanning tool
// cookiebot.com/en/cookie-checker
// 2gdpr.com

Documente cada cookie:

Nombre de la galletaCategoríaPropósitoDuraciónPrimera/tercera parte
CÓDIGO0Estrictamente necesarioAutenticaciónSesiónPrimera fiesta
CÓDIGO0Estrictamente necesarioActualización de token7 díasPrimera fiesta
CÓDIGO0Estrictamente necesarioPreferencia de idioma1 añoPrimera fiesta
CÓDIGO0AnálisisID de visitante de Google Analytics2 añosTercero (Google)
CÓDIGO0ComercializaciónSeguimiento de píxeles de Facebook90 díasTercero (Facebook)

Implementación técnica

Opción 1: Plataforma de gestión de consentimiento (CMP)

CMPNivel gratuitoCumple con el RGPDSocio de Google CMPIAB TCF 2.2
robot de galletasHasta 1 página
OneTrustNo
OsanoHasta 5.000 visitantesNo
TrimestralPlan básicoNo
Script de cookiesHasta 1 sitioNo

Opción 2: Implementación personalizada

Para equipos que quieren control total:

// lib/cookie-consent.ts
type ConsentCategory = 'necessary' | 'functional' | 'analytics' | 'marketing';

interface ConsentPreferences {
  necessary: true; // Always true, cannot be changed
  functional: boolean;
  analytics: boolean;
  marketing: boolean;
  timestamp: string;
  version: string;
}

const CONSENT_COOKIE = 'ecosire_consent';
const CONSENT_VERSION = '2.0';
const CONSENT_DURATION = 365; // days

export function getConsent(): ConsentPreferences | null {
  const cookie = document.cookie
    .split(';')
    .find(c => c.trim().startsWith(`${CONSENT_COOKIE}=`));

  if (!cookie) return null;

  try {
    const prefs = JSON.parse(decodeURIComponent(cookie.split('=')[1]));
    // Invalidate if consent version changed
    if (prefs.version !== CONSENT_VERSION) return null;
    return prefs;
  } catch {
    return null;
  }
}

export function setConsent(preferences: Omit<ConsentPreferences, 'necessary' | 'timestamp' | 'version'>) {
  const consent: ConsentPreferences = {
    necessary: true,
    ...preferences,
    timestamp: new Date().toISOString(),
    version: CONSENT_VERSION,
  };

  const expires = new Date(Date.now() + CONSENT_DURATION * 86400000).toUTCString();
  document.cookie = `${CONSENT_COOKIE}=${encodeURIComponent(JSON.stringify(consent))}; expires=${expires}; path=/; SameSite=Lax`;

  // Apply consent decisions
  applyConsent(consent);

  return consent;
}

function applyConsent(consent: ConsentPreferences) {
  if (consent.analytics) {
    // Initialize Google Analytics
    loadScript('https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX');
  }

  if (consent.marketing) {
    // Initialize marketing pixels
    loadScript('https://connect.facebook.net/en_US/fbevents.js');
  }

  if (!consent.analytics) {
    // Remove analytics cookies
    deleteCookie('_ga');
    deleteCookie('_gid');
  }

  if (!consent.marketing) {
    // Remove marketing cookies
    deleteCookie('_fbp');
    deleteCookie('_fbc');
  }
}

Modo de consentimiento de Google v2

Requerido para Google Analytics y Google Ads en el EEE desde marzo de 2024:

<!-- Set default consent state BEFORE loading Google tags -->
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Default: deny all until user consents
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied',
    'functionality_storage': 'denied',
    'personalization_storage': 'denied',
    'security_storage': 'granted', // Always granted (necessary)
    'wait_for_update': 500 // Wait for CMP
  });
</script>

<!-- Load Google Tag Manager -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>

Cuando el usuario presta su consentimiento:

// Update consent state when user interacts with banner
function updateGoogleConsent(preferences) {
  gtag('consent', 'update', {
    'ad_storage': preferences.marketing ? 'granted' : 'denied',
    'ad_user_data': preferences.marketing ? 'granted' : 'denied',
    'ad_personalization': preferences.marketing ? 'granted' : 'denied',
    'analytics_storage': preferences.analytics ? 'granted' : 'denied',
    'functionality_storage': preferences.functional ? 'granted' : 'denied',
    'personalization_storage': preferences.functional ? 'granted' : 'denied',
  });
}

Requisitos de diseño de banners de consentimiento

Requisitos legales de la UE

  • [] El banner aparece ANTES de que se establezcan cookies no esenciales
  • [] Los botones "Aceptar todo" y "Rechazar todo" tienen la misma prominencia visual
  • [] Selección granular de categorías disponible (no solo todo o nada)
  • [] No hay casillas marcadas previamente para categorías no esenciales
  • [] Explicación en lenguaje claro y sencillo de cada categoría.
  • Enlace a la política de cookies completa
  • [] Retiro del consentimiento accesible en cualquier momento (por ejemplo, enlace al pie de página)
  • Sin muro de cookies (debe poder utilizar el sitio sin su consentimiento)
  • [] Consentimiento registrado con marca de tiempo y versión.

Requisitos de accesibilidad

  • El banner se puede navegar con el teclado
  • Compatible con lector de pantalla (etiquetas ARIA)
  • Contraste de color suficiente
  • No bloquea el contenido esencial de forma permanente

Alternativa de análisis sin cookies

Para sitios web que quieran evitar por completo los banners de consentimiento de cookies:

HerramientaGalletasSe necesita consentimiento del RGPDUbicación de datosPrecio
PlausibleNingunoNoUE$9/mes
brazaNingunoNoUE/EE.UU./Canadá$14/mes
umamiNingunoNoAutohospedadoGratis
Análisis sencillosNingunoNoUE$9/mes
Matomo (configuración sin cookies)OpcionalNo (sin cookies)AutohospedadoGratis

El uso de análisis sin cookies elimina la necesidad de consentimiento analítico, lo que simplifica su banner de consentimiento para que solo cubra las cookies de marketing (si se utilizan).


Preguntas frecuentes

¿Necesitamos un banner de cookies si solo utilizamos las cookies necesarias?

No. Si solo utiliza cookies estrictamente necesarias (autenticación, CSRF, equilibrio de carga), no se requiere consentimiento ni banner. Sin embargo, aún debes revelar estas cookies en tu política de privacidad. En el momento en que agrega análisis (Google Analytics) o cualquier seguimiento de terceros, un banner de consentimiento se vuelve legalmente obligatorio en la UE.

¿Es legal utilizar una "suscripción suave" (seguir navegando = dar consentimiento)?

No, no según el RGPD. El Comité Europeo de Protección de Datos ha declarado explícitamente que la navegación continua, el desplazamiento o acciones pasivas similares no constituyen un consentimiento válido. El consentimiento debe ser una acción afirmativa clara: hacer clic en un botón que diga "Aceptar" o similar. La aceptación suave se consideró no conforme en Planet49 (TJUE, 2019).

¿Cómo manejamos el consentimiento para aplicaciones de una sola página?

Para SPA, verifique el estado de consentimiento al cargar la página inicial y en cada cambio de ruta. Si no se ha dado el consentimiento, no inicialice los scripts de seguimiento. Almacene las preferencias de consentimiento en una cookie de origen (que a su vez es estrictamente necesaria para recordar el consentimiento). Cuando el usuario dé su consentimiento, inicialice los scripts de seguimiento sin necesidad de recargar la página.

¿Necesitamos consentimiento de cookies para nuestro sitio web Odoo?

Si su sitio web Odoo atiende a visitantes de la UE y utiliza análisis, píxeles de marketing o cookies funcionales más allá de lo estrictamente necesario, sí. Odoo tiene un aviso de cookies básico pero no cumple con los estándares GDPR. Implemente un CMP adecuado como Cookiebot o cree una solución personalizada. ECOSIRE proporciona servicios del sitio web de Odoo que incluyen el consentimiento de cookies que cumple con GDPR.


¿Qué viene después?

El consentimiento de las cookies es el aspecto más visible del cumplimiento de la privacidad web. Combínelo con privacidad por diseño para la arquitectura de su aplicación, gobernanza de datos para su programa de datos completo y regulaciones de ciberseguridad para un cumplimiento más amplio.

Comuníquese con ECOSIRE para la implementación del consentimiento de cookies y consultoría sobre cumplimiento de privacidad.


Publicado por ECOSIRE: ayuda a las empresas a implementar el cumplimiento de la privacidad en el que confían los usuarios.

E

Escrito por

ECOSIRE Research and Development Team

Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.

Más de Compliance & Regulation

Lista de verificación de preparación para auditorías: cómo su ERP hace que las auditorías sean un 60 por ciento más rápidas

Lista de verificación completa de preparación de auditoría utilizando sistemas ERP. Reduzca el tiempo de auditoría en un 60 por ciento con documentación, controles y recopilación de evidencia automatizada adecuados.

Regulaciones de transferencia de datos transfronteriza: navegando por los flujos de datos internacionales

Explore las regulaciones de transferencia de datos transfronterizas con SCC, decisiones de adecuación, BCR y evaluaciones de impacto de transferencia para el cumplimiento del RGPD, el Reino Unido y APAC.

Requisitos reglamentarios de ciberseguridad por región: un mapa de cumplimiento para empresas globales

Explore las regulaciones de ciberseguridad en EE. UU., la UE, el Reino Unido, APAC y Medio Oriente. Cubre NIS2, DORA, reglas SEC, requisitos de infraestructura crítica y cronogramas de cumplimiento.

Gobernanza y cumplimiento de datos: la guía completa para empresas de tecnología

Guía completa de gobernanza de datos que cubre marcos de cumplimiento, clasificación de datos, políticas de retención, regulaciones de privacidad y hojas de ruta de implementación para empresas de tecnología.

Políticas de retención de datos y automatización: conserve lo que necesita, elimine lo que deba

Cree políticas de retención de datos con requisitos legales, cronogramas de retención, aplicación automatizada y verificación del cumplimiento de GDPR, SOX e HIPAA.

Gestión de la privacidad de los datos de los empleados: equilibrar las necesidades de recursos humanos con los derechos de privacidad

Administre la privacidad de los datos de los empleados con los requisitos del RGPD, los motivos de procesamiento de datos de recursos humanos, las políticas de monitoreo, las transferencias transfronterizas y las mejores prácticas de retención.

Chatea en whatsapp