In Google Analytics 4 gibt es 2 Spalten bzw. Felder, die für eine Nutzer-Kalkulation herangezogen werden können:
- user_id: Das user_id-Feld wird nicht standardmäßig erfasst, sondern muss manuell implementiert werden. Meistens ist dieses Feld an einem Nutzer-Login gebunden. Sobald sich ein Nutzer mit seiner E-Mail-Adresse anmeldet wird eine eindeutige User ID für diese E-Mail-Adresse vergeben. Meldet sich der selbe Nutzer mit der selben E-Mail-Adresse dann später über ein anderes Gerät an, dann können die Nutzer gematcht werden.
- user_pseudo_id: Dieses Feld wird automatisch von GA4 befüllt. Damit ist eine browserspezifische ID gemeint. Im Universal Analytics-Kontext würde man von der Client ID sprechen.
Wenn man Nutzer in BigQuery zählt, dann muss man aufpassen, wenn man diese Zahlen mit den Nutzer-Zahlen in der Google Analytics 4 Benutzeroberfläche abgleichen möchte. Hier ein Screenshot aus der GA4-UI:
Hier sieht man, dass Google Analytics 4 den Nutzer als “Die Gesamtzahl der aktiven Nutzer” definiert. Nach meinem aktuellen Verständnis werden dabei nur Nutzer herangezogen, die eine Sitzung mit Interaktion durchgeführt haben. Sprich:
- Sitzung mit mindestens 10 Sekunden oder
- mindestens ein Conversion-Ereignis ausgelöst oder
- mindestens zwei Seitenaufrufe generiert.
Für einen Abgleich eignet sich daher die explorative Datenanalyse, mit der man eigene Reports bauen kann. Dort wählt man die Metrik “Nutzer insgesamt”:
Diese Metrik ist definiert als “Die Gesamtzahl der Nutzer, die mit Ihrer Website oder App interagiert haben, unabhängig davon, ob sie ein Interaktionsergebnis ausgelöst haben oder nicht”.
Die SQL-Abfragen basieren auf dem BigQuery-Beispiel-Datenset für Google Analytics 4 E-Commerce. Stelle sicher, dass du in der FROM-Klausel deine Tabelle auswählst.
Nutzer zählen
Da in BigQuery jede Zeile ein Event darstellt, reicht es nicht aus einfach die Spalte “user_pseudo_id” zu wählen und zählen, da man sonst viele Doppelungen hat (ein Nutzer kann mehrere Events auslösen). Deshalb braucht es neben der COUNT()-Funktion auch die DISTINCT-Klausel:
SELECT
COUNT(DISTINCT user_pseudo_id) AS users
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131`
Anzahl Nutzer anhand Traffic-Quelle zählen
Die Anzahl der Nutzer alleine ist nicht immer relevant; erst mit der Verknüpfung weiterer Dimensionen werden die Auswertungen interessanter. So bspw. wie viele Nutzer von welchen Traffic-Quellen auf die Website gekommen sind. In BigQuery gibt es dazu die Spalte “traffic_source”:
Innerhalb der Spalte gibt es 3 Felder: name, medium und source. Unter “name” fließt der Kampagnen-Name rein. “medium” und “source” bilden die adäquaten Werte aus den UTM-Parametern. Um die 3 Felder direkt abzufragen muss zwischen “traffic_source” und dem entsprechenden Feld ein Punkt gesetzt werden. Zudem muss man beachten, dass die traffic_source-Informationen an den Nutzer gebunden sind. Was heißt das? Die Informationen beinhalten die Traffic-Quelle des Nutzers, über die er zum ersten Mal auf die Seite kam. Kommt der Nutzer zum zweiten Mal auf die Website, dann beinhalten die traffic_source-Felder weiterhin die Traffic-Quellen des ersten Aufrufs.
Zurück zur Anfrage: Um die Anzahl der Nutzer nach Traffic-Quelle zu bekommen, zählen wir also zum einen die Nutzer und zum anderen wählen wir die entsprechenden traffic_source-Felder. Da wir mittels COUNT() eine Kalkulation haben, müssen wir auch ein GROUP BY hinzufügen. Bei der GROUP BY-Klausel gruppieren wir nach den traffic_source-Feldern. Hier müssen wir das “traffic_source” nicht mehr voranstellen, sondern können direkt nur den Feldnamen schreiben.
SELECT
traffic_source.source,
traffic_source.medium,
traffic_source.name,
COUNT(DISTINCT user_pseudo_id) AS users
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131`
GROUP BY
source,
medium,
name
ORDER BY
users DESC;