Rétention : comment nous avons écrit des outils d'analyse de produits open source en Python et Pandas

Salut Habr. Cet article est consacré aux résultats d'un développement de quatre années d'un ensemble de méthodes et d'outils permettant de traiter les trajectoires de déplacement des utilisateurs dans une application ou sur un site Internet. Auteur du développement - Maxime Godzi, qui est à la tête de l'équipe de créateurs de produits, il est également l'auteur de l'article. Le produit lui-même s'appelait Retentioneering, il a maintenant été converti en bibliothèque open source et hébergé sur Github afin que tout le monde puisse l'utiliser. Tout cela peut intéresser ceux qui sont impliqués dans l’analyse des produits et du marketing, ainsi que dans la promotion et le développement de produits. D'ailleurs, sur Habré un article a déjà été publié sur l'un des cas de travail avec Retentioneering. Le nouveau matériel explique de quoi le produit est capable et comment il peut être utilisé.

Après avoir lu l'article, vous pourrez écrire votre propre rétention, il peut s'agir de n'importe quelle méthode standardisée de traitement des trajectoires des utilisateurs dans l'application et au-delà, vous permettant de voir en détail les caractéristiques du comportement et d'en extraire des informations pour la croissance de mesures commerciales.

Qu’est-ce que le rétention et pourquoi est-il nécessaire ?

Initialement, notre objectif était de faire passer le Growth Hacking du monde de la « sorcellerie numérique » au monde des chiffres, de l'analyse et des prévisions. En conséquence, l’analyse des produits est réduite aux mathématiques pures et à la programmation pour ceux qui préfèrent les chiffres aux histoires fantastiques, et les formules aux mots intelligents comme « rebranding », « repositionnement », etc., qui semblent beaux, mais en pratique, ils ne le sont pas. aide beaucoup.

Pour résoudre ces problèmes, nous avions besoin d'un cadre d'analyse via des graphiques et des trajectoires, et en même temps d'une bibliothèque qui simplifie les routines typiques des analystes, afin de décrire les tâches régulières d'analyse des produits qui seraient compréhensibles à la fois par les humains et les robots. La bibliothèque offre la possibilité de décrire le comportement des utilisateurs et de le relier aux mesures commerciales du produit dans un langage formel et clair afin de simplifier et d'automatiser les tâches de routine des développeurs et des analystes, et de faciliter leur communication avec l'entreprise.

Le rétentioneering est une méthode et des outils logiciels analytiques qui peuvent être adaptés et intégrés à n’importe quel produit numérique (et pas seulement).

Nous avons commencé à travailler sur le produit en 2015. Il s'agit désormais d'un ensemble d'outils prêts à l'emploi, bien que pas encore idéaux, pour travailler avec des données en Python et Pandas, de modèles d'apprentissage automatique avec une API de type sklearn, d'outils pour interpréter les résultats des modèles d'apprentissage automatique eli5 et shap.

Tout est emballé dans une bibliothèque open source pratique dans le référentiel ouvert Github - retentioneering-tools. Utiliser la bibliothèque n'est pas difficile, presque tous ceux qui aiment l'analyse de produits, mais n'ont jamais écrit de code auparavant, peuvent appliquer nos méthodes d'analyse à leurs données par eux-mêmes et sans y consacrer beaucoup de temps.

Eh bien, un programmeur, un créateur d'application ou un membre d'une équipe de développement ou de test qui n'a jamais fait d'analyse auparavant peut commencer à jouer avec ce code et voir des modèles d'utilisation de son application sans aide extérieure.

La trajectoire de l'utilisateur comme élément de base de l'analyse et les méthodes de son traitement

La trajectoire de l'utilisateur est une séquence d'états de l'utilisateur à certains moments. De plus, les événements peuvent provenir de différentes sources de données, en ligne et hors ligne. Les événements arrivés à l'utilisateur font partie de sa trajectoire. Exemples:
• appuyé sur le bouton
• j'ai vu une photo
• frapper l'écran
• reçu un e-mail
• recommandé le produit à un ami
• rempli le formulaire
• j'ai tapé sur l'écran
• défilé
• s'est approché de la caisse
• commandé un burrito
• mangé un burrito
• empoisonné par le burrito qu'il a mangé
• est entré dans le café par l'entrée arrière
• entré depuis l'entrée principale
• minimisé l'application
• reçu une notification push
• stupide sur l'écran pendant plus longtemps Х
• payé la commande
• échangé la commande
• s'est vu refuser un prêt

Si vous prenez les données de trajectoire d'un groupe d'utilisateurs et étudiez le fonctionnement des transitions, vous pouvez voir exactement comment est construit leur comportement dans l'application. Il est pratique de le faire via un graphe dans lequel les états sont des nœuds et les transitions entre les états sont des arêtes :

Rétention : comment nous avons écrit des outils d'analyse de produits open source en Python et Pandas

"Trajectoire" est un concept très pratique : il contient des informations détaillées sur toutes les actions de l'utilisateur, avec la possibilité d'ajouter des données supplémentaires à la description de ces actions. Cela en fait un objet générique. Si vous disposez d'outils esthétiques et pratiques qui vous permettent de travailler avec des trajectoires, vous pouvez alors trouver des similitudes et les segmenter.

La segmentation de trajectoire peut paraître très compliquée au premier abord. Dans une situation normale, cela est vrai : vous devez utiliser une comparaison de matrices de connectivité ou un alignement de séquences. Nous avons réussi à trouver un moyen plus simple : étudier un grand nombre de trajectoires et les segmenter via le clustering.

Il s'est avéré qu'il est possible de transformer une trajectoire en un point en utilisant des représentations continues, par exemple : TF-IDF. Après la transformation, la trajectoire devient un point dans l'espace, où l'apparition normalisée dans la trajectoire de divers événements et transitions entre eux est tracée le long des axes. Cette chose provenant d'un immense espace de mille dimensions et plus (dimS=sum(event types)+sum(ngrams_2 types)), peut être projetée sur un plan en utilisant TSNE. TSNE - transformation, réduit la dimension de l'espace à 2 axes et, si possible, préserve les distances relatives entre les points. Ainsi, il devient possible sur une carte plate, une carte de projection figurative de trajectoires, d'étudier comment les points de différentes trajectoires se situaient entre eux. On analyse à quel point ils étaient proches ou différents les uns des autres, s'ils formaient des clusters ou étaient dispersés sur la carte, etc. :

Rétention : comment nous avons écrit des outils d'analyse de produits open source en Python et Pandas

Les outils analytiques de rétention offrent la possibilité de transformer des données et des trajectoires complexes en une représentation pouvant être comparée les unes aux autres, puis d'explorer et d'interpréter le résultat de la transformation.

En parlant de méthodes standard de traitement de trajectoire, nous entendons trois outils principaux que nous avons implémentés dans Retentioneering : les graphiques, les matrices d'étapes et les cartes de projection de trajectoire.

Travailler avec Google Analytics, Firebase et des systèmes d'analyse similaires est assez compliqué et pas efficace à 100 %. Le problème réside dans un certain nombre de limitations pour l'utilisateur, à la suite desquelles le travail de l'analyste dans de tels systèmes repose sur des clics de souris et une sélection de tranches. Le rétentioneering permet de travailler avec des trajectoires utilisateurs, et pas seulement avec des entonnoirs, comme dans Google Analytics, où le niveau de détail est souvent réduit à un entonnoir, pourtant construit pour un certain segment.

Rétention et études de cas

A titre d'exemple d'utilisation de l'outil développé, on peut citer le cas d'un grand service de niche en Russie. Cette société dispose d’une application mobile Android très appréciée des clients. Le chiffre d'affaires annuel de l'application mobile était d'environ 7 millions de roubles, les fluctuations saisonnières se situaient entre 60 130 et 1080 1300. La même société dispose également d'une application pour iOS et le contrôle moyen de l'utilisateur de l'application "Apple" était supérieur à la moyenne. vérification du client à l'aide de l'application Android - XNUMX roubles. contre XNUMX roubles.

L'entreprise a décidé d'augmenter l'efficacité de l'application Android, pour laquelle elle a procédé à une analyse approfondie. Plusieurs dizaines d'hypothèses ont été formulées pour accroître l'efficacité de l'application. Après avoir utilisé Retentionneering, il s’est avéré que le problème résidait dans les messages affichés aux nouveaux utilisateurs. Ils ont reçu des informations sur la marque, les avantages de l'entreprise et les prix. Mais il s’est avéré que les messages étaient censés aider l’utilisateur à apprendre à travailler dans l’application.

Rétention : comment nous avons écrit des outils d'analyse de produits open source en Python et Pandas

Cela a été fait, à la suite de quoi les applications ont commencé à être moins supprimées et l'augmentation du taux de conversion sur commande était de 23 %. Au début, 20 pour cent du trafic entrant étaient soumis au test, mais quelques jours plus tard, après avoir analysé les premiers résultats et évalué la tendance, ils ont inversé les proportions et, au contraire, ont laissé 20 pour cent au groupe témoin, et ont placé quatre-vingts pour cent au test. Une semaine plus tard, il a été décidé d’ajouter séquentiellement les tests de deux autres hypothèses. En seulement sept semaines, le chiffre d'affaires de l'application Android a augmenté d'une fois et demie par rapport au niveau précédent.

Comment travailler avec le rétention ?

Les premières étapes sont assez simples : nous chargeons la bibliothèque avec la commande pip install retentioneering. Le référentiel lui-même contient des exemples prêts à l'emploi et des cas de traitement de données pour certaines tâches d'analyse de produits. L'ensemble est constamment mis à jour jusqu'à ce qu'il soit suffisant pour la première connaissance. Tout le monde peut suivre des modules prêts à l'emploi et les appliquer immédiatement à leurs tâches - cela vous permet de mettre immédiatement en place le processus d'analyse plus détaillée et d'optimisation des trajectoires des utilisateurs aussi rapidement et efficacement que possible. Tout cela permet de trouver des modèles d'utilisation des applications grâce à un code compréhensible et de partager cette expérience avec des collègues.

La rétention est un outil qui mérite d'être utilisé tout au long de la durée de vie d'une application, et voici pourquoi :

  • La rétention est efficace pour suivre et optimiser en permanence les trajectoires des utilisateurs et améliorer les performances de l’entreprise. Ainsi, de nouvelles fonctionnalités sont souvent ajoutées aux applications de commerce électronique, dont l'impact sur le produit ne peut pas toujours être prédit correctement. Dans certains cas, il existe des problèmes de compatibilité entre les nouvelles et les anciennes fonctionnalités – par exemple, les nouvelles « cannibalisent » les fonctionnalités existantes. Et dans cette situation, une analyse constante des trajectoires s’impose.
  • La situation est similaire dans le travail avec les canaux publicitaires : de nouvelles sources de trafic et créations publicitaires sont constamment testées, il est nécessaire de surveiller la saisonnalité, les tendances et l'impact d'autres événements, ce qui conduit à l'émergence de nouvelles classes de problèmes. Cela nécessite également une surveillance et une interprétation constantes de la mécanique de l’utilisateur.
  • Un certain nombre de facteurs affectent constamment le fonctionnement de l'application. Par exemple, les nouvelles versions des développeurs : en résolvant un problème réel, ils renvoient involontairement l'ancien ou en créent un complètement nouveau. Au fil du temps, le nombre de nouvelles versions augmente et le processus de suivi des bugs doit être automatisé, notamment via l'analyse des trajectoires des utilisateurs.

Dans l’ensemble, le rétention est un outil efficace. Mais il n'y a pas de limite à la perfection : elle peut et doit être améliorée, développée et de nouveaux produits sympas sont construits sur cette base. Plus la communauté du projet est active, plus il y aura de forks, de nouvelles options intéressantes pour son utilisation apparaîtront.

Plus d’informations sur les outils de rétention :

Source: habr.com

Ajouter un commentaire