Wie und warum haben wir anstelle von Google Analytics ein benutzerdefiniertes Analysesystem erstellt?





Hallo Habr! Mein Name ist Ivan Kizimenko, ich bin Head of Analytics bei Outside. In diesem Artikel möchte ich darüber sprechen, wie und warum wir anstelle von Google Analytics ein eigenes benutzerdefiniertes Analysesystem entwickelt haben. Tatsächlich haben wir nicht nur mit Analysen von Google gearbeitet, sondern auch mit anderen Unternehmen, darunter beispielsweise Adobe.



Aber eines guten Tages (und es war wirklich nicht schlecht) entschieden wir uns: „Genug, um das zu ertragen! Es ist Zeit, ein eigenes System zu erstellen. " Unter dem Strich - über die Gründe für diese Entscheidung, die Funktionen des benutzerdefinierten Systems und eine Reihe anderer interessanter Dinge für viele von Habrs Lesern.



Warum brauchen wir das alles?



Wir arbeiten mit relativ großen Kunden mit globalen Lösungen zusammen, die sehr unterschiedliche Analysesysteme haben. Jemand hat Adobe, jemand hat eine Basisversion von Google Analytics, jemand hat 360.



Globale Lösungen haben jedoch eine Reihe von Problemen:



  • Dies sind geschlossene Systeme mit einer Reihe von Einschränkungen beim Zugriff auf Funktionen.
  • Sie haben minimale Anpassungsoptionen.
  • Wenn etwas verbessert werden kann, ist es sehr teuer und darüber hinaus zeitaufwändig.
  • Analytics decken ihre eigenen Lösungen ab, ohne lokale Entwicklungen zu berücksichtigen.


Da Google Analytics möglicherweise das beliebteste Analysesystem ist, sollten Sie zunächst die Nachteile auflisten:



  • Das Erstellen von benutzerdefinierten Berichten und Dashboards ist sehr aufwändig.
  • In den Berichten des Systems werden Daten immer aggregiert, und dieser Prozess ist vollständig oder größtenteils außer Kontrolle geraten.
  • , , , -. .
  • .
  • API.
  • — 24-48 , , .
  • Google Analytics 20. — 200.
  • — . , , IP .


Im Allgemeinen schimpfen wir nicht mit Google Analytics - überhaupt nicht. Dies ist ein ausgezeichnetes System, aber es eignet sich für einen begrenzten, wenn auch ziemlich umfangreichen Aufgabenbereich. Sobald sich jedoch eine bestimmte Aufgabe ergibt, z. B. die Berechnung von Indikatoren für ein Jahr und der Vergleich mit dem vergangenen Zeitraum, beginnen Probleme. Irgendwo deckt das Markup die Anfrage überhaupt nicht ab, irgendwo ist es abgefallen. Nun, oder die Art und Weise, wie das Ereignis geschrieben wird, hat sich geändert. Sie müssen Python "starten", die Daten nach Tagen und Wochen sortieren und zumindest minimal realitätsnahe Daten generieren.



Andere Systeme haben ebenfalls Probleme, einschließlich Adobe Analytics. Wenn Sie also Tools verbinden müssen, die in Adobe nicht verfügbar sind, ist dies lang und teuer. In diesem Fall ist es wirtschaftlich unrentabel, ein auf Adobe basierendes System zu erstellen, das alle Anforderungen der Webanalyse des Unternehmens abdeckt. Ein wesentlicher Nachteil des Systems besteht darin, dass es nur globale Projekte abdeckt.



Probleme treten manchmal dort auf, wo Sie sie nicht erwarten. Zum Beispiel brauchten wir einen Bericht für das letzte Jahr, wir wollten sie aus Google Analytics "herausziehen", aber es hat nicht geklappt. Es stellte sich heraus, dass jemand von den Leitern der Zentrale in die Schaltereinstellungen ging und die Einstellungen änderte, sodass alle benötigten historischen Daten einfach gelöscht wurden.



Am Ende bekommen wir grundlegende Dinge in ziemlich komplexen Systemen. Dies sind Verkehr, Leads, Absprungrate (BR).



Der Tag, an dem sich alles änderte



Bild



Alles wäre in Ordnung, aber es gibt ein großes Problem - die Absprungrate, ein Indikator, auf den die meisten Spezialisten achten. Natürlich will jeder es senken. Wenn Sie möchten, ist dies sehr einfach: Ein Timer wird für 25 Sekunden „aufgehängt“, das Ereignis verschwindet und der Prozentsatz der Fehler sinkt. Dies ist aber nur formal, in Wirklichkeit bleibt alles wie zuvor.



Wenn Sie beispielsweise die Zählmethode ändern, fügen Sie den Sekunden 2 Browser-Bildlaufereignisse hinzu, dann wächst BR, und zweifelhafte Quellen von CPA und Programmatic zeigen eine Fehlerrate von 80% an. Nach einer Änderung der Methodik ist es fast unmöglich, den Prozentsatz der Ablehnungen für ein Jahr zu berechnen, in dem mehrere Methoden angewendet wurden.



Es gibt andere Probleme, einschließlich eines hohen Arbeitsaufwands, einer Zunahme der Anzahl von Python-Skripten und CRON-Aufgaben, komplexer Berichte, die schwer zu erstellen sind, und End-to-End-Analysen sind nicht verfügbar. Im Allgemeinen haben wir beschlossen, den Ansatz sowohl für die Analyse als auch für das Markup zu überarbeiten. Zunächst haben wir uns für die kritischen Bedürfnisse entschieden:



  • Zugriff auf Rohdaten erhalten.
  • Die Möglichkeit, eine beliebige Menge zusätzlicher Informationen zu übertragen.
  • Die Fähigkeit, Backup zu machen.
  • Auto-Markup verwenden.
  • Die Möglichkeit, die Datenbank mit BI-Tools zu verbinden.


Am besten stellen Sie Ihr eigenes Datenerfassungssystem zusammen, das so schnell wie möglich einfach geändert und angepasst werden kann. Nun, wir haben Clickhouse als Datenspeicher verwendet. Es ist klar, dass Ihr eigenes Analysesystem eine Reihe von Kriterien erfüllen muss, die wir zu Beginn formuliert haben:



  • Die Möglichkeit, beliebige Datenmengen auf Ihren eigenen Servern zu speichern. Bei Bedarf können Sie auch den Zugriff auf Daten einschränken.
  • Sammeln Sie eine beliebige Anzahl von Ereignissen und Parametern, wodurch viel mehr Daten für die Analyse bereitgestellt werden.
  • Die Möglichkeit zur Integration in Dienste wie CRM, CAllTracking, BI, Instant Messenger, Werbesysteme usw.
  • Plattformübergreifende Benutzerverfolgung nach Cookie und Benutzer-ID.
  • Erstellen Sie Ihre eigenen Attributionsmodelle.
  • Arbeiten mit Open Source und keine Sicherheitsprobleme.
  • Rechtzeitiges Feedback von der Site, Senden von Ereignissen aus Analysen direkt während der Sitzung des Benutzers an die Site.
  • Anpassung einer analytischen Lösung an die Anforderungen eines bestimmten Unternehmens.


Nach diesen Kriterien haben wir unser eigenes Analysesystem zusammengestellt, das wir jetzt verwenden. Die Daten werden in ihrer Rohform in ClickHouse gespeichert. Ein weiterer Vorteil des benutzerdefinierten Analysesystems besteht übrigens darin, dass die Anzahl der Parameter nicht eingeschränkt ist. Dies eröffnete beispielsweise sofort die Möglichkeit, weitere Informationen zu erhalten. Wir wissen jetzt zum Beispiel, welche Farben, Optionen, Motoren und andere Parameter in Fahrzeugkonfiguratoren sehr beliebt sind.



Was ist mit Visualisierung?



Als BI-Tool haben wir zuerst die Metabasis ausprobiert, die nicht funktioniert hat, da sie seltsamerweise mit Caches funktioniert und schwer anzupassen ist. Wir haben uns für Apache Superset entschieden und hier ist der Grund:



  • Es entwickelt sich schnell. Jeden Monat einige neue Verbesserungen und Updates.
  • Sie können Ihre eigenen Diagramme und Visualisierungen erstellen, z. B. Echarts, dessen Arsenal eine Vielzahl von Möglichkeiten bietet.
  • Anpassen des Erscheinungsbilds von Dashboards in CSS - Es ist ganz einfach, ein Dashboard für die Corporate Identity der Marke zu erstellen.
  • Gutes Recherchetool. Sie können schnell eine SQL-Abfrage skizzieren und eine Antwort erhalten.
  • Es ist möglich, Berichte an Email und Slack zu senden
  • Zugriffskontrolle sofort einsatzbereit. Für jedes Diagramm, jeden Datensatz und was auch immer können Sie den Zugriff auf bestimmte Benutzer konfigurieren.


Inzwischen sind mehrere Dutzend Dashboards mit unterschiedlichen Zugriffsebenen für unterschiedliche Aufgaben verfügbar. Dies umfasst Dashboards für Basisdatenverkehrsmetriken, Dashboards für Produktteams und andere Agenturen.



Nach der Einführung des Systems stieg die Verarbeitungsgeschwindigkeit von nicht standardmäßigen Fragen erheblich an. Es handelt sich jetzt um eine Reihe von SQL-Abfragen über SQLab in Superset. Und - Aufmerksamkeit - Sie können auch andere Datenbanken verbinden, die nur teilweise in der Webanalyse verwendet werden.



Vergessen wir nicht die Automatisierung



Zur Lösung von Routineaufgaben verwendeten wir Apache Airflow 2. Dadurch konnten wir Daten hochladen und Berichte in einem einzigen Tool erstellen. Letztendlich war es möglich, Daten aus anderen Quellen und anderen Agenturen zu aggregieren, um die Abschlussberichte zu erstellen.



Bild



Nach einiger Zeit war es möglich, ein Analysesystem zu entwickeln, mit dem nicht nur Dienste erstellt werden können, die in Echtzeit auf Ereignisse reagieren, sondern auch E-Mail und Push vergiften sowie Webhooks senden oder Signale direkt an den Browser senden können.



Mit dem benutzerdefinierten System können Sie unter anderem problemlos eine Verbindung zu IP-Adressen von Drittanbietern herstellen.



Unter der Haube verfügt das System über ein eigenes Analyse-Framework für Python und Type / JavaScript, das den Entwicklungsprozess vereinfacht und beschleunigt. Es gibt auch ein Start- und Steuerungssystem sowie eine eingebettete Entwicklungsumgebung auf der Basis von Theia IDE sowie ein Jupiter-Labor für schnelle Forschung und Prototyping. Schließlich ist Grafana ein Visualisierungstool und einfache Dashboards.



Als Beispiel für die Arbeit des resultierenden Systems können wir seine Verwendung zur Berechnung des AB-Tests des AVN der Firma Skoda anführen. Benutzerdefinierte Analysen ermöglichten Folgendes:



  • Holen Sie sich Daten von Clickhouse.
  • Verarbeiten Sie Informationen bei Pythone + Clickhouse.
  • Speichern Sie berechnete Daten in CSV.
  • Stellen Sie einen Timer ein, der alle 6 Stunden startet.
  • Die Möglichkeit, den Dienst zu stoppen, neu zu erstellen oder anzupassen, da er unabhängig von anderen Systemen funktioniert.


Es klingt etwas kompliziert, kann aber anhand eines Beispiels erklärt werden. Wenn ein Benutzer eine Anfrage zum Kauf eines Autos hinterlässt, erreicht zuvor nur die Telefonnummer des Käufers den Verkaufsleiter. Der Spezialist muss also den Kunden erneut anrufen und nach allem fragen, was bereits früher ausgefüllt wurde.



Jetzt erhält der Manager zusätzlich zur Anwendung zusammenfassende Informationen über den Besucher, einschließlich dessen Interesse an einer bestimmten Automarke, Konfiguration usw. Übrigens erhält der Manager personalisierte Informationen. Außerdem versteht der Manager besser, was eine Person braucht und was sie anbieten kann.



Abschließend sollte gesagt werden, dass am Ende alles geklappt hat - ein benutzerdefiniertes Analysesystem funktioniert zum Nutzen der Kunden, ohne dass die Gefahr besteht, dass Daten in sechs Monaten oder sogar einem Jahr verloren gehen. Die Datenanalyse mit anschließender Visualisierung nimmt nur wenig Zeit in Anspruch. Wenn Sie etwas hinzufügen und entfernen müssen, können Sie dies sehr schnell und mit minimalen Kosten tun.



All Articles