Retención: cómo escribimos herramientas de análisis de productos de código abierto en Python y Pandas

Hola Habr. Este artículo está dedicado a los resultados de un desarrollo de cuatro años de un conjunto de métodos y herramientas para procesar las trayectorias de movimiento de los usuarios en una aplicación o en un sitio web. Autor del desarrollo - Maxim Godzi, que dirige el equipo de creadores de productos, también es el autor del artículo. El producto en sí se llamaba Retentioneering, ahora se convirtió en una biblioteca de código abierto y se alojó en Github para que cualquiera pueda usarlo. Todo esto puede ser de interés para quienes participan en el análisis de productos y marketing, promoción y desarrollo de productos. Por cierto, en Habré Ya se ha publicado un artículo sobre uno de los casos de trabajo con Retentioneering.. El nuevo material explica de qué es capaz el producto y cómo se puede utilizar.

Después de leer el artículo, podrá escribir su propio Retentioneering, que puede ser cualquier método estandarizado para procesar las trayectorias de los usuarios en la aplicación y más allá, lo que le permitirá ver en detalle las características del comportamiento y extraer información de esto para el crecimiento de métricas de negocio.

¿Qué es la retención y por qué es necesaria?

Inicialmente, nuestro objetivo era trasladar el Growth Hacking del mundo de la "brujería digital" al mundo de los números, el análisis y las previsiones. Como resultado, el análisis de productos se reduce a pura matemática y programación para aquellos que prefieren números en lugar de historias fantásticas, y fórmulas a palabras inteligentes como “rebranding”, “reposicionamiento”, etc., que suenan hermosas, pero en la práctica no lo son. ayuda mucho.

Para resolver estos problemas, necesitábamos un marco para el análisis a través de gráficos y trayectorias y, al mismo tiempo, una biblioteca que simplifique las rutinas típicas de los analistas, como una forma de describir las tareas habituales de análisis de productos que fueran comprensibles tanto para humanos como para robots. La biblioteca brinda la capacidad de describir el comportamiento del usuario y vincularlo a las métricas comerciales del producto en un lenguaje tan formal y claro para simplificar y automatizar las tareas rutinarias de los desarrolladores y analistas, y facilitar su comunicación con la empresa.

La retención es un método y herramientas de software analítico que se pueden adaptar e integrar en cualquier producto digital (y no solo).

Comenzamos a trabajar en el producto en 2015. Ahora es un conjunto de herramientas listo para usar, aunque aún no ideal, para trabajar con datos en Python y Pandas, modelos de aprendizaje automático con API similar a sklearn, herramientas para interpretar los resultados de eli5 y modelos de aprendizaje automático shap.

esta todo envuelto en una conveniente biblioteca de código abierto en el repositorio abierto de Github: herramientas de retención. Usar la biblioteca no es difícil, casi cualquier persona a la que le guste el análisis de productos, pero que no haya escrito código antes, puede aplicar nuestros métodos de análisis a sus datos por su cuenta y sin perder mucho tiempo.

Bueno, un programador, creador de aplicaciones o un miembro de un equipo de desarrollo o prueba que nunca antes haya realizado análisis puede comenzar a jugar con este código y ver patrones en el uso de su aplicación sin ayuda externa.

La trayectoria del usuario como elemento básico de análisis y métodos para su procesamiento.

La trayectoria del usuario es una secuencia de estados del usuario en determinados momentos. Además, los eventos pueden provenir de diferentes fuentes de datos, tanto en línea como fuera de línea. Los hechos que le sucedieron al usuario son parte de su trayectoria. Ejemplos:
• presionó el botón
• vi una foto
• golpear la pantalla
• recibió un correo electrónico
• recomendó el producto a un amigo
• completó el formulario
• tocó la pantalla
• desplazado
• se acercó a la caja
• pedí un burrito
• comió un burrito
• envenenado por el burrito que comió
• entró al café por la entrada trasera
• ingresado desde la entrada principal
• minimizó la aplicación
• recibió una notificación push
• estúpido en la pantalla durante más tiempo Х
• pagado por el pedido
• canjeó el pedido
• le negaron un préstamo

Si toma los datos de trayectoria de un grupo de usuarios y estudia cómo funcionan las transiciones, podrá ver exactamente cómo se construye su comportamiento en la aplicación. Es conveniente hacerlo a través de un gráfico en el que los estados son nodos y las transiciones entre estados son aristas:

Retención: cómo escribimos herramientas de análisis de productos de código abierto en Python y Pandas

"Trayectoria" es un concepto muy conveniente: contiene información detallada sobre todas las acciones del usuario, con la posibilidad de agregar datos adicionales a la descripción de estas acciones. Esto lo convierte en un objeto genérico. Si tienes herramientas hermosas y convenientes que te permiten trabajar con trayectorias, entonces podrás encontrar similitudes y segmentarlas.

La segmentación de trayectorias puede parecer muy complicada al principio. En una situación normal, esto es cierto: es necesario utilizar una comparación de matrices de conectividad o alineación de secuencias. Logramos encontrar una manera más sencilla: estudiar una gran cantidad de trayectorias y segmentarlas mediante agrupación.

Al final resultó que, es posible convertir una trayectoria en un punto usando representaciones continuas, por ejemplo, TF-FDI. Después de la transformación, la trayectoria se convierte en un punto en el espacio, donde a lo largo de los ejes se traza la ocurrencia normalizada en la trayectoria de varios eventos y las transiciones entre ellos. Esta cosa de un enorme espacio de mil y más dimensiones (dimS=sum(tipos de eventos)+sum(ngrams_2 tipos)), se puede proyectar en un plano usando TSNE. TSNE - transformación, reduce la dimensión del espacio a 2 ejes y, si es posible, preserva las distancias relativas entre puntos. En consecuencia, es posible estudiar en un mapa plano, un mapa de proyección figurado de trayectorias, cómo se ubicaron entre sí los puntos de diferentes trayectorias. Se analiza qué tan cerca o diferentes estaban entre sí, si formaban grupos o estaban dispersos por el mapa, etc.:

Retención: cómo escribimos herramientas de análisis de productos de código abierto en Python y Pandas

Las herramientas analíticas de retención brindan la capacidad de convertir datos y trayectorias complejas en una representación que se puede comparar entre sí y luego explorar e interpretar el resultado de la transformación.

Hablando de métodos estándar de procesamiento de trayectorias, nos referimos a tres herramientas principales que hemos implementado en Retentioneering: gráficos, matrices de pasos y mapas de proyección de trayectorias.

Trabajar con Google Analytics, Firebase y sistemas de análisis similares es bastante complicado y no es 100% eficiente. El problema son una serie de limitaciones para el usuario, como resultado de lo cual el trabajo del analista en tales sistemas se basa en los clics del mouse y la selección de cortes. La retención permite trabajar con trayectorias de usuarios, y no solo con embudos, como en Google Analytics, donde el nivel de detalle a menudo se reduce a un embudo, aunque esté diseñado para un segmento determinado.

Retención y estudios de casos

Como ejemplo del uso de la herramienta desarrollada, podemos citar el caso de un gran servicio de nicho en Rusia. Esta empresa tiene una aplicación móvil para Android que es popular entre los clientes. El volumen de ventas anual de la aplicación móvil fue de unos 7 millones de rublos, las fluctuaciones estacionales oscilaron entre 60 y 130 mil. La misma empresa también tiene una aplicación para iOS, y el control promedio de los usuarios de la aplicación "Apple" fue mayor que el promedio. verificación del cliente utilizando la aplicación de Android - 1080 rublos. contra 1300 rublos.

La empresa decidió aumentar la eficiencia de la aplicación de Android, para lo cual realizó un análisis exhaustivo. Se formularon varias decenas de hipótesis para aumentar la eficacia de la aplicación. Después de usar Retentionneering, resultó que el problema estaba en los mensajes que se mostraban a los nuevos usuarios. Recibieron información sobre la marca, beneficios de la empresa y precios. Pero resultó que los mensajes debían ayudar al usuario a aprender cómo trabajar en la aplicación.

Retención: cómo escribimos herramientas de análisis de productos de código abierto en Python y Pandas

Esto se hizo, como resultado de lo cual las aplicaciones comenzaron a eliminarse menos y el aumento en la conversión a pedidos fue del 23%. En un principio se puso a prueba el 20 por ciento del tráfico entrante, pero unos días después, tras analizar los primeros resultados y evaluar la tendencia, invirtieron las proporciones y, por el contrario, dejaron el 20 por ciento para el grupo de control, y colocaron ochenta por ciento en la prueba. Una semana después, se decidió agregar secuencialmente pruebas de dos hipótesis más. En sólo siete semanas, el volumen de negocios de la aplicación para Android aumentó una vez y media en comparación con el nivel anterior.

¿Cómo trabajar con Retención?

Los primeros pasos son bastante simples: cargamos la biblioteca con el comando pip install retención. El repositorio en sí contiene ejemplos preparados y casos de procesamiento de datos para algunas tareas de análisis de productos. El conjunto se actualiza constantemente hasta que es suficiente para el primer contacto. Todos pueden tomar módulos ya preparados y aplicarlos inmediatamente a sus tareas; esto le permite configurar inmediatamente el proceso de análisis más detallado y optimización de las trayectorias de los usuarios de la manera más rápida y eficiente posible. Todo esto hace posible encontrar patrones de uso de aplicaciones a través de un código comprensible y compartir esta experiencia con colegas.

La retención es una herramienta que vale la pena utilizar durante toda la vida útil de una aplicación, y he aquí por qué:

  • La retención es eficaz para rastrear y optimizar continuamente las trayectorias de los usuarios y mejorar el rendimiento empresarial. Por lo tanto, a menudo se añaden nuevas funciones a las aplicaciones de comercio electrónico, cuyo impacto en el producto no siempre se puede predecir correctamente. En algunos casos, existen problemas de compatibilidad entre funciones nuevas y antiguas; por ejemplo, las nuevas "canibalizan" las existentes. Y en esta situación se necesita un análisis constante de las trayectorias.
  • La situación es similar al trabajar con canales publicitarios: constantemente se prueban nuevas fuentes de tráfico y creatividades publicitarias, es necesario monitorear la estacionalidad, las tendencias y el impacto de otros eventos, lo que conduce a la aparición de nuevas clases de problemas. También requiere un seguimiento e interpretación constante de la mecánica del usuario.
  • Hay una serie de factores que afectan constantemente el funcionamiento de la aplicación. Por ejemplo, nuevas versiones de los desarrolladores: al cerrar un problema real, sin saberlo devuelven el anterior o crean uno completamente nuevo. Con el tiempo, el número de nuevas versiones crece y es necesario automatizar el proceso de seguimiento de errores, incluso mediante el análisis de las trayectorias de los usuarios.

En general, la retención es una herramienta eficaz. Pero la perfección no tiene límites: puede y debe mejorarse, desarrollarse y construirse nuevos productos interesantes sobre esta base. Cuanto más activa sea la comunidad del proyecto, más bifurcaciones habrá y aparecerán nuevas opciones interesantes para su uso.

Más información sobre herramientas de retención:

Fuente: habr.com

Añadir un comentario