Mejora de la supervisión de la experiencia del cliente en Twitch con QoUX
Sobre el autor: soy Chirag Sachdeva, un ingeniero aeroespacial convertido en ingeniero de software en el equipo de suscripciones de Twitch. Llevo cuatro estupendos años en Twitch, trabajando en iniciativas como suscripciones, regalos, Turbo y el emblema de fundador. Para mí, la experiencia del cliente siempre es primordial y es uno de los factores que impulsan mi trabajo aquí en Twitch.
En el dinámico mundo del streaming en directo, la calidad de la experiencia del usuario afecta directamente a la retención y satisfacción de los espectadores. Por eso, me entusiasma compartir cómo Twitch transformó sus capacidades de supervisión mediante la iniciativa Calidad de la Experiencia del Usuario (Quality of User Experience o QoUX), que nos ha permitido comprender el comportamiento del usuario, detectar los problemas que afectan al usuario más rápidamente y con menos esfuerzo, y responder con rapidez.
El desafío
A pesar de supervisar detenidamente el back-end, nos encontramos con un punto ciego crítico: entender exactamente cómo los usuarios experimentan nuestra plataforma en tiempo real. Veamos un ejemplo específico que ilustra este problema.
Imagina que eres un espectador de Twitch que quiere regalar una suscripción de varios meses a tu streamer favorito. Haces clic en el botón de regalar, seleccionas al destinatario, pero, cuando intentas elegir la opción de suscripción de 3 meses, el botón no responde. A ti te parece que la función está rota, pero por nuestra parte, mirando el back-end, todo parece normal.
Esto es exactamente lo que sucedió cuando lanzamos un experimento de regalos que, sin querer, desactivó el botón de selección de varios meses para un pequeño subconjunto de usuarios. Nuestros sistemas de back-end no mostraban errores porque, técnicamente, las solicitudes no fallaban: era el botón, que simplemente no enviaba ninguna solicitud. El código del dispositivo del usuario (el cliente) impedía que la interacción llegara a nuestros servidores.
Las métricas tradicionales del servidor, aunque valiosas, no podían indicarnos si un suscriptor tenía dificultades para completar una compra o si un proceso de regalos estaba fallando en una región específica. Antes de QoUX, nuestros sistemas de supervisión y alertas se centraban principalmente en los servicios de back-end y la infraestructura, dejando lagunas en la detección de este tipo de interrupciones del lado del cliente.
Quizás te preguntes por qué no hicimos la supervisión del lado del cliente desde el principio. Pues bien, es que los inconvenientes son significativos:
- Volumen de datos. La supervisión del lado del cliente genera muchos más datos que la supervisión del back-end. Tenemos millones de usuarios, y cada uno realiza docenas de interacciones, por lo que la cantidad de datos de telemetría pronto puede volverse abrumadora.
- Consideraciones de privacidad. La supervisión del lado del cliente requiere gran cautela en su implementación para respetar la privacidad del usuario y cumplir con las normativas.
- Problemas de fiabilidad. Los sistemas back-end operan en entornos controlados, mientras que la supervisión del cliente debe funcionar en innumerables tipos de dispositivos, navegadores, condiciones de red y extensiones que pueden interferir con el seguimiento.
- Complejidad del desarrollo. Implementar una supervisión excelente del lado del cliente requiere código adicional en cada característica, lo que incrementa el tiempo de desarrollo y la posibilidad de errores.
- Complejidad de la supervisión: transformar eventos sin procesar en información procesable no es fácil. Estos deben ser cuidadosamente agregados y transformados para evitar tanto falsos positivos como falsos negativos.
QoUX nació de la necesidad de supervisar el software donde el cliente interactúa con él (del lado del cliente), pero abordando estos desafíos. Esta iniciativa se ha convertido en una parte fundamental de las capacidades operativas de Twitch, lo que nos permite comprender mejor el comportamiento de los usuarios, al tiempo que identificamos más fácilmente cualquier problema que afecte a los usuarios y reduzca los tiempos de respuesta.
¿Qué es QoUX?
La Calidad de la Experiencia del Usuario (QoUX) es un marco configurable diseñado para supervisar y analizar las experiencias del lado del cliente. Se fundamenta en tres principios básicos:
- Primero del lado del cliente. Supervisa donde el usuario interactúa con Twitch.
- Visibilidad en tiempo real. Información instantánea sobre las experiencias de usuario.
- Métricas accionables. Datos que informan directamente las decisiones de producto.
Cómo funcionan los eventos del lado del cliente
En el corazón de QoUX están los eventos del lado del cliente: señales de telemetría especializadas emitidas directamente desde sus dispositivos. Estos eventos:
- Se emiten por la aplicación cliente. Ya sea la aplicación web de Twitch, la aplicación móvil o la aplicación para consola, el código del cliente genera estos eventos.
- Se activan durante las interacciones clave del usuario. Los eventos se activan cuando los usuarios realizan acciones específicas, como hacer clic en botones, intentar realizar compras o navegar entre páginas.
- Están enriquecidos con datos contextuales. Cada evento contiene detalles sobre el dispositivo del usuario, la región y el componente o característica específica que se está utilizando.
- Están diseñados para tener un impacto mínimo en el rendimiento. Los eventos se agrupan y comprimen para evitar afectar la experiencia del usuario.
Veamos un ejemplo real de cómo funciona:
- Evento sin procesar procedente del cliente: cuando un usuario hace clic en el botón de suscripción de varios meses, se activa un evento que contiene:
- Tipo de botón: “multi_month_selection”
- ID del embudo: “gift_subscription_flow”
- Tipo de evento: “clic”
- Información del cliente: versión del navegador/aplicación, tipo de dispositivo
- Región: ubicación geográfica del usuario
- Marca de tiempo: cuándo ha ocurrido la interacción
- Después de la transformación y agregación, los eventos sin procesar:
- Se transmiten a Kinesis.
- Se procesan por funciones Lambda que los filtran, transforman y agregan.
- Se agrupan en intervalos de 5 minutos (el intervalo varía según el volumen normal de ese tipo de evento).
- Se enriquecen con contexto adicional de nuestros sistemas.
- Lo que aparece al final son los datos procesados, que:
- Se emiten a los paneles de control de CloudWatch con alarmas configuradas.
- Para este evento específico de botón de suscripción de varios meses, si 5 puntos de datos están por debajo de un umbral o no se reciben puntos de datos (es decir, no se hace clic en ese botón) en los últimos 25 minutos, se notifica a nuestros ingenieros de guardia.
La tecnología detrás de QoUX
En el núcleo de las capacidades de supervisión de QoUX se encuentra un marco que facilita la transformación, agregación y transmisión de métricas de eventos. Pero ¿por qué construir un marco personalizado en lugar de simplemente enviar eventos sin procesar a los equipos?
Ventajas del marco QoUX:
- Gestión del volumen de datos. Los eventos de clientes sin procesar ocuparían petabytes de datos, lo que abrumaría a nuestros equipos. QoUX agrega y filtra inteligentemente para ofrecer señales significativas.
- Estandarización. Garantiza una estructura y procesamiento de eventos coherentes en todas las características de Twitch.
- Eficiencia operativa. Los equipos no necesitan construir sus propios canales de procesamiento o sistemas de supervisión.
- Privacidad desde el diseño. Gestiona la PII y los datos confidenciales de forma adecuada a nivel del marco.
Los eventos se publican en un stream de Kinesis, donde las funciones Lambda los transforman, modelan, filtran y agregan antes de publicarse como métricas personalizadas en CloudWatch. El marco combina datos de eventos en distribuciones por minuto con dimensiones definidas por el equipo, comprime y escribe los datos en CloudWatch Metrics directamente o a través del formato de métricas integradas (Embedded Metrics Format, EMF) para logs de alta cardinalidad, permitiendo un análisis adicional con Log Insights y resúmenes de los N más populares con Contributor Insights.
Supervisión y alertas en tiempo real
Las alarmas de CloudWatch no se configuran simplemente con umbrales estáticos. Se entrenan mediante:
- Análisis histórico de patrones normales de uso
- Umbrales adaptativos que cuentan con las variaciones de la hora del día y del día de la semana
- Modelos de aprendizaje automático que detectan anomalías más allá de simples superaciones de umbrales
- Análisis de correlación para reducir los falsos positivos
Estas métricas incluyen:
- Disponibilidad de componentes. Métricas de disponibilidad y latencias a nivel de componente, segmentadas por región.
- Acciones del usuario. Datos de acciones de usuario como clics en botones, intentos de compra y actividades de regalo.
- Errores. Alertas activadas por fallos en estos flujos, incluidos los motivos específicos del fallo.
Impacto real
Volviendo al ejemplo de los regalos de varios meses: cuando lanzamos un experimento de regalos que deshabilitó inadvertidamente el botón de selección de varios meses para un subconjunto de usuarios, QoUX detectó el problema en 25 minutos de la implementación. Antes de QoUX, solo habríamos descubierto este problema cuando los clientes nos informaran de él, lo que nos podría haber llevado horas o incluso días, especialmente en el caso de funciones utilizadas por segmentos más pequeños de nuestra audiencia.
Las alarmas personalizadas de CloudWatch supervisan los picos en las tasas de error, los fallos en acciones críticas y los problemas de latencia, asegurando que podamos detectar interrupciones del lado del cliente o un rendimiento degradado más rápido que nunca.
Casos de uso de QoUX
Supervisión en tiempo real de la experiencia del cliente
La integración de QoUX con CloudWatch permite la supervisión en tiempo real de funciones clave como suscripciones, regalos y proceso de compra. Al rastrear la disponibilidad regional, las latencias y los eventos de fallo de estos componentes, podemos identificar rápidamente las interrupciones y fallos que afectan directamente la experiencia del cliente y los ingresos. Este enfoque ha llevado a la detección de múltiples interrupciones críticas que antes pasaban desapercibidas debido a la falta de supervisión del lado del cliente.
Supervisión del lanzamiento de funciones
Una de las capacidades más destacadas de QoUX es su habilidad para supervisar las interacciones de los usuarios en tiempo real durante el lanzamiento de funciones. Por ejemplo, durante un reciente lanzamiento de una función que modificó un elemento clave de la interfaz de usuario, observamos un aumento inesperado en las cancelaciones de suscripciones entre los usuarios que llevaban mucho tiempo con nosotros. Gracias a las capacidades de supervisión de QoUX, identificamos este problema en los 10 minutos posteriores al lanzamiento. Pudimos ajustar rápidamente la experiencia del usuario al cambiar la visibilidad del elemento problemático de la interfaz, reduciendo significativamente el impacto negativo en la retención de usuarios. Esta rápida capacidad de análisis y respuesta ejemplifica la capacidad de nuestro sistema QoUX de mantener una experiencia de usuario positiva, incluso durante el lanzamiento de características importantes.
Detección avanzada de anomalías mediante CloudWatch Anomaly Detection
Nuestra detección de anomalías utiliza CloudWatch Anomaly Detection, que emplea el aprendizaje automático para establecer líneas de base dinámicas para los patrones de interacción de los usuarios. Así es como lo hemos implementado:
- Creación de referencia. Configuramos CloudWatch para analizar entre 2 y 4 semanas de datos históricos de cada métrica para establecer patrones normales.
- Umbrales adaptables. Además de los umbrales estáticos, usamos las bandas de detección de anomalías de CloudWatch que se ajustan automáticamente a los patrones de la hora del día y del día de la semana.
- Alertas contextuales. Cuando se detectan anomalías, nuestras alertas incluyen un contexto específico, como las razones del fallo, las regiones afectadas y los detalles de los componentes.
Este enfoque ha demostrado ser especialmente efectivo para métricas con patrones cíclicos o tendencias graduales que provocarían falsas alarmas con umbrales estáticos tradicionales.
Supervisión y alertas unificadas entre equipos.
QoUX ha transformado nuestras capacidades de supervisión organizacional al derribar los silos tradicionales y permitir una visibilidad fluida entre equipos. Mediante la visualización entre cuentas de CloudWatch, hemos creado un ecosistema donde los equipos pueden acceder, analizar y configurar alertas de manera independiente sobre métricas compartidas, manteniendo claros los límites de propiedad.
Por ejemplo, cuando surge un problema de cara al cliente en el flujo de suscripción, tanto el equipo de suscripciones como el equipo de tramitación de compra tienen acceso inmediato a la misma fuente de datos. Esta visibilidad compartida permite una coordinación más rápida y una respuesta a incidentes más eficaz, ya que los equipos pueden ver exactamente qué componentes se han visto afectados y colaborar para encontrar la solución sin perder tiempo conciliando diferentes sistemas de supervisión.
El enfoque unificado ha reducido nuestro tiempo medio de detección en aproximadamente un 40 % y ha mejorado la colaboración entre equipos durante los incidentes, ya que todos trabajan con los mismos datos en tiempo real.
Lecciones aprendidas y próximos pasos
Implementar la supervisión del lado del cliente a través de QoUX ha demostrado lo útil que puede ser la visibilidad en tiempo real de las experiencias de los usuarios. Al supervisar donde interactúan los usuarios con la aplicación, obtenemos información inmediata sobre problemas que la supervisión tradicional del back-end podría pasar por alto.
Conclusiones clave
- Empieza desde abajo y ve creciendo. Comienza por los flujos de usuario más críticos, aquellos directamente vinculados a los ingresos o a la funcionalidad principal. En nuestro caso, los flujos de suscripción y tramitación del pago fueron eran los puntos de partida obvios.
- Elige las métricas adecuadas. Céntrate en las métricas que indican directamente el éxito o fracaso del usuario, no solo en el rendimiento técnico. Los clics en botones, las tasas de finalización y las frecuencias de error suelen contar una historia más completa que los tiempos de respuesta del servidor.
- Aprovecha los servicios de AWS de forma eficaz. CloudWatch Anomaly Detection es una herramienta básica excelente para disponer de alertas dinámicas sin requerir conocimientos complejos de aprendizaje automático. La combinación de Kinesis para streaming, Lambda para procesamiento y CloudWatch para supervisión crea una arquitectura flexible y escalable.
- **Equilibra el volumen de datos con la capacidad de acción.** La supervisión del lado del cliente genera significativamente más datos que la del lado del servidor. Sé estratégico sobre lo que recopilas y cómo lo agregas para evitar abrumar tus sistemas y equipos.
Primeros pasos con tu propia implementación de QoUX
- Realiza una auditoría de tu sistema de supervisión actual. Identifica las carencias de tu estrategia de supervisión actual, especialmente en lo que respecta a los componentes e interacciones orientados al usuario.
- Organiza los recorridos clave de los usuarios. Añade la emisión de eventos del lado del cliente a las rutas críticas de tu aplicación, centrándote en:
- Embudo de conversión
- Flujos de autenticación
- Procesos de pago
- Interacciones con características principales
- Crea tu canal de procesamiento. Usa servicios de AWS como Kinesis, Lambda y CloudWatch para recopilar, procesar y visualizar tus eventos del lado del cliente.
- Establece valores iniciales de referencia y configura alertas. Recopila datos durante 2-4 semanas para establecer patrones normales antes de configurar alertas de detección de anomalías.
- Crear visibilidad entre equipos. Asegúrate de que todos los interesados tengan acceso a los mismos datos de supervisión para mejorar la colaboración durante los incidentes.
Al implementar tu propia versión de QoUX, puedes transformar cómo entiendes y respondes a las experiencias de los usuarios, detectando problemas antes de que afecten a tu negocio y creando una plataforma más fiable para tus usuarios.