Retentioneering: comment nous avons Ă©crit les outils d'analyse de produits open-source en Python et Pandas

Salut, Habr. Cet article est consacré aux résultats d'un développement sur quatre ans d'un ensemble de méthodes et d'outils de traitement des parcours utilisateurs dans une application ou sur un site. L'auteur du développement est Maxim Godzi , qui est à la tête de l'équipe de créateurs du produit, il est également l'auteur de l'article. Le produit lui-même est appelé Retentioneering, maintenant il est transformé en une 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 associés à l'analyse des produits et du marketing, à la promotion et au développement des produits . Soit dit en passant, un article sur l'un des cas de collaboration avec Retentioneering a déjà été publié sur Habré. Le nouveau matériel parle de ce dont le produit est capable et comment il peut être utilisé.

Après avoir lu l'article, vous pouvez vous-même rédiger votre 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 le comportement et d'en extraire des informations pour la croissance des mesures commerciales.

Qu'est-ce que la rétention et pourquoi est-elle nécessaire?


Initialement, notre objectif était de transférer le Growth Hacking du monde de la "médecine numérique" au monde des nombres, de l'analyse et des prévisions. En conséquence, la réduction de l'analyse des produits aux mathématiques et à la programmation pures est pour ceux qui préfèrent les nombres au lieu des histoires et des formules de science-fiction à des mots intelligents comme «rebranding», «repositioning», etc. qui sonnent bien, mais dans la pratique, aident un peu.

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

Retentioneering est une méthode et des outils logiciels analytiques qui peuvent être adaptés et intégrés dans n'importe quel produit numérique (et pas seulement).

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

Tout cela est enveloppé dans une bibliothèque open-source pratique dans le référentiel ouvert Github - retentioneering-tools . L'utilisation de la bibliothèque est facile, presque toute personne qui aime l'analyse de produits, mais qui n'a pas écrit de code auparavant, peut appliquer nos méthodes d'analyse à ses données de manière indépendante et sans dépenses de temps importantes.

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

Trajectoire de l'utilisateur en tant qu'élément de base de l'analyse et méthodes pour son traitement


Trajectoire utilisateur - une séquence d'états utilisateur à des moments précis. De plus, les événements peuvent provenir de différentes sources de données, en ligne et hors ligne. Les événements qui arrivent à l'utilisateur font partie de sa trajectoire. Exemples:
• pressé le bouton
• vu une photo
• frapper l'écran
• reçu un e-mail
• a recommandé le produit à un ami
• rempli le formulaire
• écran scotché
• défilé
• est allé à la caisse
• commandé un burrito
• a mangé un burrito
• empoisonné par des burritos mangés
• est entré dans le café par la porte arrière
• est venu de la porte d'entrée
• minimisé l'application
• reçu une notification push
• stupide sur l'écran pendant plus longtemps X
• payé pour la commande
• acheté une commande
• s'est vu refuser un prêt

Si vous prenez les données des trajectoires d'un groupe d'utilisateurs et étudiez comment les transitions sont organisées, vous pouvez suivre la façon dont leur comportement est construit dans l'application. Cela se fait commodément via un graphique dans lequel les états sont des nœuds et les transitions entre les états sont des arêtes:



"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 universel. Si vous avez de beaux outils pratiques qui vous permettent de travailler avec des chemins, vous pouvez trouver des similitudes, les segmenter.

La segmentation des trajectoires peut sembler au début quelque chose de très compliqué. Dans une situation normale, c'est le cas - vous devez utiliser une comparaison des matrices de connexion ou un alignement de séquence. Nous avons réussi à trouver un moyen plus simple: étudier un grand nombre de trajectoires et les segmenter par clustering.

Comme il s'est avéré, vous pouvez transformer la trajectoire en un point à l'aide de représentations continues, par exemple, TF-IDF . Après la transformation, la trajectoire devient un point dans l'espace, où l'occurrence normalisée dans la trajectoire de divers événements et transitions entre eux est tracée le long des axes. Cette chose d'un immense espace de mille dimensions ou plus (dimS = somme (types d'événements) + somme (types ngrams_2)) peut être projetée sur un plan à l'aide de TSNE . TSNE - transformation, réduit la dimension de l'espace à 2 axes et, si possible, maintient les distances relatives entre les points. En conséquence, il devient possible sur une carte plate, une carte de projection figurative des trajectoires, d'étudier comment les points des différentes trajectoires étaient disposés entre eux. Il est analysé à quel point ils étaient proches ou différents les uns des autres, qu'ils aient formé des grappes ou dispersés le long de la carte, etc.:



Les outils analytiques de rétention permettent de transformer un tableau de données et de trajectoires complexes en une présentation comparable, puis d'examiner et d'interpréter le résultat de la transformation.

Parlant des méthodes de traitement de trajectoire standard, nous parlons des trois principaux outils que nous avons mis en œuvre dans Retentioneering - les graphiques, les matrices de pas et les cartes de projection.

Travailler avec Google Analytics, Firebase et des systèmes d'analyse similaires est assez compliqué et pas efficace à 100%. Le problème est un certain nombre de restrictions pour l'utilisateur, à la suite desquelles le travail de l'analyste repose sur de tels systèmes avec des clics de souris et une sélection de tranches. La rétention permet de travailler avec des chemins d'utilisateur, et pas seulement des entonnoirs, comme dans Google Analytics, où le niveau de détail se résume souvent à un entonnoir, bien qu'il soit conçu pour un segment.

RĂ©tention et cas


Un exemple d'utilisation de l'outil développé est le cas d'un service de niche important en Russie. Cette entreprise possède une application mobile pour Android, qui est populaire auprès des clients. Le chiffre d'affaires annuel d'une application mobile était d'environ 7 millions de roubles, les fluctuations saisonnières de l'ordre de 60 à 130 000. La même société a une application iOS, et le contrôle moyen d'un utilisateur de l'application "apple" était plus élevé que le contrôle moyen d'un client utilisant une application Android - 1,080 frotter. contre 1300 frotter.

La société a décidé d'augmenter l'efficacité de l'application Android, pour laquelle elle a effectué une analyse approfondie. Plusieurs dizaines d'hypothèses ont été formulées sur l'augmentation de l'efficacité de l'application. Après avoir utilisé Retentionneering, il s'est avéré que le problème était dans les messages qui étaient montré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.



Cela a été fait, à la suite de quoi l'application a commencé à être supprimée moins, et l'augmentation de conversion dans l'ordre était de 23%. Au début, 20% du trafic entrant a été donné pour le test, mais après quelques jours, après avoir analysé les premiers résultats et évalué la tendance, ils ont changé les proportions et, au contraire, ont laissé 20% pour le groupe témoin, et quatre-vingts ont été soumis au test. Une semaine plus tard, il a été décidé d'ajouter systématiquement des tests à 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 la rétention?


Les premières étapes sont assez simples - chargez 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 des données pour certaines tâches d'analyse de produit. L'ensemble est constamment mis à jour, alors qu'il suffit pour la première connaissance. Tout le monde peut prendre des modules prêts à l'emploi et postuler immédiatement à ses tâches - cela vous permet de configurer immédiatement le processus d'analyse et d'optimisation plus détaillée des parcours utilisateur aussi rapidement et efficacement que possible. Tout cela permet de trouver des modèles d'utilisation de l'application via un code clair et de partager cette expérience avec des collègues.

La rétention est un outil qui doit être utilisé tout au long de la vie de l'application, et voici pourquoi:
  • Retentioneering est efficace pour suivre et optimiser en continu les parcours utilisateur et amĂ©liorer les performances de l'entreprise. Ainsi, les applications de commerce Ă©lectronique ajoutent souvent de nouvelles fonctionnalitĂ©s, dont l'impact sur le produit ne peut pas toujours ĂŞtre prĂ©dit correctement. Dans certains cas, des problèmes de compatibilitĂ© surviennent entre les nouvelles et les anciennes fonctions - par exemple, les nouvelles «cannibalisent» les fonctions existantes. Et dans cette situation, une analyse constante des trajectoires est nĂ©cessaire.
  • La situation des canaux publicitaires est similaire: les nouvelles sources de trafic et les crĂ©ations publicitaires sont constamment testĂ©es, il est nĂ©cessaire de surveiller la saisonnalitĂ©, les tendances et l'influence 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 personnalisĂ©e.
  • Un certain nombre de facteurs affectent constamment le fonctionnement d'une application. Par exemple, les nouvelles versions des dĂ©veloppeurs: en fermant un problème rĂ©el, ils retournent 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 bogues doit ĂŞtre automatisĂ© - y compris par l'analyse des trajectoires des utilisateurs.

Dans l'ensemble, le maintien en poste 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, construite sur sa base de nouveaux produits sympas. Plus la communauté du projet est active, plus il y aura de fourches, de nouvelles options intéressantes pour son utilisation apparaîtront.

Informations supplémentaires sur les outils de rétention:

Source: https://habr.com/ru/post/fr468721/


All Articles