Stellen Sie sich vor, Sie sind ein angehender Unternehmer, der gerade eine Website und eine mobile Anwendung erstellt hat (z. B. für einen Donut-Shop). Sie möchten Benutzeranalysen mit einem kleinen Budget verbinden, wissen aber nicht wie. Jeder nutzt Mixpanel, Facebook Analytics, Yandex.Metrica und andere Systeme, aber es ist nicht klar, was er wählen und wie er es verwenden soll.

Was sind Analysesysteme?
Zunächst muss ich sagen, dass das Benutzeranalysesystem kein System zur Analyse der Protokolle des Dienstes selbst ist. Die Überwachung der Funktionsweise des Dienstes konzentriert sich auf Stabilität und Leistung und wird von den Entwicklern separat durchgeführt. Benutzeranalysen wurden erstellt, um das Verhalten des Benutzers genau zu untersuchen: Welche Aktionen führt er aus, wie oft, wie reagiert er auf Pushing oder andere Ereignisse im Dienst. Benutzeranalysen umfassen weltweit zwei Bereiche: Mobil- und Webanalysen. Trotz der unterschiedlichen Schnittstellen und Funktionen von Web- und mobilen Diensten ist die Arbeit mit dem Analysesystem in beide Richtungen ungefähr gleich.
Warum wird das benötigt?
Benutzeranalyse erforderlich:
- zu überwachen, was bei der Nutzung des Dienstes passiert;
- den Inhalt zu ändern und zu verstehen, wo entwickelt, welche Funktionen hinzugefügt / entfernt werden müssen;
- um herauszufinden, was den Benutzern nicht gefällt, und um es zu ändern.
Wie funktioniert es
Um das Benutzerverhalten zu untersuchen, müssen Sie einen Verlauf dieses Verhaltens erfassen. Aber was genau soll man sammeln? Diese Frage macht bis zu 70% der Komplexität der gesamten Aufgabe aus. Viele Teilnehmer des Produktteams müssen gemeinsam antworten: Produktmanager, Programmierer, Analysten. Jeder Fehler in diesem Schritt ist teuer: Sie können nicht sammeln, was Sie benötigen, und etwas sammeln, das es Ihnen nicht ermöglicht, signifikante Schlussfolgerungen zu ziehen.
Sobald Sie sich für eine Montage entschieden haben, müssen Sie die Architektur für die Montage berücksichtigen. Das Hauptobjekt, mit dem analytische Systeme arbeiten, ist ein Ereignis. Ereignis ist eine Beschreibung dessen, was passiert ist, das als Reaktion auf die Aktion eines Benutzers an das Analysesystem gesendet wird. In der Regel sieht das Ereignis für jede der im vorherigen Schritt für die Nachverfolgung ausgewählten Aktionen wie ein JSON-Paket mit Feldern aus, die die perfekte Aktion beschreiben.
Was für ein JSON-Paket?Ein JSON-Paket ist eine Textdatei, die beschreibt, was passiert ist. Beispielsweise kann ein JSON-Paket Informationen enthalten, dass Benutzer Mary die Aktion "Gestartetes Spiel" am 15. November um 23:00 Uhr ausgeführt hat. Wie kann man jede Aktion beschreiben? Ein Benutzer klickt beispielsweise auf eine Schaltfläche. Welche Immobilien müssen zu diesem Zeitpunkt gesammelt werden? Sie sind in zwei Typen unterteilt:
- Super-Eigenschaften - Eigenschaften, die für alle Ereignisse charakteristisch sind, die immer vorhanden sind. Diesmal Geräte-ID, API-Version, Analyseversion, Betriebssystemversion;
- ereignisspezifische Eigenschaften - Diese Eigenschaften sind willkürlich und die Hauptschwierigkeit besteht darin, sie auszuwählen. Für die Schaltfläche "Münzen kaufen" im Spiel wären solche Eigenschaften beispielsweise "wie viele Münzen der Benutzer gekauft hat", "wie viel die Münzen kosten".
Ein Beispiel für ein JSON-Paket in einem Sprachlerndienst:

Aber warum nicht einfach alles hintereinander sammeln?
Weil alle Ereignisse manuell erstellt werden. In Analysesystemen gibt es keine Schaltfläche "Alles speichern" (und das wäre sinnlos). Es werden nur die Aktionen aus der Servicelogik erfasst, die für einen Teil des Teams interessant sind. Selbst für jeden Status einer Schaltfläche oder eines Fensters sind normalerweise nicht alle Ereignisse von Interesse. Für lange Prozesse (zum Beispiel das Level des Spiels) können nur der Anfang und das Ende wichtig sein. Was in der Mitte passiert, kann möglicherweise nicht gesammelt werden.
In der Regel besteht die Logik von Diensten aus Objekten - Entitäten. Es kann eine Münzentität sein, eine Ebenenentität. Daher ist es möglich, Ereignisse aus Entitäten, ihren Zuständen und Aktionen zu kompilieren. Beispiele: "Das Level hat begonnen", "Das Level ist beendet", "Das Level ist beendet, der Grund wird vom Drachen gefressen". Es ist wünschenswert, dass alle Entitäten, die „entdeckt“ werden können, geschlossen werden, um die Logik nicht zu verletzen und sich die weitere Arbeit mit Analysen nicht zu erschweren.

Wie viele Ereignisse befinden sich in einem komplexen System?
Komplexe Systeme können mehrere hundert Ereignisse verarbeiten, die von allen Kunden (Produktmanager, Programmierer, Analysten) gesammelt und sorgfältig (!) Auf das Tablet und dann auf die Servicelogik übertragen wurden. Die Veranstaltungsvorbereitung ist eine große interdisziplinäre Arbeit, bei der jeder verstehen muss, was gesammelt werden muss, Aufmerksamkeit und Genauigkeit.
Was weiter?
Nehmen wir an, wir haben uns alle interessanten Ereignisse ausgedacht. Es ist Zeit, sie zu sammeln. Dazu müssen Sie eine Clientanalyse verbinden. Wir gehen zu Google und suchen nach mobilen Analysen (oder wählen aus den bekannten: Mixpanel , Yandex.Metrica , Google Analytics , Facebook Analytics , Tune , Amplitude ). Wir nehmen das SDK von der Site und binden es in den Code unseres Dienstes ein (daher der Name „Client“ - da das SDK in den Client integriert ist).
Und wo kann man Events sammeln?
Alle JSON-Pakete, die erstellt werden, müssen irgendwo gespeichert werden. Wohin sollen sie geschickt werden und wohin werden sie gehen? Im Falle eines Client-Analysesystems ist sie dafür verantwortlich. Wir wissen nicht, wo sich unsere JSON-Pakete befinden, wo sie gespeichert sind, wie viele es gibt und wie sie dort gespeichert sind. Der gesamte Erfassungsprozess wird vom System durchgeführt und spielt für uns keine Rolle. Im Analysedienst erhalten wir Zugriff auf Ihr persönliches Konto, in dem bereits die Ergebnisse der Verarbeitung der anfänglichen Verhaltensdaten angezeigt werden. Darüber hinaus arbeiten Analysten mit dem, was sie in Ihrem Konto sehen.
In den kostenlosen Versionen können die Quelldaten normalerweise nicht heruntergeladen werden. In der teuren Version gibt es solche Möglichkeiten.
Wie lange dauert die Verbindung?
Die einfachste Analyse kann in einer Stunde verbunden werden: Es wird die App Metrika sein, die die einfachsten Dinge zeigt, ohne benutzerdefinierte Ereignisse zu analysieren. Die Rüstzeit für ein komplexeres System hängt von den ausgewählten Ereignissen ab. Es gibt Schwierigkeiten, die zusätzliche Entwicklung erfordern:
- Gibt es eine Warteschlange mit Ereignissen? Wie kann beispielsweise behoben werden, dass ein Ereignis nicht früher als ein anderes auftreten kann?
- Was tun, wenn der Benutzer die Zeit verschoben hat? Zeitzone geändert?
- Was ist, wenn es kein Internet gibt?
Im Durchschnitt können Sie Mixpanel in ein paar Tagen einrichten. Wenn geplant ist, eine große Anzahl spezifischer Ereignisse zu sammeln, kann dies eine Woche dauern.

Wie wähle ich aus, welches ich brauche?
Allgemeine Statistiken in allen Analysesystemen funktionieren einwandfrei. Gut geeignet für Vermarkter und Verkäufer: Sie können die Aufbewahrung, die Anzahl der Benutzer, die in der Anwendung verbracht haben, und alle grundlegenden Kennzahlen auf hoher Ebene sehen. Für die einfachste Zielseite reichen Yandex-Metriken aus.
Wenn es um nicht standardmäßige Aufgaben geht, hängt die Auswahl von Ihrem Service, Ihren analytischen Aufgaben und Ereignissen ab, die verarbeitet werden müssen, um sie zu lösen.
- In Mixpanel können beispielsweise A / B-Tests durchgeführt werden. Wie kann man das machen? Sie erstellen ein Experiment, in dem mehrere Beispiele vorhanden sind, und treffen eine Auswahl (Sie weisen solche Benutzer A, andere B zu). Für A ist die Schaltfläche grün, für B blau. Da Mixpanel alle Daten sammelt, kann es die Geräte-ID jedes Benutzers aus A und B ermitteln. Im Service-Code werden mithilfe des SDK Optimierungen erstellt - dies sind Orte, an denen sich zum Testen etwas ändern kann. Außerdem wird für jeden Benutzer der Wert (in unserem Fall die Tastenfarbe) aus dem Mixpanel gezogen. Wenn keine Internetverbindung besteht, wird die Standardoption ausgewählt.
- Oft möchten Sie nicht nur Ereignisse speichern und untersuchen, sondern auch Benutzer aggregieren. Das gleiche Mixpanel tut dies automatisch auf der Registerkarte Benutzer. Dort können Sie alle permanenten Benutzerdaten (Name, E-Mail, Facebook-Profil) und den Verlauf der Benutzerprotokolle anzeigen. Sie können die Benutzerdaten als Statistik betrachten: Der Drache aß 100 Mal, kaufte 3 Blumen . In einigen Systemen kann die Benutzeraggregation heruntergeladen werden.
- Was ist die größte Coolness von Facebook Analytics ? Es kombiniert den Besucher des Dienstes mit seinem Facebook-Profil. Daher können Sie Ihr Publikum herausfinden und es vor allem in ein Werbepublikum umwandeln. Wenn ich beispielsweise die Website einmal besucht habe und der Eigentümer Anzeigen (automatisch ausfüllbare Zielgruppe in Facebook-Analysen) für Besucher aufgenommen hat, werden in Zukunft Anzeigen auf dieser Website auf Facebook geschaltet. Für den Websitebesitzer funktioniert dies einfach und bequem. Sie müssen lediglich daran denken, das Werbebudget täglich zu begrenzen. Das Minus der Facebook-Analyse ist, dass es nicht besonders praktisch ist: Eine ziemlich komplexe Website, die nicht sofort klar ist, funktioniert nicht sehr schnell.
Fast nichts zu tun und alles funktioniert! Wahrscheinlich gibt es Nachteile?
Ja, und eine davon ist, dass es normalerweise teuer ist. Für ein Startup können es rund 50.000 US-Dollar pro Monat sein. Es gibt aber auch kostenlose Optionen. Die Yandex App Metrica ist kostenlos und für die grundlegendsten Metriken geeignet.
Wenn die Lösung jedoch kostengünstig ist, werden die Analysen nicht detailliert dargestellt: Es ist möglich, den Gerätetyp, das Betriebssystem, jedoch keine spezifischen Ereignisse anzuzeigen, und es können keine Trichter erstellt werden. Mixpanel kann 50.000 Dollar pro Jahr kosten (zum Beispiel kann eine Anwendung mit Am Nyam so viel essen). Im Allgemeinen ist der Zugriff auf Daten häufig insgesamt sehr eingeschränkt. Sie können sich keine eigenen Modelle vorstellen und betreiben. Die Zahlung erfolgt in der Regel monatlich / periodisch.
Noch mehr?
Das Schlimmste ist jedoch, dass selbst Mixpanel die Datenmenge, die für eine aktive mobile Anwendung charakteristisch ist, als Annäherung betrachtet (offen direkt in der Dokumentation angegeben). Wenn Sie die Ergebnisse mit der Serveranalyse vergleichen, weichen die Werte voneinander ab. (Informationen zum Erstellen eigener Serveranalysen finden Sie in unserem nächsten Artikel!)
Das große Minus fast aller Analysesysteme ist, dass sie den Zugriff auf Rohprotokolle einschränken. Wenn Sie also Ihr eigenes Modell starten, funktionieren Ihre eigenen Daten anscheinend nicht. Wenn Sie sich beispielsweise die Trichter in Mixpanel ansehen, können Sie nur die durchschnittliche Zeit zwischen den Schritten berechnen. Komplexere Metriken wie Medianzeit oder Perzentile können nicht berechnet werden.
Oft reicht auch die Fähigkeit komplexer Aggregationen und Segmentierungen nicht aus. Zum Beispiel ist die listige Gruppe "Benutzer, die 1990 geboren wurden und jeweils mindestens 50 Donuts gekauft haben" möglicherweise nicht verfügbar.
Facebook Analytics hat eine sehr komplexe Oberfläche und ist langsam.
Und wenn ich alle Systeme gleichzeitig einschalte?
Eine super Idee! Es kommt häufig vor, dass unterschiedliche Systeme unterschiedliche Ergebnisse liefern. Unterschiedliche Zahlen. Darüber hinaus haben einige eine Funktion, zweitens eine andere, andere sind kostenlos.
Darüber hinaus können zum Testen mehrere Systeme parallel eingebunden werden: Zum Beispiel, um sich mit der neuen Schnittstelle vertraut zu machen und schrittweise darauf umzuschalten. Wie in jedem Unternehmen müssen Sie hier die Kennzahl kennen und die Analyse in einem solchen Umfang verbinden, dass Sie den Überblick behalten können (und die Netzwerkverbindung nicht verlangsamt).
Wir haben uns alle zusammengetan und dann neue Funktionen veröffentlicht, wie man Ereignisse hinzufügt.
Wie beim Verbinden von Analysen von Grund auf neu: Sammeln Sie eine Beschreibung der erforderlichen Ereignisse und fügen Sie sie mit dem SDK in den Clientcode ein.
Ich hoffe, Sie finden die Antworten auf Ihre häufig gestellten Fragen hilfreich. Wenn sie Ihnen helfen zu verstehen, dass Client Analytics nicht für Ihre Anwendung geeignet sind, empfehlen wir Ihnen, Ihre Server Analytics auszuprobieren. Ich werde im nächsten Teil darüber sprechen und dann darüber, wie ich dies in mein Projekt übersetzen kann.