Skip to content

Repetición de sesión (replay)

La tercera capa de medición permite ver, como en un vídeo, cómo un alumno usó una pantalla: dónde pinchó, dónde se quedó parado, dónde se atascó. Es la herramienta de soporte para entender por qué a un jubilado de 67 años "no le funciona" algo que sobre el papel funciona.

Complementa a las otras dos capas: la medición por alumno dice qué pasó; la repetición muestra cómo pasó.

Herramienta muy sensible — con guardarraíles

Grabar cómo navega una persona es delicado. Por eso esta capa nace con enmascarado de datos personales desde el primer día, residencia en la UE, y apagada por defecto. Lee la sección de privacidad entera antes de usarla.

Qué graba, y qué no

  • Graba solo a alumnos que han iniciado sesión dentro del Campus. El equipo (tutores, gestores, admins) no se graba nunca.
  • No graba todo el rato. La grabación arranca apagada y solo se enciende en las pantallas de fricción —el grabador de audio, el reproductor de vídeo y la subida de archivos—, que es donde el público suele atascarse. Navegar el catálogo o los avisos no graba nada.
  • Además, una pequeña muestra aleatoria (~10 %) de sesiones, como red para pillar fallos inesperados fuera de esas pantallas.

Por qué así, y no "grabar todo"

Grabar a los 17.000 alumnos enteros costaría cientos de euros al mes. Grabando solo la fricción + esa muestra nos quedamos dentro del tramo gratuito de la herramienta (PostHog). Es una decisión de coste tan deliberada como la de privacidad.

Dónde se ven las grabaciones: en el panel de PostHog (servidor de la UE, Frankfurt). Como cada sesión se asocia al alumno, soporte puede buscar las grabaciones de un alumno concreto. Se guardan 30 días y luego se borran solas.

Privacidad: lo innegociable

El enmascarado es selectivo: la interfaz fija (títulos de lección, botones, menús) se ve —si no, la grabación no serviría—, y se tapa todo lo que sea un dato personal.

  • Todo lo que el alumno escribe en cualquier campo va tapado siempre.
  • Se enmascara el texto de: nombre y email del alumno, la marca de agua del vídeo (que lleva nombre + email), los mensajes del chat y el texto de feedback.
  • Las imágenes sensibles (foto de perfil/avatar, imágenes del chat) se ocultan enteras — una cara identifica más que un nombre.
  • No se graba nada del tráfico de red: ninguna respuesta de servidor entra en la grabación.

Regla de mantenimiento — cada pantalla nueva

El enmascarado es "todo visible salvo lo que marquemos". Eso significa que la cobertura es responsabilidad nuestra: cualquier pantalla nueva del Campus del alumno que muestre datos personales debe marcarse para taparse. Una pantalla PII nueva sin marcar es una fuga. Existe un inventario de superficies a enmascarar en el código (src/lib/analytics/replay-config.ts) que hay que ampliar al añadir una.

Base legal

La base para grabar es el interés legítimo (mejorar el producto para un público que se atasca), y debe estar declarada en la política de privacidad. Encender la herramienta sin esa declaración publicada no está permitido.

Errores: dónde se miran

La repetición de sesión es solo para ver la grabación. Los errores de la pantalla del alumno no se cuentan aquí: la fuente de verdad de los errores es la medición por alumno (el evento "Error en su pantalla", que va a la base de datos del Campus). La grabación sirve para ver el fallo; el registro del error sirve para contarlo y buscarlo.

Cómo se enciende (y se apaga)

Está apagada por defecto. Encenderla es una decisión de dirección, no un ajuste suelto, porque implica empezar a grabar a personas reales:

  1. Provisionar la clave de PostHog en Vercel.
  2. Confirmar la retención de 30 días en el panel de PostHog.
  3. Publicar la política de privacidad.
  4. Activar la grabación en el panel de PostHog.

Para revertir: quitar la clave y volver a desplegar, o apagar el interruptor en PostHog. Hay un runbook con el paso a paso (posthog-replay-activacion-runbook.md en el repositorio del Campus).

Cómo funciona por dentro (equipo técnico)

Cliente posthog-js montado solo en el layout del Campus del alumno (campus/layout.tsx); hace identify(user_id) para poder buscar por alumno. Toda la política —enmascarado, host EU fijo (no configurable, para que no pueda apuntar a EE. UU.), muestreo < 1, disparo por fricción, red OFF a dos niveles, inventario PII— está codificada como datos con tests en src/lib/analytics/replay-config.ts (buildReplayConfig), de modo que debilitar la privacidad rompe un test en vez de llegar a producción. La feature está tras el flag NEXT_PUBLIC_POSTHOG_KEY: sin clave, no inicializa nada.

Resumen: dónde se ve cada cosa

Quiero…Dónde
Ver cómo un alumno usó una pantallaPanel de PostHog (UE), buscando por ese alumno
Contar/investigar errores de pantallaMedición por alumno — evento "Error en su pantalla"
Encender o apagar la grabaciónPanel de PostHog + clave en Vercel (decisión de dirección)

Documentación interna · Uso exclusivo del equipo de Charly's Way Academy.