Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos

Hay cientos de artículos en Internet sobre los beneficios de analizar el comportamiento de los clientes. En la mayoría de los casos, esto se refiere al sector minorista. Desde análisis de canasta de alimentos, análisis ABC y XYZ hasta marketing de retención y ofertas personales. Se han utilizado varias técnicas durante décadas, se han pensado los algoritmos, se ha escrito y depurado el código: tómelo y úselo. En nuestro caso, surgió un problema fundamental: en ISPsystem nos dedicamos al desarrollo de software, no al comercio minorista.
Mi nombre es Denis y actualmente soy responsable del backend de los sistemas analíticos en ISPsystem. Y esta es la historia de cómo mi colega y yo danil — los responsables de la visualización de datos — intentaron mirar nuestros productos de software a través del prisma de este conocimiento. Empecemos, como siempre, por la historia.

Al principio había una palabra y la palabra era "¿Lo intentamos?"

En ese momento estaba trabajando como desarrollador en el departamento de I+D. Todo empezó cuando Danil leyó aquí sobre Habré. sobre retención — una herramienta para analizar las transiciones de los usuarios en las aplicaciones. Estaba algo escéptico sobre la idea de usarlo aquí. Como ejemplo, los desarrolladores de la biblioteca citaron un análisis de aplicaciones donde la acción objetivo estaba claramente definida: realizar un pedido o alguna otra variación de cómo pagar a la empresa propietaria. Nuestros productos se suministran en las instalaciones. Es decir, el usuario primero compra una licencia y solo entonces comienza su viaje en la aplicación. Sí, tenemos versiones de demostración. Puedes probar el producto allí para no tener problemas.

Pero la mayoría de nuestros productos están dirigidos al mercado del hosting. Se trata de grandes clientes y el departamento de desarrollo empresarial les asesora sobre las capacidades del producto. También se deduce que en el momento de la compra, nuestros clientes ya saben qué problemas les ayudará a resolver nuestro software. Sus rutas en la aplicación deben coincidir con el CJM integrado en el producto, y las soluciones UX les ayudarán a mantener el rumbo. Spoiler: esto no siempre sucede. La introducción a la biblioteca se pospuso... pero no por mucho tiempo.

Todo cambió con el lanzamiento de nuestra startup. cartbee — plataformas para crear una tienda online desde una cuenta de Instagram. En esta aplicación, al usuario se le dio un período de dos semanas para utilizar todas las funciones de forma gratuita. Luego tenías que decidir si te suscribías. Y esto encaja perfectamente en el concepto de “acción ruta-objetivo”. Se decidió: ¡intentémoslo!

Primeros resultados o de dónde sacar ideas

El equipo de desarrollo y yo conectamos el producto al sistema de recopilación de eventos literalmente en un día. Diré de inmediato que ISPsystem usa su propio sistema para recopilar eventos sobre visitas a páginas, pero nada le impide usar Yandex.Metrica para los mismos fines, lo que le permite descargar datos sin procesar de forma gratuita. Se estudiaron ejemplos de uso de la biblioteca y, después de una semana de recopilación de datos, recibimos un gráfico de transición.
Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Gráfico de transición. Funcionalidad básica, otras transiciones eliminadas para mayor claridad.

Resultó exactamente como en el ejemplo: plano, claro, hermoso. A partir de este gráfico, pudimos identificar las rutas y cruces más frecuentes donde la gente pasa más tiempo. Esto nos permitió entender lo siguiente:

  • En lugar de un gran CJM, que cubre una docena de entidades, sólo se utilizan activamente dos. Es necesario además dirigir a los usuarios a los lugares que necesitamos utilizando soluciones UX.
  • Algunas páginas, diseñadas por diseñadores de UX para ser de un extremo a otro, terminan con personas que dedican una cantidad excesiva de tiempo a ellas. Debe averiguar cuáles son los elementos de parada en una página específica y ajustarlos.
  • Después de 10 transiciones, el 20% de las personas comenzaron a cansarse y abandonaron la sesión en la aplicación. ¡Y esto teniendo en cuenta el hecho de que teníamos hasta 5 páginas de incorporación en la aplicación! Debe identificar las páginas donde los usuarios abandonan sesiones con regularidad y acortar el camino hacia ellas. Aún mejor: identifique las rutas habituales y permita una transición rápida desde la página de origen a la página de destino. Algo en común con el análisis ABC y el análisis de carritos abandonados, ¿no crees?

Y aquí reconsideramos nuestra actitud hacia la aplicabilidad de esta herramienta para productos locales. Se decidió analizar un producto usado y vendido activamente: Administrador de máquinas virtuales 6. Es mucho más complejo, hay un orden de magnitud más entidades. Estábamos esperando con entusiasmo para ver cómo resultaría el gráfico de transición.

Sobre decepciones e inspiraciones.

Decepción #1

Era el final de la jornada laboral, el fin de mes y el fin de año al mismo tiempo: el 27 de diciembre. Se han acumulado datos, se han escrito consultas. Faltaban unos segundos para que todo estuviera procesado y pudiéramos ver el resultado de nuestro trabajo para saber dónde comenzaría el próximo año laboral. El departamento de I+D, el director de producto, los diseñadores de UX, el líder del equipo y los desarrolladores se reunieron frente al monitor para ver cómo se ven las rutas de usuario en su producto, pero... vimos esto:
Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Gráfico de transición creado por la biblioteca Retentioneering

Inspiración #1

Fuertemente conectados, decenas de entidades, escenarios no obvios. Sólo estaba claro que el nuevo año laboral comenzaría no con el análisis, sino con la invención de una forma de simplificar el trabajo con dicho gráfico. Pero no podía quitarme la sensación de que todo era mucho más sencillo de lo que parecía. Y después de quince minutos de estudiar el código fuente de Retentioneering, pudimos exportar el gráfico construido al formato de puntos. Esto hizo posible cargar el gráfico en otra herramienta: Gephi. Y ya existe la posibilidad de analizar gráficos: diseños, filtros, estadísticas; todo lo que hay que hacer es configurar los parámetros necesarios en la interfaz. Con este pensamiento en mente, partimos para el fin de semana de Año Nuevo.

Decepción #2

Después de regresar al trabajo, resultó que mientras todos descansaban, nuestros clientes estudiaban el producto. Sí, con tanta fuerza que aparecieron en el almacenamiento eventos que antes no existían. Esto significó que las consultas debían actualizarse.

Un poco de historia para entender la tristeza de este hecho. Transmitimos tanto los eventos que hemos marcado (por ejemplo, clics en algunos botones) como las URL de las páginas que visitó el usuario. En el caso de Cartbee, el modelo “una acción, una página” funcionó. Pero con VMmanager la situación era completamente diferente: se podían abrir varias ventanas modales en una página. En ellos el usuario podría solucionar diversos problemas. Por ejemplo, URL:

/host/item/24/ip(modal:modal/host/item/ip/create)

significa que en la página “Direcciones IP” el usuario agregó una dirección IP. Y aquí se ven dos problemas a la vez:

  • La URL contiene algún tipo de parámetro de ruta: el ID de la máquina virtual. Es necesario excluirlo.
  • La URL contiene el ID de la ventana modal. Necesita “desempaquetar” de alguna manera dichas URL.
    Otro problema fue que los mismos eventos que marcamos tenían parámetros. Por ejemplo, había cinco formas diferentes de acceder a la página con información sobre una máquina virtual de la lista. En consecuencia, se envió un evento, pero con un parámetro que indicaba con qué método el usuario realizó la transición. Hubo muchos eventos de este tipo y todos los parámetros eran diferentes. Y tenemos toda la lógica de recuperación de datos en el dialecto SQL para Clickhouse. Las consultas de entre 150 y 200 líneas comenzaban a parecer algo comunes. Los problemas nos rodeaban.

Inspiración #2

Una mañana, Danil, hojeando con tristeza la solicitud del segundo minuto, me sugirió: "¿Vamos a escribir tuberías de procesamiento de datos?" Lo pensamos y decidimos que si íbamos a hacerlo, sería algo así como ETL. Para que filtre inmediatamente y extraiga los datos necesarios de otras fuentes. Así nació nuestro primer servicio analítico con un backend completo. Implementa cinco etapas principales de procesamiento de datos:

  1. Descargar eventos del almacenamiento de datos sin procesar y prepararlos para su procesamiento.
  2. La aclaración es el "desempaquetado" de esos mismos identificadores de ventanas modales, parámetros de eventos y otros detalles que aclaran el evento.
  3. El enriquecimiento (de la palabra "hacerse rico") es la adición de eventos con datos de fuentes de terceros. En ese momento, esto incluía sólo nuestro sistema de facturación BILLmanager.
  4. El filtrado es el proceso de filtrar eventos que distorsionan los resultados del análisis (eventos de posiciones internas, valores atípicos, etc.).
  5. Cargar eventos recibidos en el almacenamiento, lo que llamamos datos limpios.
    Ahora era posible mantener la relevancia agregando reglas para procesar un evento o incluso grupos de eventos similares. Por ejemplo, desde entonces nunca hemos actualizado el descomprimido de URL. Aunque, durante este tiempo se han agregado varias variaciones de URL nuevas. Cumplen con las normas ya establecidas en el servicio y se procesan correctamente.

Decepción #3

Una vez que empezamos a analizar, nos dimos cuenta de por qué el gráfico era tan coherente. El hecho es que casi todos los N-gramas contenían transiciones que no se podían realizar a través de la interfaz.

Comenzó una pequeña investigación. Me confundía que no hubiera transiciones imposibles dentro de una entidad. Esto significa que no se trata de un error en el sistema de recopilación de eventos ni en nuestro servicio ETL. Daba la sensación de que el usuario trabajaba simultáneamente en varias entidades, sin pasar de una a otra. ¿Cómo lograr esto? Usando diferentes pestañas en el navegador.

Al analizar Cartbee, nos salvó su especificidad. La aplicación se utilizó desde dispositivos móviles, donde trabajar desde varias pestañas es simplemente un inconveniente. Aquí tenemos un escritorio y mientras se realiza una tarea en una entidad, es razonable querer dedicar este tiempo a configurar o monitorear el estado en otra. Y para no perder el progreso, basta con abrir otra pestaña.

Inspiración #3

Los colegas de desarrollo front-end le enseñaron al sistema de recopilación de eventos a distinguir entre pestañas. El análisis podría comenzar. Y empezamos. Como era de esperar, CJM no coincidía con las rutas reales: los usuarios pasaban mucho tiempo en las páginas del directorio, abandonaban sesiones y pestañas en los lugares más inesperados. Utilizando el análisis de transición, pudimos encontrar problemas en algunas compilaciones de Mozilla. En ellos, debido a características de implementación, desaparecían elementos de navegación o aparecían páginas medio vacías, a las que sólo debería ser accesible el administrador. La página se abrió, pero no llegó ningún contenido del backend. El conteo de transiciones permitió evaluar qué funciones se utilizaron realmente. Las cadenas permitieron comprender cómo recibió el usuario tal o cual error. Los datos permitidos para realizar pruebas en función del comportamiento del usuario. Fue un éxito, la idea no fue en vano.

Automatización de análisis

En una de las demostraciones de resultados, mostramos cómo se utiliza Gephi para el análisis de gráficos. En esta herramienta, los datos de conversión se pueden mostrar en una tabla. Y el jefe del departamento de UX dijo un pensamiento muy importante que influyó en el desarrollo de toda la dirección de análisis de comportamiento en la empresa: "Hagamos lo mismo, pero en Tableau y con filtros, será más conveniente".

Entonces pensé: ¿por qué no? Retentioneering almacena todos los datos en una estructura pandas.DataFrame. Y esto es, en general, una mesa. Así apareció otro servicio: Proveedor de Datos. No solo hizo una tabla a partir del gráfico, sino que también calculó qué tan popular es la página y la funcionalidad asociada a ella, cómo afecta la retención de usuarios, cuánto tiempo permanecen en ella y qué páginas abandonan con más frecuencia. Y el uso de la visualización en Tableau redujo tanto el costo de estudiar el gráfico que el tiempo de iteración para el análisis de comportamiento en el producto se redujo casi a la mitad.

Danil hablará sobre cómo se utiliza esta visualización y qué conclusiones permite sacar.

¡Más mesas para el dios de la mesa!

De forma simplificada, la tarea se formuló de la siguiente manera: mostrar el gráfico de transición en Tableau, proporcionar la capacidad de filtrar y hacerlo lo más claro y conveniente posible.

Realmente no quería dibujar un gráfico dirigido en Tableau. E incluso si tuviera éxito, la ganancia, en comparación con Gephi, no parecía obvia. Necesitábamos algo mucho más simple y accesible. ¡Mesa! Después de todo, el gráfico se puede representar fácilmente en forma de filas de una tabla, donde cada fila es un borde del tipo "origen-destino". Además, ya hemos preparado cuidadosamente dicha tabla utilizando herramientas de Retención y Proveedor de datos. Todo lo que quedaba por hacer era mostrar la tabla en Tableau y revisar el informe.
Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Hablando de cómo a todo el mundo le encantan las mesas.

Sin embargo, aquí nos enfrentamos a otro problema. ¿Qué hacer con la fuente de datos? Fue imposible conectar pandas.DataFrame; Tableau no tiene dicho conector. Crear una base separada para almacenar el gráfico parecía una solución demasiado radical con perspectivas vagas. Y las opciones de descarga local no eran adecuadas debido a la necesidad de operaciones manuales constantes. Revisamos la lista de conectores disponibles y nuestra mirada se posó en el artículo. Conector de datos web, que se acurrucó tristemente en el fondo.

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Tableau tiene una amplia selección de conectores. Encontramos uno que resolvió nuestro problema.

¿Qué clase de animal? Se abrieron algunas pestañas nuevas en el navegador y quedó claro que este conector le permite recibir datos al acceder a una URL. El backend para calcular los datos en sí estaba casi listo, solo quedaba hacerlo amigo de WDC. Durante varios días, Denis estudió la documentación y luchó con los mecanismos de Tableau y luego me envió un enlace que pegué en la ventana de conexión.

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Formulario de conexión a nuestro WDC. Denis hizo su frente y se ocupó de la seguridad.

Después de un par de minutos de espera (los datos se calculan dinámicamente cuando se solicita), apareció la tabla:

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Así es como se ve una matriz de datos sin procesar en la interfaz de Tableau

Como se prometió, cada fila de dicha tabla representaba un borde del gráfico, es decir, una transición dirigida del usuario. También contenía varias características adicionales. Por ejemplo, la cantidad de usuarios únicos, la cantidad total de transiciones y otros.

Sería posible mostrar esta tabla en el informe tal cual, esparcir filtros generosamente y enviar la herramienta a navegar. Suena lógico. ¿Qué puedes hacer con la mesa? Pero este no es nuestro camino, porque no estamos haciendo solo una tabla, sino una herramienta para el análisis y la toma de decisiones sobre productos.

Normalmente, al analizar datos, una persona quiere obtener respuestas a sus preguntas. Excelente. Empecemos por ellos.

  • ¿Cuáles son las transiciones más frecuentes?
  • ¿A dónde van desde páginas específicas?
  • ¿Cuánto tiempo pasas en promedio en esta página antes de salir?
  • ¿Con qué frecuencia haces la transición de A a B?
  • ¿En qué páginas termina la sesión?

Cada uno de los informes o una combinación de ellos debería permitir al usuario encontrar respuestas a estas preguntas de forma independiente. La estrategia clave aquí es brindarle las herramientas para hacerlo usted mismo. Esto es útil tanto para reducir la carga en el departamento de análisis como para reducir el tiempo para tomar decisiones; después de todo, ya no necesita ir a Youtrack y crear una tarea para el analista, solo necesita abrir el informe.

¿Qué obtuvimos?

¿En qué se aparta la gente con mayor frecuencia del tablero?

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Fragmento de nuestro informe. Después del panel, todos fueron a la lista de VM o a la lista de nodos.

Tomemos una tabla general con transiciones y filtremos por página de origen. La mayoría de las veces, van del panel a la lista de máquinas virtuales. Además, la columna Regularidad sugiere que se trata de una acción repetitiva.

¿De dónde vienen en la lista de clusters?

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Los filtros en los informes funcionan en ambas direcciones: puede saber dónde salió o adónde fue

De los ejemplos se desprende claramente que incluso la presencia de dos filtros simples y la clasificación de filas por valores le permite obtener información rápidamente.

Preguntemos algo más difícil.

¿Dónde abandonan con mayor frecuencia los usuarios su sesión?

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Los usuarios de VMmanager suelen trabajar en pestañas separadas

Para hacer esto, necesitamos un informe cuyos datos estén agregados por fuentes de referencia. Y los llamados puntos de ruptura se tomaron como asignaciones, eventos que sirvieron como final de la cadena de transiciones.

Es importante señalar aquí que esto puede ser el final de la sesión o la apertura de una nueva pestaña. El ejemplo muestra que la cadena suele terminar en una tabla con una lista de máquinas virtuales. En este caso, el comportamiento característico es cambiar a otra pestaña, lo que es consistente con el patrón esperado.

En primer lugar, comprobamos la utilidad de estos informes en nosotros mismos cuando realizamos el análisis de manera similar. Vepp, otro de nuestros productos. Con la llegada de tablas y filtros, las hipótesis se probaron más rápido y los ojos se cansaron menos.

A la hora de desarrollar informes, no nos olvidamos del diseño visual. Cuando se trabaja con mesas de este tamaño, este es un factor importante. Por ejemplo, utilizamos una gama de colores tranquila, fácil de percibir. fuente monoespaciada para números, resaltado en color de las líneas de acuerdo con los valores numéricos de las características. Estos detalles mejoran la experiencia del usuario y aumentan las posibilidades de que la herramienta despegue con éxito dentro de la empresa.

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
La tabla resultó bastante voluminosa, pero esperamos que no haya dejado de ser legible.

Cabe mencionar por separado la formación de nuestros clientes internos: especialistas de producto y diseñadores UX. Para ellos se prepararon especialmente manuales con ejemplos de análisis y consejos para trabajar con filtros. Insertamos enlaces a manuales directamente en las páginas del informe.

Vea la verdadera cara del producto y sobreviva. Datos sobre las transiciones de usuarios como motivo para escribir un par de servicios nuevos
Hicimos el manual simplemente como una presentación en Google Docs. Las herramientas de Tableau le permiten mostrar páginas web directamente dentro de un libro de informes.

en vez de un epílogo

¿Qué hay en el fondo? Pudimos conseguir una herramienta para cada día de forma relativamente rápida y económica. Sí, esto definitivamente no reemplaza el gráfico en sí, el mapa de calor de clics o el visor web. Pero estos informes complementan significativamente las herramientas enumeradas y proporcionan elementos de reflexión y nuevas hipótesis sobre productos e interfaces.

Esta historia sirvió sólo como el comienzo para el desarrollo de la analítica en ISPsystem. En los últimos seis meses, han aparecido siete nuevos servicios más, incluidos retratos digitales del usuario en el producto y un servicio para crear bases de datos para la segmentación por apariencias, pero hablaremos de ellos en los siguientes episodios.

Fuente: habr.com

Añadir un comentario