Saltar al contenido principal

Pipeline de datos

Entender cómo fluyen los datos a través de Zenovay —desde la primera vista de página de un visitante hasta las perspectivas en el tablero— le ayuda a construir y depurar de manera efectiva.

Flujo de seguimiento de eventos

Cuando un visitante llega a un sitio web monitoreado, esto es lo que sucede:

  • El script se carga: Nuestro rastreador ligero (<5KB) se inicializa y genera un ID de visitante (almacenado por 365 días) y un ID de sesión (tiempo de espera de 30 minutos).
  • Se activa la vista de página: Se recopilan datos básicos —URL, referido, tamaño de ventana, agente de usuario— y se envían a nuestra API.
  • Geolocalización: Cloudflare proporciona el país y la región desde el encabezado CF-Connecting-IP. Sin geolocalización del lado del cliente.
  • Procesamiento: Los eventos se validan, se enriquecen con detección de dispositivos y se almacenan en Supabase.
  • Actualización en tiempo real: Los suscriptores del tablero reciben los nuevos datos a través de los canales en tiempo real de Supabase.

Tiempo real vs. agregado

Equilibramos la capacidad de respuesta en tiempo real con el rendimiento de las consultas:

  • Tiempo real: Los conteos de visitantes en vivo, las sesiones activas y los eventos recientes se sirven directamente desde las tablas sin procesar.
  • Agregado: Los gráficos históricos e informes consultan las agregaciones diarias precalculadas para mayor velocidad.
  • Trabajos cron: La agregación diaria se ejecuta a las 00:00 UTC, consolidando los eventos del día anterior.

Grabación de reproducción de sesiones

La reproducción de sesiones usa la librería rrweb para capturar cambios del DOM:

  • Grabación: rrweb observa mutaciones del DOM, movimientos del ratón, desplazamientos y entradas (con datos sensibles enmascarados).
  • Fragmentación: Los eventos se agrupan en fragmentos (máx. 10MB comprimidos) y se cargan a la API.
  • Almacenamiento: Los fragmentos se almacenan en Supabase Storage con metadatos de sesión en PostgreSQL.
  • Reproducción: El tablero obtiene fragmentos bajo demanda y usa rrweb-player para reconstruir la sesión.

Recopilación de mapas de calor

Los mapas de calor agregan datos de interacción de muchas sesiones:

  • Seguimiento de clics: Las coordenadas de elementos y los conteos de clics se registran en relación con la ventana.
  • Profundidad de desplazamiento: Se rastrean las posiciones máximas de desplazamiento para mostrar el compromiso con el contenido.
  • Capturas de pantalla: Las capturas de pantalla de páginas (máx. 2MB) se capturan para la representación superpuesta.
  • Agregación: Los datos de clics y desplazamiento se agregan entre sesiones para obtener significación estadística.

Puntuación de visitantes por aprendizaje automático

Cada visitante recibe una puntuación de valor (0-100) basada en múltiples factores:

  • Multiplicadores de país: Poder adquisitivo geográfico (por ejemplo, Suiza 95, EE. UU. 88, India 28)
  • Señales del dispositivo: El sistema operativo y el navegador se correlacionan con las tasas de conversión (macOS 95, iOS 90, Android 45)
  • Patrones de comportamiento: Duración de la sesión, profundidad de página y métricas de compromiso
  • Refinamiento por ML: Un modelo entrenado ajusta las puntuaciones basándose en datos históricos de conversión

Tareas programadas

Los trabajos en segundo plano mantienen los datos actualizados y los sistemas saludables:

  • Diariamente a las 00:00 UTC: Agregación de analíticas, generación de perspectivas de IA
  • Cada 6 horas: Limpieza de caché, verificaciones de salud
  • Lunes a las 8 AM: Informes semanales de clientes para agencias
  • Cada 5 minutos: Verificaciones de monitoreo de disponibilidad
  • Cada hora: Advertencias de expiración de suscripción
  • Diariamente a las 2 AM: Cierre automático de tickets de soporte inactivos