Retentioneering: Wie wir Open-Source-Produktanalysetools in Python und Pandas geschrieben haben

Hallo Habr. Dieser Artikel ist den Ergebnissen einer vierjährigen Entwicklung einer Reihe von Methoden und Werkzeugen zur Verarbeitung von Benutzerbewegungsbahnen in einer Anwendung oder auf einer Website gewidmet. Autor der Entwicklung - Maxim Godzi, der an der Spitze des Teams der Produktentwickler steht, ist auch der Autor des Artikels. Das Produkt selbst hieß Retentioneering, jetzt wurde es in eine Open-Source-Bibliothek umgewandelt und auf Github gehostet, sodass es jeder nutzen kann. All dies könnte für diejenigen von Interesse sein, die sich mit Produkt- und Marketinganalysen, Produktwerbung und -entwicklung befassen. Übrigens auf Habré Über einen der Fälle der Arbeit mit Retentioneering wurde bereits ein Artikel veröffentlicht. Das neue Material erklärt, wozu das Produkt in der Lage ist und wie es eingesetzt werden kann.

Nachdem Sie den Artikel gelesen haben, werden Sie in der Lage sein, Ihr eigenes Retentioneering zu schreiben. Dabei kann es sich um jede standardisierte Methode zur Verarbeitung von Benutzerverläufen in der Anwendung und darüber hinaus handeln, die es Ihnen ermöglicht, die Verhaltensmerkmale im Detail zu sehen und daraus Erkenntnisse für das Wachstum von zu gewinnen Geschäftskennzahlen.

Was ist Retentioneering und warum wird es benötigt?

Unser Ziel war es zunächst, Growth Hacking von der Welt der „digitalen Hexerei“ in die Welt der Zahlen, Analysen und Prognosen zu verlagern. Dadurch wird die Produktanalyse auf reine Mathematik und Programmierung für diejenigen reduziert, die Zahlen statt fantastischer Geschichten bevorzugen, und Formeln statt kluger Worte wie „Rebranding“, „Neupositionierung“ usw., die zwar schön klingen, in der Praxis aber nicht so sind helfen sehr.

Um diese Probleme zu lösen, benötigten wir ein Framework für Analysen anhand von Diagrammen und Trajektorien und gleichzeitig eine Bibliothek, die typische Analystenroutinen vereinfacht, um regelmäßige Produktanalyseaufgaben zu beschreiben, die sowohl für Menschen als auch für Roboter verständlich sind. Die Bibliothek bietet die Möglichkeit, das Benutzerverhalten zu beschreiben und es in einer so formalen und klaren Sprache mit Produktgeschäftsmetriken zu verknüpfen, um die Routineaufgaben von Entwicklern und Analysten zu vereinfachen und zu automatisieren und ihre Kommunikation mit dem Unternehmen zu erleichtern.

Retentioneering ist eine Methode und analytische Softwaretools, die in jedes digitale (und nicht nur) Produkt angepasst und integriert werden können.

Wir haben 2015 mit der Arbeit an dem Produkt begonnen. Jetzt handelt es sich um einen fertigen, wenn auch noch nicht idealen Satz von Tools für die Arbeit mit Daten in Python und Pandas, Modellen für maschinelles Lernen mit Sklearn-ähnlicher API, Tools für die Interpretation der Ergebnisse von eli5 und Shap-Modellen für maschinelles Lernen.

Es ist alles erledigt in eine praktische Open-Source-Bibliothek im offenen Github-Repository – Retentioneering-Tools. Die Verwendung der Bibliothek ist nicht schwierig. Fast jeder, der Produktanalysen liebt, aber noch nie Code geschrieben hat, kann unsere Analysemethoden selbstständig und ohne großen Zeitaufwand auf seine Daten anwenden.

Nun, ein Programmierer, Anwendungsersteller oder ein Mitglied eines Entwicklungs- oder Testteams, das noch nie zuvor Analysen durchgeführt hat, kann mit diesem Code experimentieren und ohne fremde Hilfe Muster bei der Verwendung seiner Anwendung erkennen.

Benutzertrajektorie als grundlegendes Element der Analyse und Methoden zu ihrer Verarbeitung

Die Benutzerbahn ist eine Abfolge von Benutzerzuständen zu bestimmten Zeitpunkten. Darüber hinaus können Ereignisse aus unterschiedlichen Datenquellen stammen, sowohl online als auch offline. Die Ereignisse, die dem Benutzer widerfahren sind, sind Teil seiner Flugbahn. Beispiele:
• die Taste gedrückt
• ein Bild gesehen hat
• Schlagen Sie auf den Bildschirm
• eine E-Mail erhalten
• das Produkt einem Freund empfohlen hat
• Füllen Sie das Formular aus
• tippte auf den Bildschirm
• gescrollt
• ging zur Kasse
• einen Burrito bestellt
• einen Burrito gegessen
• durch den Burrito, den er gegessen hat, vergiftet wurde
• betrat das Café durch den Hintereingang
• Eingang über den Haupteingang
• die Anwendung minimiert
• eine Push-Benachrichtigung erhalten
• dumm auf dem Bildschirm für längere Zeit Х
• für die Bestellung bezahlt
• die Bestellung eingelöst
• wurde ein Kredit verweigert

Wenn Sie die Flugbahndaten einer Gruppe von Benutzern verwenden und untersuchen, wie die Übergänge funktionieren, können Sie genau sehen, wie ihr Verhalten in der Anwendung aufgebaut ist. Dies lässt sich bequem über einen Graphen erreichen, in dem die Zustände Knoten und die Übergänge zwischen Zuständen Kanten sind:

Retentioneering: Wie wir Open-Source-Produktanalysetools in Python und Pandas geschrieben haben

„Trajectory“ ist ein sehr praktisches Konzept – es enthält detaillierte Informationen zu allen Benutzeraktionen und bietet die Möglichkeit, der Beschreibung dieser Aktionen beliebige zusätzliche Daten hinzuzufügen. Dies macht es zu einem generischen Objekt. Wenn Sie über schöne und praktische Werkzeuge verfügen, mit denen Sie mit Flugbahnen arbeiten können, können Sie Ähnlichkeiten finden und diese segmentieren.

Die Segmentierung der Flugbahn mag zunächst sehr kompliziert erscheinen. In einer normalen Situation ist dies der Fall – Sie müssen einen Vergleich von Konnektivitätsmatrizen oder eine Ausrichtung von Sequenzen verwenden. Es ist uns gelungen, einen einfacheren Weg zu finden – eine große Anzahl von Flugbahnen zu untersuchen und sie durch Clustering zu segmentieren.

Wie sich herausstellte, ist es möglich, eine Trajektorie mithilfe kontinuierlicher Darstellungen in einen Punkt umzuwandeln, beispielsweise TF-IDF. Nach der Transformation wird die Trajektorie zu einem Punkt im Raum, an dessen Achsen das normalisierte Auftreten verschiedener Ereignisse und Übergänge zwischen ihnen in der Trajektorie aufgetragen wird. Dieses Ding aus einem riesigen tausend- und mehrdimensionalen Raum (dimS=sum(event-Typen)+sum(ngrams_2-Typen)) kann mit auf eine Ebene projiziert werden TSNE. TSNE – Transformation, reduziert die Raumdimension auf 2 Achsen und behält, wenn möglich, die relativen Abstände zwischen Punkten bei. Dementsprechend wird es möglich, auf einer flachen Karte, einer figurativen Projektionskarte von Flugbahnen, zu untersuchen, wie die Punkte verschiedener Flugbahnen untereinander lagen. Es wird analysiert, wie nah oder unterschiedlich sie beieinander waren, ob sie Cluster bildeten oder über die Karte verstreut waren usw.:

Retentioneering: Wie wir Open-Source-Produktanalysetools in Python und Pandas geschrieben haben

Retentioneering-Analysetools bieten die Möglichkeit, komplexe Daten und Trajektorien in eine Darstellung umzuwandeln, die miteinander verglichen werden kann, und anschließend das Ergebnis der Transformation zu untersuchen und zu interpretieren.

Wenn wir von Standardmethoden zur Trajektorienverarbeitung sprechen, meinen wir drei Hauptwerkzeuge, die wir in Retentioneering implementiert haben – Diagramme, Stufenmatrizen und Trajektorienprojektionskarten.

Die Arbeit mit Google Analytics, Firebase und ähnlichen Analysesystemen ist recht kompliziert und nicht 100 % effizient. Das Problem besteht in einer Reihe von Einschränkungen für den Benutzer, wodurch die Arbeit des Analysten in solchen Systemen auf Mausklicks und der Auswahl von Slices beruht. Retentioneering ermöglicht es, mit Benutzerverläufen zu arbeiten und nicht nur mit Trichtern wie in Google Analytics, wo der Detaillierungsgrad oft auf einen Trichter reduziert wird, obwohl er für ein bestimmtes Segment erstellt wurde.

Retentioneering und Fallstudien

Als Beispiel für den Einsatz des entwickelten Tools können wir den Fall eines großen Nischendienstes in Russland anführen. Dieses Unternehmen verfügt über eine mobile Android-App, die bei Kunden beliebt ist. Der Jahresumsatz mit der mobilen Anwendung betrug etwa 7 Millionen Rubel, saisonale Schwankungen lagen zwischen 60 und 130. Das gleiche Unternehmen hat auch eine Anwendung für iOS, und der durchschnittliche Scheck des Benutzers der „Apple“-Anwendung war höher als der Durchschnitt Überprüfung des Clients mit der Android-Anwendung - 1080 Rubel. gegen 1300 Rubel.

Das Unternehmen beschloss, die Effizienz der Android-Anwendung zu steigern und führte dafür eine gründliche Analyse durch. Um die Wirksamkeit der Anwendung zu steigern, wurden mehrere Dutzend Hypothesen gebildet. Nach der Verwendung von Retentionneering stellte sich heraus, dass das Problem in den Nachrichten lag, die neuen Benutzern angezeigt wurden. Sie erhielten Informationen über die Marke, Unternehmensvorteile und Preise. Wie sich jedoch herausstellte, sollten die Nachrichten dem Benutzer helfen, die Arbeit in der Anwendung zu erlernen.

Retentioneering: Wie wir Open-Source-Produktanalysetools in Python und Pandas geschrieben haben

Dies führte dazu, dass die Anwendung weniger gelöscht wurde und die Umwandlung in eine Bestellung um 23 % stieg. Zunächst wurden 20 Prozent des eingehenden Datenverkehrs für den Test freigegeben, doch einige Tage später, nach der Analyse der ersten Ergebnisse und der Bewertung des Trends, kehrten sie die Proportionen um und überließen im Gegenteil 20 Prozent der Kontrollgruppe und platzierten sie achtzig Prozent im Test. Eine Woche später wurde beschlossen, nacheinander zwei weitere Hypothesen zu testen. In nur sieben Wochen stieg der Umsatz mit der Android-Anwendung im Vergleich zum vorherigen Niveau um das Eineinhalbfache.

Wie arbeitet man mit Retentioneering?

Die ersten Schritte sind recht einfach: Wir laden die Bibliothek mit dem Befehl pip install retaineering. Das Repository selbst enthält vorgefertigte Beispiele und Datenverarbeitungsfälle für einige Produktanalyseaufgaben. Das Set wird ständig aktualisiert, bis es für das erste Kennenlernen reicht. Jeder kann vorgefertigte Module nehmen und sofort auf seine Aufgaben anwenden – so können Sie den Prozess der detaillierteren Analyse und Optimierung von Benutzerverläufen so schnell und effizient wie möglich sofort einrichten. All dies ermöglicht es, Anwendungsnutzungsmuster durch verständlichen Code zu finden und diese Erfahrung mit Kollegen zu teilen.

Retentioneering ist ein Tool, das es wert ist, während der gesamten Lebensdauer einer App eingesetzt zu werden, und hier erfahren Sie, warum:

  • Retentioneering ist effektiv, um Benutzerverläufe zu verfolgen und kontinuierlich zu optimieren und die Geschäftsleistung zu verbessern. Daher werden E-Commerce-Anwendungen häufig um neue Funktionen erweitert, deren Auswirkungen auf das Produkt nicht immer richtig vorhersehbar sind. In einigen Fällen gibt es Kompatibilitätsprobleme zwischen neuen und alten Funktionen – zum Beispiel „kannibalisieren“ neue Funktionen vorhandene. Und in dieser Situation ist eine ständige Analyse der Flugbahnen erforderlich.
  • Ähnlich verhält es sich bei der Arbeit mit Werbekanälen: Neue Traffic-Quellen und Werbekreative werden ständig getestet, Saisonalität, Trends und die Auswirkungen anderer Ereignisse müssen überwacht werden, was zur Entstehung neuer Problemklassen führt. Es erfordert außerdem eine ständige Überwachung und Interpretation der Benutzermechanik.
  • Es gibt eine Reihe von Faktoren, die den Betrieb der Anwendung ständig beeinflussen. Zum Beispiel neue Releases von Entwicklern: Indem sie ein tatsächliches Problem schließen, geben sie unabsichtlich das alte zurück oder erstellen ein völlig neues. Mit der Zeit wächst die Zahl neuer Releases und der Prozess der Fehlerverfolgung muss automatisiert werden, unter anderem durch die Analyse von Benutzerverläufen.

Insgesamt ist Retentioneering ein wirksames Instrument. Aber der Perfektion sind keine Grenzen gesetzt – sie kann und soll verbessert, weiterentwickelt und auf ihrer Basis neue coole Produkte gebaut werden. Je aktiver die Projektgemeinschaft ist, desto mehr Forks wird es geben und neue interessante Möglichkeiten für ihre Nutzung ergeben sich.

Weitere Informationen zu Retentioneering-Tools:

Source: habr.com

Kommentar hinzufügen