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

Hola, Habr. Este artículo está dedicado a los resultados de cuatro años de desarrollo de un conjunto de métodos y herramientas para el procesamiento de trayectorias de movimiento de usuarios en aplicaciones o sitios web. El autor del desarrollo es Maksim Godzi, quien está al frente del equipo de creadores del producto, y también es el autor del artículo. El producto se llama Retentioneering, y ahora se ha convertido en una biblioteca de código abierto y se ha alojado en Github, para que cualquier persona interesada pueda utilizarlo. Todo esto puede ser interesante para aquellos relacionados con el análisis de productos y marketing, promoción y desarrollo de productos. Por cierto, en Habr ya se había publicado un artículo sobre uno de los casos de trabajo con Retentioneering. En este nuevo material se habla sobre lo que puede hacer el producto y cómo se puede utilizar.

Al leer el artículo, usted mismo podrá escribir su propio Retentioneering, que puede ser cualquier método estandarizado de procesamiento de trayectorias de usuarios dentro y fuera de la aplicación, que permite ver en detalle las características del comportamiento y extraer de esto ideas para el crecimiento de métricas comerciales.

¿Qué es Retentioneering y para qué sirve?

Inicialmente, nuestro objetivo era traducir el Growth Hacking del mundo de la "brujería digital" al mundo de los números, la analítica y las previsiones. Como consecuencia, simplificamos la analítica de productos a pura matemática y programación para aquellos que prefieren los números a las historias fantásticas y las fórmulas a palabras como "rebranding", "reposicionamiento", etc., que suenan bien, pero ayudan poco en la práctica.

Para resolver los problemas mencionados, necesitábamos un marco para la analítica mediante grafos y trayectorias, y al mismo tiempo, una biblioteca que simplificara las rutinas típicas del analista, como una forma de describir tareas regulares de analítica de productos, que fuera comprensible tanto para las personas como para los robots. La biblioteca permite describir el comportamiento de los usuarios y asociarlo con las métricas comerciales del producto en un lenguaje formal y claro, para simplificar y automatizar las tareas rutinarias de desarrolladores y analistas, y facilitar su comunicación con el negocio.

Retentioneering es un método y herramientas analíticas de software que se pueden adaptar e integrar en cualquier producto digital (y no solo).

Comenzamos a trabajar en el producto en 2015. Ahora ya es un conjunto de herramientas listo, aunque todavía no perfecto, en Python y Pandas para el trabajo con datos, modelos de aprendizaje automático con una API similar a sklearn, herramientas para interpretar los resultados de los modelos de aprendizaje automático eli5 y shap.

Todo esto está envuelto en una conveniente biblioteca de código abierto en el repositorio de Github — retentioneering-tools. Usar la biblioteca no es complicado, prácticamente cualquier persona que le guste la analítica de productos, pero que no haya escrito código antes, puede aplicar nuestros métodos analíticos a sus datos de manera independiente y sin gastar mucho tiempo.

Un programador, creador de aplicaciones o miembro del equipo de desarrollo o pruebas, que nunca antes ha trabajado en analítica, puede comenzar a experimentar con este código y ver los patrones de uso de su aplicación sin ayuda externa.

La trayectoria del usuario como elemento básico de análisis y los métodos para procesarla

La trayectoria del usuario es la secuencia de estados del usuario en ciertos momentos. Y los eventos pueden provenir de diferentes fuentes de datos, tanto en línea como fuera de línea. Los eventos que sucedieron al usuario son parte de su trayectoria. Ejemplos:
• hizo clic en un botón
• vio una imagen
• llegó a la pantalla
• recibió un correo
• recomendó el producto a un amigo
• llenó un formulario
• tocó la pantalla
• se desplazó
• se acercó a la caja
• pidió un burrito
• comió el burrito
• se intoxicó con el burrito que comió
• entró al café por la entrada trasera
• entró por la entrada principal
• cerró la aplicación
• recibió una notificación push
• miró la pantalla durante más tiempo del esperado
• pagó el pedido
• recogió el pedido
• le negaron un crédito

Si se toman los datos de las trayectorias de un grupo de usuarios y se estudia cómo son las transiciones, se puede rastrear cómo se comportan en la aplicación. Esto se puede hacer de manera conveniente a través de un gráfico, donde los estados son nodos y las transiciones entre estados son aristas:

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

«Trayectoria» es un concepto muy útil: contiene información detallada sobre todas las acciones del usuario, con la posibilidad de añadir cualquier dato adicional a la descripción de dichas acciones. Esto la convierte en un objeto universal. Si cuentas con herramientas bonitas y prácticas que permitan trabajar con trayectorias, puedes encontrar similitudes y segmentarlas.

La segmentación de trayectorias puede parecer algo muy complejo al principio. En situaciones normales, así es: se necesita utilizar comparación de matrices de conectividad o alineación de secuencias. Sin embargo, hemos encontrado un método más sencillo: estudiar un gran número de trayectorias y segmentarlas a través de la agrupación.

Como se ha descubierto, es posible transformar una trayectoria en un punto utilizando representaciones continuas, por ejemplo, TF-IDF. Tras la transformación, la trayectoria se convierte en un punto en el espacio, donde los ejes representan la frecuencia normalizada de diferentes eventos y transiciones dentro de la trayectoria. Esta representación en un espacio de mil dimensiones o más (dimS=suma(tipo de eventos)+suma(tipo de ngramas_2), puede proyectarse en un plano utilizando TSNE. TSNE es una transformación que reduce la dimensionalidad del espacio a 2 ejes y, en la medida de lo posible, conserva las distancias relativas entre los puntos. Por lo tanto, se hace posible, en un mapa plano, en un mapa proyección de trayectorias, estudiar cómo se relacionaban entre sí los puntos de diferentes trayectorias. Se analiza cuán cercanos o diferentes eran entre sí, si formaban clústeres o si se dispersaban por el mapa, etc.:

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

Las herramientas analíticas de Retentioneering permiten convertir un conjunto de datos complejos y trayectorias en una representación que se puede comparar entre sí, y luego investigar e interpretar el resultado de la transformación.

Al hablar de métodos estándar de procesamiento de trayectorias, se refieren a tres herramientas principales que hemos implementado en Retentioneering: grafos, matrices paso a paso y mapas de proyección de trayectorias.

Trabajar con Google Analytics, Firebase y sistemas similares de análisis es bastante complicado y no siempre efectivo. El problema se encuentra en una serie de limitaciones para el usuario, lo que provoca que el trabajo del analista en estos sistemas se limite a clics del mouse y selecciones de segmentos. Retentioneering 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é construido para un segmento específico.

Retentioneering y casos de estudio

Como ejemplo del uso de la herramienta desarrollada, se puede presentar 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. La facturación anual de la aplicación móvil era de alrededor de 7 millones de rublos, con fluctuaciones estacionales en el rango de 60 a 130 mil. Esta misma empresa también tiene una aplicación para iOS, y el ticket promedio del usuario de la aplicación de 'manzana' era superior al ticket promedio del cliente que utiliza la aplicación de Android: 1080 rublos frente a 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 sobre el aumento de la efectividad de la aplicación. Después de usar Retentioneering, se descubrió que el problema radicaba en los mensajes que se mostraban a los nuevos usuarios. Ellos recibían información sobre la marca, las ventajas de la empresa y los precios. Pero, como se descubrió, los mensajes debían ayudar al usuario a aprender a usar la aplicación.

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

Esto fue lo que se hizo, resultando en una disminución de las desinstalaciones de la aplicación y un aumento del 23% en la conversión a pedidos. Al principio, se destinó el 20% del tráfico entrante para la prueba, pero después de unos días, al analizar los primeros resultados y evaluar la tendencia, se cambiaron las proporciones y, al contrario, se dejaron el 20% para el grupo de control y se colocó el 80% en la prueba. Una semana después, se decidió agregar secuencialmente la prueba de dos hipótesis adicionales. En total, después de siete semanas, los ingresos de la aplicación de Android aumentaron en un 50% en comparación con el nivel anterior.

¿Cómo trabajar con Retentioneering?

Los primeros pasos son bastante simples: descargamos la biblioteca con el comando pip install retentioneering. En el repositorio hay ejemplos listos y casos de procesamiento de datos para algunas tareas de análisis de productos. El conjunto se está ampliando constantemente, mientras que es suficiente para una primera introducción. Cualquiera puede tomar módulos listos y aplicarlos de inmediato a sus tareas, lo que permite configurar rápidamente el proceso de análisis más detallado y optimización de los trayectos de los usuarios de manera ágil y efectiva. Todo esto permite identificar patrones de uso de la aplicación a través de código comprensible y transmitir esta experiencia a los colegas.

Retentioneering es una herramienta que debe utilizarse durante todo el ciclo de vida de la aplicación, y aquí está el por qué:

  • Retentioneering es efectivo para rastrear y optimizar continuamente los trayectos de los usuarios y mejorar los indicadores comerciales. Así, en las aplicaciones de ecommerce a menudo se agregan nuevas funciones, cuyo impacto en el producto no siempre se puede predecir correctamente. En algunos casos, surgen problemas de compatibilidad entre las funciones nuevas y las antiguas: por ejemplo, las nuevas “canibalizan” las existentes. Y en esta situación es cuando se necesita un análisis constante de los trayectos.
  • La situación es similar al trabajar con canales publicitarios: se prueban continuamente nuevas fuentes de tráfico y creativos publicitarios, es necesario monitorear la estacionalidad, las tendencias y el impacto de otros eventos, lo que da lugar a la aparición de nuevas clases de problemas. Aquí también se requiere un seguimiento y una interpretación constante de las mecánicas del usuario.
  • Hay toda una serie de factores que influyen constantemente en el funcionamiento de la aplicación. Por ejemplo, nuevas versiones de los desarrolladores: al resolver un problema actual, pueden involuntariamente revertir uno antiguo o crear uno completamente nuevo. Con el tiempo, el número de nuevas versiones crece, y es necesario automatizar el proceso de seguimiento de errores, incluida la análisis de los trayectos de los usuarios.

En general, Retentioneering es una herramienta eficaz. Pero no hay límite para la perfección: se puede y debe mejorar, desarrollar y construir sobre su base nuevos productos interesantes. Cuanto más activa sea la comunidad del proyecto, más forks habrá y surgirán nuevas formas interesantes de uso.

Información adicional sobre las herramientas de Retentioneering:

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster