Der Artikel ist nützlich für diejenigen, die mit Android-Anwendungen arbeiten, darin Werbekampagnen starten, die Ergebnisse analysieren und sich darüber aufregen, dass Google Analytics dafür nicht mehr verwendet werden kann. Der Artikel enthält Anweisungen zum Verbinden von BigQuery mit Firebase und zum schönen Rendern in Data Studio.
Axmor entwickelt seit 2010 mobile Anwendungen . 2016 hat uns eine der größten Fluggesellschaften in Russland beauftragt, ihre Android-Client-Anwendung für den Ticketverkauf zu überarbeiten und weiterzuentwickeln. Zu unseren Aufgaben gehörte unter anderem die Entwicklung von Tools zum Sammeln von Analysen für Werbeaktionen, die regelmäßig innerhalb der Anwendung stattfinden, und die Bereitstellung von Daten in visueller Form.
Bis 2020 haben wir Google Analytics für diese Zwecke sowie für unsere anderen Anwendungen verwendet. Am 4. Februar hat das Unternehmen diese Funktion deaktiviert und empfohlen, zu Firebase Analytics zu wechseln. Es stellte sich heraus, dass dieses SDK (aus dem englischen Software Development Kit) nicht alle Funktionen bietet, die das vorherige bereitstellte, insbesondere nicht das Erstellen von nicht standardmäßigen Berichten.
Was sind die Einschränkungen von Firebase Analytics und was ist damit zu tun?
Um unsere Erfahrungen bei der Lösung dieses Problems zu beschreiben, wenden wir uns der Anwendung für den Verkauf von Flugtickets zu. Als Google Analytics deaktiviert und Firebase Analytics ersetzt wurde, standen wir vor der Aufgabe, die gleiche Tiefe der Analyse des Nutzerverhaltens für den Kunden beizubehalten, sodass schnell neue nicht standardmäßige Berichte erstellt und gleichzeitig eine schöne, leicht zugängliche Visualisierung bereitgestellt werden können.
In Google Analytics konnten wir sehen, zu welchen Bildschirmen Benutzer gehen, zu welchen Zielen sie nach Tickets suchen, aus welchen Städten sie stammen, wie viele von ihnen in der Anwendung autorisiert sind und wie viele anonym sind. Außerdem haben wir immer gesehen, wie viele Tickets für jede Richtung gekauft wurden, wie der Umsatz für bestimmte Richtungen nach der Aktion gestiegen ist und so weiter. Mit Firebase Analytics war diese zweite Statistik, in der wir die Konvertierung detailliert analysieren konnten, nur in ihrer Rohform verfügbar, was bedeutet, dass wir eine Möglichkeit benötigen, sie zu bereichern.
In Firebase Analytics können wir Folgendes tun:
- Kaufveranstaltungen einrichten;
- In den Parametern geben wir den Namen des Produkts an - die Richtung oder dessen Kennung und Preis;
- Im Bericht auf der Website können wir dann sehen, wie viele Tickets für welchen Flug verkauft wurden, wie hoch der durchschnittliche Kaufpreis war und wie viel insgesamt gekauft wurde.
Die Angaben in den Abbildungen entsprechen nicht den tatsächlichen Angaben, alle Angaben wurden im Interesse von Geschäftsgeheimnissen geändert. Dies hat keinen Einfluss auf die Aussagekraft und Klarheit des Beispiels. Wir zeigen grundsätzlich nur die Funktionen von Firebase.
Hier sehen wir, für welche Richtung wie viele Tickets von wie vielen Benutzern gekauft wurden. Der Kunde möchte beispielsweise wissen, wie viel er Tickets für die Strecke Jekaterinburg-Moskau gekauft hat. Firebase Analytics bietet solche Antworten nicht.
Der Informationsgehalt des Berichts ist durch den Standardparametersatz begrenzt - wir sehen nur das allgemeine Bild.
Ein weiteres Beispiel für eine Datenanalyse, die in unserem Fall in Firebase Analytics nicht vollständig implementiert werden konnte: Die Anwendung zeigt interne Anzeigen für Flüge und Wegbeschreibungen an. Der Kunde wollte wissen, wie viele Nutzer, die die Anzeige angesehen haben, anschließend Tickets gekauft haben. Und natürlich mit einer Aufschlüsselung des Einkommens nach Waren, Aktien und so weiter. Auch hier haben uns Standardwerkzeuge diese Möglichkeit nicht gegeben.
Verwendung von BigQuery zur Analyse von Verkäufen in einer Android-App
Wir suchten nach einer Möglichkeit, schnelle visuelle Berichte in verschiedenen Abschnitten zu erhalten. In Fällen, in denen eine eingehendere Datenanalyse erforderlich ist, empfiehlt Google, den BigQuery-Webdienst zu verbinden. Nach unserem Verständnis war es jedoch wie eine Kanone auf die Spatzen, da das Tool angeblich mit Big Data funktioniert. Bei einer detaillierten Untersuchung des Tools stellte sich jedoch heraus, dass es auch für Aufgaben geeignet ist, bei denen die Analyse einer relativ kleinen Datenmenge erforderlich ist, aber gleichzeitig nicht dem Standard entspricht. In den letzten Jahren hat sich das Big-Data-Konzept sicherlich geändert - jetzt ist die Verarbeitung in Excel nur noch unpraktisch.
BigQuery-Verbindung
Das Verbinden von BigQuery mit Firebase Analytics ist einfach. Auf fast jeder Firebase Analytics-Seite schlägt Google dies vor. Hierzu gibt es detaillierte Anweisungen .
Die einzige Einschränkung besteht darin, dass Sie zum Verbinden von BigQuery mit Ereignisdaten zum Blaze-Zahlungsplan in Firebase wechseln müssen. Dies bedeutet, dass Ihnen Firebase-Dienste während der Nutzung in Rechnung gestellt werden. Nach unserer Erfahrung sind BigQuery-Services kostengünstig, wenn sie bei kleinen Projekten sorgfältig eingesetzt werden.
Bei einem kostenlosen Plan über BigQuery können Sie nur auf Daten zu Crashlytics, Vorhersagen, Cloud Messaging und Leistungsüberwachung zugreifen.
Sie müssen verstehen, dass BigQuery nicht Teil von Firebase Analytics ist. Dies ist ein separater Google-Dienst, der für die Verarbeitung großer Datenmengen entwickelt wurde. In diesem Fall ist Firebase Analytics für BigQuery eine der möglichen Datenquellen. Durch das Verbinden von BigQuery können Sie Korrelationen und weitere Erkenntnisse finden.
Was passiert nach dem Verbinden?
Nachdem wir BigQuery mit Firebase Analytics verbunden haben, haben wir die Möglichkeit, die gesammelten Daten in Rohform anzuzeigen. Wir erhalten nur Zugriff auf die Daten, die gesammelt wurden, nachdem BigQuery mit unserem Projekt verbunden wurde. Wenn Sie BigQuery heute verbinden, können Sie die Daten verarbeiten, die ab heute empfangen wurden. Die Daten von gestern sind dies nicht.
Also haben wir alles verbunden, wir gehen zur Hauptseite des Dienstes. Wir sehen unser Projekt in Ressourcen. Es gibt eine Tabelle in den Daten -
events
. Alle Daten von Firebase Analytics werden hier gesammelt.
In der Tat ist dies nicht eine Tabelle. Daten für jeden Tag werden in einer Tabelle mit einem Namen gelegt
events_<>
, zum Beispiel events_20200308
.
Schauen wir uns die Daten selbst an. Alle Ereignisse von Firebase Analytics werden in Tabellen aufgezeichnet
events_*
. Jede Zeile in der Tabelle ist ein separates Ereignis. Zahlreiche Spalten stellen Ereignisparameter dar: Datum, Geräteinformationen, Benutzerinformationen usw. Obwohl die Daten in einer Tabelle angezeigt werden, sind sie nicht ganz normal. Es ist eher eine tabellarische Darstellung einer Baumstruktur. Unten finden Sie ein Beispiel für die JSON-Struktur einer Tabellenzeile. Der Kürze halber sind nicht alle Daten in der Struktur enthalten, aber das Gesamtbild kann daraus verstanden werden:
Wenn Sie sich die Datenstruktur ansehen, sehen Sie, dass sie Folgendes enthält:
- . , - . :
event_date
,event_timestamp
,event_name
. - -. , ,
event_params
user_properties
. — . . — --. , - -. —
device
. . —device.category
,device.operating_system
device.operating_system_version
.
Wenn die Datenstruktur zunächst kompliziert erscheint, wird es bei näherer Betrachtung einfacher. Letztendlich haben wir Informationen zu allen Ereignissen von Firebase Analytics in unseren Händen. Und wir müssen nur die Daten herausholen, die wir brauchen.
Lassen Sie uns versuchen, einige Anfragen zu stellen. Lassen Sie uns zum Beispiel alle Daten von Ereignissen anzeigen:
SELECT event_date
FROM `project_name.data_set.events_20200202`
Wir werden das Ergebnis sehen:
project_name.data_set.events_20200202
In diesem Fall der Name einer bestimmten Tabelle, die aus dem Projektnamen, dem Namen des Datasets und der täglichen Tabelle mit Ereignissen aus Firebase Analytics besteht. Das heißt, in dieser Abfrage haben wir die Daten von Ereignissen aus der Tabelle erhalten, in der es Ereignisse für den 2. Februar gab :) Nicht sehr nützlich, aber als Beispiel für eine Abfrage, die dies tun wird. In der Realität ist es sinnvoller, aus allen verfügbaren Daten eine Stichprobe zu erstellen. In diesem Fall können Sie anstelle einer bestimmten Tabelle angeben project_name.data_set.events_*
. Fügen wir der Anfrage Nützlichkeit hinzu und ermitteln Sie beispielsweise die Daten und Städte von Ereignissen mit dem Namen "booking_purchase"
:
SELECT geo.city, event_date
FROM `project_name.data_set.events_*`
WHERE event_name = "booking_purchase" and geo.city != ""
Wir bekommen:
Interessant sind nur spezielle Felder in den Tabellenarrays. ZB
event_params
. Es wird empfohlen, den UNNEST- Operator zu verwenden, um mit solchen Feldern zu arbeiten . Dieser Operator nimmt ein Array-Feld und wandelt es in eine Tabelle um.
Lassen Sie uns unsere Abfrage verbessern und den Parameterwert anzeigen
"direction"
:
SELECT
geo.city,
event_date,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
FROM
`project_name.data_set.events_*`
WHERE
event_name = "booking_purchase" and geo.city != ""
Ergebnis:
Also, was haben wir hinzugefügt. Wir haben den UNNEST-Operator auf das Feld angewendet
event_params
. Als Ergebnis haben wir eine Tabelle erhalten, in der die Zeilen die Parameter des Ereignisses und die Spalten die Eigenschaften dieser Parameter sind. Die Parameter haben zwei Eigenschaften: Schlüssel und Wert. Wert - ein Objekt mit 4 Feldern: string_value
, int_value
, float_value
und double_value
. Diese Felder werden für verschiedene Datentypen benötigt, da der Parameterwert eine Zeichenfolge, int, float, double sein kann. Dann haben wir durch die Unterabfrage den Zeichenfolgenwert des Parameters mit dem key
gleichen Feld herausgezogen direction
. So können Sie mit Array-Feldern in einer Tabelle arbeiten.
Lassen Sie uns herausfinden, was Firebase Analytics uns nicht bieten konnte - eine Aufschlüsselung der Einnahmen für jedes in der App verkaufte Produkt:
- In Firebase Analytics übergeben wir das Kaufereignis
"booking_purchase"
. - Darin übergeben wir zwei Parameter:
"direction"
und"price"
. Richtung - Produktkennung, Preis - Preis.
Ich würde gerne wissen, wie viele Produkte für welchen Betrag verkauft wurden. Die Anfrage, dies herauszufinden, sieht folgendermaßen aus:
SELECT
direction,
count(direction) as count,
sum(price) as total_sum
FROM
(
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "price") AS price
FROM
`project_name.data_set.events_*`
WHERE
event_name = "booking_purchase"
)
group by direction
order by total_sum desc
Ergebnis:
Wir haben die Daten bekommen, die wir wollten.
So rendern Sie Berichte in Data Studio
Angenommen, ein Kunde möchte jederzeit die Verkaufsstatistik einsehen. Sie können die Abfrage speichern und dem Kunden mitteilen, dass er zur BigQuery-Konsole wechseln, die Abfrage ausführen und das Ergebnis anzeigen kann. Google bietet jedoch eine bessere Lösung.
Abfrageergebnisse können im Data Studio-Dienst angezeigt werden. Mit diesem Dienst können Sie Daten in Form von Tabellen, Grafiken, Diagrammen, Schönheit und Funktionalität präsentieren, die denen von Firebase Analytics nicht unterlegen sind. Mal sehen, wie Sie das machen können.
Um einen Bericht zu erstellen, müssen Sie zur Hauptseite des Dienstes gehen und ein neues Dokument erstellen. Wählen Sie BigQuery als Datenquelle aus:
Der Bericht kann aus einer Tabelle, einer gespeicherten Ansicht oder direkt per Abfrage erstellt werden. Mit der letzteren Option können Sie Datumsparameter verwenden. Mit diesen Parametern können Sie die Datenauswahl nach Datum begrenzen und so die Menge der verarbeiteten Daten optimieren. Das Ergebnis ähnelt der Benutzeroberfläche von Google Analytics und Firebase - ungefähr dieselben Formen und Funktionen. Das Unternehmen schien seine Best Practices in Bezug auf die Visualisierung übernommen und öffentlich zugänglich gemacht zu haben:
Wir haben eine Bedingung hinzugefügt, sodass die Auswahl nur für die Ereignisse erfolgte, die zwischen den Parametern
DS_START_DATE
und aufgetreten sind DS_END_DATE
. Diese Parameter werden direkt aus den Berichtsformularen an die Anforderung übergeben. Wir erstellen einen Bericht und sehen sofort so etwas:
Als Nächstes können Sie eine Datumsbereichsauswahl hinzufügen. Fügen Sie dazu dem Formular die entsprechende
Komponente hinzu:
Die in dieser Komponente ausgewählten Daten werden als Parameter
DS_START_DATE
und direkt an die Abfrage gesendet DS_END_DATE
. Im Ansichtsmodus sieht der Bericht daher folgendermaßen aus:
Auf die gleiche Weise können Sie dem Formular weitere Komponenten hinzufügen und anpassen - Diagramme, Diagramme, Bilder, Text usw. Danach kann der Bericht über die gemeinsame Nutzung von Links oder durch Bereitstellung des Zugriffs auf die erforderlichen Konten freigegeben werden.
BiqQuery ist ein effektives Tool, das man nicht fürchten sollte
Mobile Apps sind ein leistungsstarkes Verkaufs- und Marketinginstrument, insbesondere wenn sie einen datengesteuerten Ansatz verfolgen. Sie sollten keine Angst vor BiqQuery haben und denken, dass dieses Tool kompliziert ist und Big Data im Allgemeinen zu cool für Sie ist. BigQuery bringt Ihre Analyseabteilung auf die Ebene von Spotify, Delivery Food und anderen Datenriesen und liefert die gleiche Leistung, die sie zu einem Bruchteil der Kosten genießen, mit dem einfachsten SQL, das jeder progressive Analyst zu beherrschen hat, sei es im Marketing oder im Marketing im Produkt.
BigQuery-Vorteile:
- Es ist schnell konfiguriert und ermöglicht es Ihnen, Daten in Sekundenschnelle zu verarbeiten. Keine Server, keine teure Infrastruktur und kein Administrator.
- , , , : , , -, CRM.
- , — .
- SQL — .
- Data Studio, .