Retentioneering: como escribimos ferramentas de código aberto para a análise de produtos en Python e Pandas

Ola, Habr. Este artigo está dedicado aos resultados de catro anos de desenvolvemento dun conxunto de métodos e ferramentas para procesar as traxectorias de movemento dos usuarios nunha aplicación ou sitio web. Autor do desenvolvemento - Máximo Godzi, quen dirixe o equipo de creadores de produtos e tamén é o autor do artigo. O produto en si chamábase Retentioneering; agora converteuse nunha biblioteca de código aberto e publicado en Github para que calquera poida usalo. Todo isto pode ser de interese para os implicados na análise de produtos e mercadotecnia, promoción e desenvolvemento de produtos. Por certo, sobre Habré xa se publicou un artigo sobre un dos casos de traballo con Retentioneering. O novo material explica o que pode facer o produto e como se pode utilizar.

Despois de ler o artigo, vostede mesmo poderá escribir o seu propio Retentioneering; pode ser calquera método estandarizado para procesar as traxectorias dos usuarios na aplicación e máis aló, o que lle permitirá ver en detalle as características do comportamento e extraer ideas deste para o crecemento. de métricas de negocio.

Que é Retentioneering e por que é necesario?

O noso obxectivo inicial era mover o Growth Hacking do mundo da "bruxería dixital" ao mundo dos números, as analíticas e as previsións. Como consecuencia, a análise de produtos redúcese a puras matemáticas e programación para os que prefiren os números en lugar de historias fantásticas, e as fórmulas a palabras de moda como "rebranding", "reposicionamento", etc., que soan ben, pero que na práctica axudan pouco.

Para resolver estes problemas, necesitábamos un marco de análise a través de gráficos e traxectorias, e ao mesmo tempo unha biblioteca que simplifique as rutinas típicas dos analistas, como forma de describir tarefas habituais de análise de produtos que fosen comprensibles tanto para as persoas como para os robots. A biblioteca ofrece a posibilidade de describir o comportamento dos usuarios e vinculalo ás métricas comerciais do produto nunha linguaxe tan formal e clara que simplifica e automatiza as tarefas rutineiras de desenvolvedores e analistas e facilita a súa comunicación coa empresa.

Retentioneering é un método e ferramentas de software analítico que se poden adaptar e integrar en calquera produto dixital (e non só).

Comezamos a traballar no produto en 2015. Agora trátase dun conxunto de ferramentas preparadas, aínda que aínda non o ideal, en Python e Pandas para traballar con datos, modelos de aprendizaxe automática con API tipo sklearn, ferramentas para interpretar os resultados dos modelos de aprendizaxe automática eli5 e shap.

Está todo envolto a unha cómoda biblioteca de código aberto no repositorio aberto de Github: retentioneering-tools. Usar a biblioteca non é difícil; case calquera que lle guste a análise de produtos, pero non escribiu código antes, pode aplicar os nosos métodos de análise aos seus datos de forma independente e sen un investimento significativo de tempo.

Ben, un programador, un creador de aplicacións ou un membro dun equipo de desenvolvemento ou proba que nunca fixera análises antes pode comezar a xogar con este código e ver os patróns de uso da súa aplicación sen axuda externa.

Traxectoria do usuario como elemento básico de análise e métodos para o seu tratamento

A traxectoria do usuario é unha secuencia de estados do usuario en determinados momentos. Ademais, os eventos poden proceder de diferentes fontes de datos, tanto en liña como fóra de liña. Os acontecementos que lle suceden ao usuario forman parte da súa traxectoria. Exemplos:
• premeu o botón
• viu a imaxe
• preme na pantalla
• recibiu un correo electrónico
• recomendou o produto a un amigo
• cubriu o formulario
• tocou a pantalla
• desprazado
• acudiu á caixa rexistradora
• pediu un burrito
• comeu un burrito
• envelenouse por comer un burrito
• entrou no café pola entrada de atrás
• entraba pola entrada principal
• minimizou a aplicación
• recibiu unha notificación push
• estivo atascado na pantalla máis tempo que X
• pagou o pedido
• comprou o pedido
• denegóuselle un préstamo

Se tomas os datos da traxectoria dun grupo de usuarios e estudas como se estruturan as transicións, podes rastrexar exactamente como se estrutura o seu comportamento na aplicación. É conveniente facelo a través dun gráfico no que os estados son nós e as transicións entre estados son arestas:

Retentioneering: como escribimos ferramentas de código aberto para a análise de produtos en Python e Pandas

"Traxectoria" é un concepto moi cómodo: contén información detallada sobre todas as accións do usuario, coa posibilidade de engadir calquera dato adicional á descrición destas accións. Isto fai que sexa un obxecto universal. Se tes ferramentas fermosas e cómodas que che permiten traballar con traxectorias, podes atopar semellanzas e segmentalas.

A segmentación da traxectoria pode parecer moi complicada ao principio. Nunha situación normal, este é o caso: cómpre usar a comparación da matriz de conectividade ou o aliñamento de secuencias. Conseguimos atopar un xeito máis sinxelo: estudar un gran número de traxectorias e segmentalas mediante a agrupación.

Como se viu, é posible converter unha traxectoria nun punto usando representacións continuas, por exemplo, TF-IDF. Despois da transformación, a traxectoria convértese nun punto no espazo onde se representa ao longo dos eixes a ocorrencia normalizada de varios eventos e transicións entre eles na traxectoria. Esta cousa dun enorme espazo de mil ou máis dimensións (dimS=sum(tipos de eventos)+sum(ngrams_2 types)) pódese proxectar nun plano usando TSNE. TSNE é unha transformación que reduce a dimensión do espazo a 2 eixes e, se é posible, conserva as distancias relativas entre puntos. En consecuencia, faise posible nun mapa plano, un mapa de proxección figurativa de traxectorias, estudar como se situaban entre si os puntos das distintas traxectorias. Analiza o próximos ou diferentes que estaban entre si, se formaban grupos ou estaban espallados polo mapa, etc.:

Retentioneering: como escribimos ferramentas de código aberto para a análise de produtos en Python e Pandas

As ferramentas de análise de retención proporcionan a capacidade de converter datos e traxectorias complexas nunha visión que se pode comparar entre si, e despois pódese examinar e interpretar o resultado da transformación.

Falando de métodos estándar para procesar traxectorias, referímonos a tres ferramentas principais que implementamos en Retentioneering: gráficos, matrices de pasos e mapas de proxección de traxectorias.

Traballar con Google Analytics, Firebase e sistemas de análise similares é bastante complexo e non é 100 % efectivo. O problema é unha serie de restricións para o usuario, polo que o traballo do analista en tales sistemas depende dos clics do rato e da selección de porcións. A retención fai posible traballar con traxectorias de usuarios, e non só con funnels, como en Google Analytics, onde o nivel de detalle adoita reducirse a un funil, aínda que construído para un determinado segmento.

Retención e casos

Como exemplo de uso da ferramenta desenvolvida, podemos citar o caso dun gran nicho de servizo en Rusia. Esta empresa ten unha aplicación móbil para Android que é popular entre os clientes. O volume de negocio anual da aplicación móbil foi duns 7 millóns de rublos, as flutuacións estacionais oscilaron entre 60 e 130 mil. A mesma empresa tamén ten unha aplicación para iOS, e a factura media dun usuario da aplicación de Apple era superior á factura media de un cliente que usa a aplicación de Android - 1080 rub. fronte a 1300 rublos.

A compañía decidiu aumentar a eficiencia da aplicación de Android, para o que realizou unha análise exhaustiva. Xeráronse varias ducias de hipóteses sobre o aumento da eficacia da aplicación. Despois de usar Retentionneering, resultou que o problema estaba nas mensaxes que se mostraban aos novos usuarios. Recibiron información sobre a marca, os beneficios da empresa e os prezos. Pero, como se viu, as mensaxes debían axudar ao usuario a aprender a traballar na aplicación.

Retentioneering: como escribimos ferramentas de código aberto para a análise de produtos en Python e Pandas

Isto fíxose, como resultado do cal a aplicación se desinstalou menos e o aumento da conversión a pedido foi do 23%. Nun primeiro momento, o 20 por cento do tráfico de entrada deuse á proba, pero pasados ​​uns días, tras analizar os primeiros resultados e valorar a tendencia, invertéronse as proporcións e, pola contra, deixaron o 20 por cento para o grupo control, e o oitenta por cento foron postos na proba. Unha semana despois, decidiuse engadir secuencialmente a proba de dúas hipóteses máis. En só sete semanas, a facturación da aplicación de Android aumentou unha vez e media con respecto ao nivel anterior.

Como traballar con Retentioneering?

Os primeiros pasos son bastante sinxelos: descarga a biblioteca co comando pip install retentioneering. O propio repositorio contén exemplos preparados e casos de procesamento de datos para algunhas tarefas de análise de produtos. O conxunto actualízase constantemente ata que sexa suficiente para un primeiro coñecido. Calquera persoa pode tomar módulos preparados e aplicalos inmediatamente ás súas tarefas; isto permítelle configurar inmediatamente o proceso de análise e optimización máis detallada das traxectorias dos usuarios da forma máis rápida e eficiente posible. Todo isto fai posible atopar patróns de uso das aplicacións a través dun código claro e compartir esta experiencia cos compañeiros.

A retención é unha ferramenta que vale a pena usar durante a vida útil da túa aplicación, e aquí tes por que:

  • A retención é eficaz para rastrexar e optimizar continuamente as traxectorias dos usuarios e mellorar o rendemento empresarial. Así, moitas veces engádense novas funcións ás aplicacións de comercio electrónico, cuxo impacto no produto non sempre se pode prever correctamente. Nalgúns casos, xorden problemas de compatibilidade entre funcións novas e antigas; por exemplo, as novas "canibalizan" as existentes. E nesta situación, é precisamente a análise constante das traxectorias.
  • A situación é similar cando se traballa con canles de publicidade: novas fontes de tráfico e creatividades publicitarias están a ser probadas constantemente, é necesario controlar a estacionalidade, as tendencias e a influencia doutros eventos, o que leva á aparición de máis e máis novas clases de problemas. Isto tamén require un seguimento e interpretación constantes da mecánica do usuario.
  • Hai unha serie de factores que afectan constantemente o rendemento dunha aplicación. Por exemplo, novos lanzamentos dos desenvolvedores: ao pechar un problema actual, sen querelo devolven o antigo ou crean un completamente novo. Co paso do tempo, o número de novos lanzamentos crece e hai que automatizar o proceso de rastrexo dos erros, incluso analizando as traxectorias dos usuarios.

En xeral, Retentioneering é unha ferramenta eficaz. Pero non hai límite para a perfección: pódese e debe mellorarse, desenvolverse e construír novos produtos interesantes sobre a súa base. Canto máis activa sexa a comunidade do proxecto, máis forks haberá e aparecerán novas opcións interesantes para usalo.

Máis información sobre as ferramentas de retención:

Fonte: www.habr.com

Engadir un comentario