Privacidad y minimización criptográfica de datos
Analytics House funciona al 100 % en Cloudflare Workers y Cloudflare D1. Está diseñado para que los datos personales se depuren en memoria, en el perímetro de la red, antes de almacenarse, y para que las sales diarias se destruyan criptográficamente una vez sellados los resúmenes agregados.
Nunca se almacena
- Ninguna cookie, y nada escrito en el almacenamiento del navegador de tus visitantes. Las visitas se agrupan en el servidor.
- Nunca se escriben en disco ni en registros la dirección IP del cliente ni la cadena
User-Agenten bruto. - Ni cadenas de consulta ni fragmentos de URL (solo rutas), y del sitio de referencia solo el nombre de host.
- Las solicitudes con
Sec-GPC: 1(Global Privacy Control) oDNT: 1(Do Not Track) se descartan de forma predeterminada con204 No Content.
Consentimiento y banners de cookies
El script de seguimiento nunca instala cookies ni escribe en el almacenamiento del navegador del visitante. En su lugar, las visitas se agrupan en nuestros servidores. Lo único que lee es un indicador de exclusión (ea_ignore en localStorage) que el propio visitante activa para oponerse. Las normas de consentimiento se aplican a cualquier almacenamiento o acceso en el dispositivo, no solo a las cookies:
- Reino Unido. Desde el 5 de febrero de 2026, las Privacy and Electronic Communications Regulations (modificadas por la Data (Use and Access) Act 2025) permiten almacenar o leer información en un dispositivo sin consentimiento cuando la única finalidad es recopilar estadísticas sobre el uso de tu sitio web para mejorarlo, la información no se comparte con otros fines y se informa claramente a los visitantes y se les ofrece una forma sencilla y gratuita de oponerse. Analytics House no usa tus datos para ningún otro fin. Para acogerte a esta excepción, menciona Analytics House en tu aviso de privacidad y ofrece la opción de exclusión que se describe más abajo.
- Unión Europea. Las normas de privacidad electrónica (ePrivacy) no prevén ninguna excepción equivalente para la analítica. Como el script de seguimiento no almacena nada, la cuestión principal es la comprobación del indicador de exclusión; consulta con tu asesor si tu configuración necesita consentimiento.
- En todas partes. Sigues necesitando una base jurídica conforme al RGPD (normalmente, el interés legítimo) y un aviso de privacidad que mencione Analytics House. Nuestro Anexo de tratamiento de datos recoge las condiciones entre responsable y encargado del tratamiento.
Cómo ofrecer una opción de exclusión. Nunca se hace seguimiento de los navegadores que envían Global Privacy Control o Do Not Track. También puedes añadir un enlace de exclusión a tu aviso de privacidad; activa en el navegador del visitante un indicador que el script de seguimiento comprueba antes de enviar nada:
<a href="#" onclick="localStorage.setItem('ea_ignore','1');this.textContent='You are opted out';return false">
Opt out of website statistics
</a>Esta sección es información general para ayudarte a decidir, no asesoramiento jurídico.
Sal diaria efímera y destrucción criptográfica
- Cada día UTC se genera una nueva sal aleatoria de 256 bits mediante
crypto.getRandomValues(), que se guarda en D1 con la clavesalt:YYYY-MM-DD. - Los identificadores de visitante y de sesión son resúmenes unidireccionales
SHA-256(daily_salt | day | project_id | ip | ua)truncados a 64 bits. La sal secreta es la clave: sin ella, el hash no puede recalcularse a partir de una dirección IP. - Cuando el Cron Trigger que se ejecuta cada 15 minutos sella un día UTC completo en
rollup_dayyrollup_dim,shredExpiredSalts()elimina de forma permanente de D1 la sal de ese día. Sin ella, en la práctica no es posible volver a vincular los identificadores de visitante pasados con direcciones IP ni relacionarlos entre sí de un día a otro.
Depurador automático de datos personales en el perímetro
- Los segmentos de ruta de URL que contienen direcciones de correo electrónico (
[email]), UUID ([uuid]), JWT ([jwt]), direcciones IPv4 ([ip]) o tokens secretos de alta entropía ([token]) se enmascaran automáticamente antes de almacenarse. - Las propiedades de los eventos personalizados se depuran: las claves sensibles (
email,password,token,secret,ssn,phone,api_key, etc.) y los datos personales que aparecen dentro de los valores (también los números de tarjeta de crédito validados con el algoritmo de Luhn) se sustituyen por[REDACTED]. - Los valores de
user_idque parecen direcciones de correo electrónico o UUID (o todos los valores deuser_idsistrict_privacyestá activado) se transforman en un hash con la sal diaria.
Modo sin historial en bruto y k-anonimato
- Modo sin historial en bruto (
ephemeral_raw): elimina las filas en bruto deeventscorrespondientes a un día UTC en cuanto se sellan sus tablas de resumen agregadas. - k-anonimato (
k_anonymity): suprime cualquier fila de desglose por región o ciudad con menos dekvisitantes únicos (configurable de2a100). - Proxy de Worker propio sin IP: cada proyecto ofrece en su configuración un script de Cloudflare Worker listo para desplegar que elimina las IP de los visitantes en el perímetro de tu propio dominio y reenvía un resumen opaco
X-EA-Visitor-Relay.
Manifiesto de auditoría de privacidad en tiempo real
Consulta GET /projects/:id/privacy (o GET /public/:token/privacy para paneles compartidos) para revisar en tiempo real el estado de la sal activa, los hashes de Subresource Integrity (sha384) y las garantías de privacidad activas del proyecto.