Privacidad
Qué se almacena, qué se redacta y por cuánto tiempo.
Este documento describe qué almacena Growth Lab, qué elimina y durante cuánto tiempo.
Identificadores
El SDK genera un visitorId y un sessionId aleatorios, sin relación con ningún dato personal. Se guardan en una cookie de primera parte y en localStorage.
Se escriben en los dos sitios a propósito: una cookie sobrevive a una navegación con JavaScript a medio cargar, y localStorage sobrevive a un banner de cookies que limpia document.cookie. Con solo uno de los dos se pierden visitantes, y un visitante que cambia de id a mitad de un experimento se cuenta dos veces y puede ver otra variante.
No hay fingerprinting: ni canvas, ni fuentes, ni audio, ni ninguna técnica de identificación pasiva.
URLs
Solo se conservan parámetros de una lista blanca: UTM, gclid, fbclid, msclkid, ttclid, y unos pocos de navegación (page, q, sort_by, collection, variant, filter, ref).
Todo lo demás se elimina antes de almacenar.
Es una lista blanca y no negra porque las URLs de e-commerce llevan rutinariamente ?email=, ?phone=, ?token=, enlaces de acceso de un solo uso y referencias de pedido. Enumerar lo que hay que quitar es una batalla perdida.
También se eliminan:
- Fragmentos (
#...), que suelen llevar tokens de acceso. - Credenciales embebidas (
https://usuario:clave@...). - URLs con protocolo distinto de
http/https.
identify
La referencia que envías se hashea con SHA-256 y una sal específica de tu sitio antes de almacenarse. El valor original nunca se guarda.
La sal por sitio significa que el mismo correo produce hashes distintos en dos clientes distintos, así que una filtración de los datos de un cliente no permite cruzarlos con los de otro.
Aun así: no envíes correos ni teléfonos si puedes enviar un id interno.
Direcciones IP
Las IP no se almacenan. Se usan para:
- Derivar un hash (
SHA-256(APP_SECRET : ip), truncado) para rate limiting y detección de tráfico interno. - Determinar el país cuando GeoIP está configurado.
El hash no es reversible sin APP_SECRET y no se expone en ninguna API.
Grabación de sesiones
Ver Session replay para el detalle. Resumen:
- Todos los inputs enmascarados por defecto.
- Contraseñas y datos de pago bloqueados siempre, incluso desactivando el enmascarado.
- Checkout, cuenta y admin no se graban por defecto.
- Barrido de PII en el servidor: correos, tarjetas con Luhn válido, teléfonos, IBAN, CURP.
- Bucket privado, URLs firmadas de 5 minutos.
Retención
| Dato | Por defecto | Máximo |
|---|---|---|
| Eventos | 90 días | 730 días |
| Grabaciones | 30 días | 365 días |
| Agregados de heatmap | 180 días | — |
| Agregados de experimento | 400 días | — |
| Logs de auditoría | Sin límite | — |
Configurable por sitio en Sitios → Privacidad. Los valores se acotan en el servidor: pedir 99.999 días da el máximo, no un error silencioso.
El servicio cron aplica la retención. Para las grabaciones elimina los objetos del bucket antes de la fila de metadatos, de forma que un fallo deja un registro reintentable y no un objeto huérfano pagando almacenamiento.
Consentimiento
Ver Consentimiento. El consentimiento se verifica en el SDK y en el colector; la comprobación del servidor es la que cuenta, porque la página de un cliente puede modificarla cualquiera.
Qué no se envía a terceros
- Los eventos se almacenan solo en la infraestructura de Growth Lab.
- No hay integraciones publicitarias ni de data broker.
- Con Gemini configurado, las funciones de IA envían agregados y texto de la interfaz, nunca datos de visitantes individuales ni contenido de grabaciones.
Tráfico excluido del análisis
Se almacena pero se marca y se excluye de los resultados:
| Marca | Motivo |
|---|---|
is_bot |
User-Agent de crawler o automatización |
is_internal |
IP en la lista interna del sitio |
is_preview |
Sesión de preview/QA |
Se marca en lugar de descartarse porque un pico de crawler descartado en silencio parecería una caída real de la conversión, y nadie podría diagnosticarlo.
Derechos del titular
Para eliminar los datos de un visitante concreto, necesitas su visitorId (visible en el reproductor) o el hash de su identify. Contacta soporte con la organización y el identificador. La eliminación de un sitio borra todos sus eventos, grabaciones y objetos asociados.