Minhaz Kazi, Developer Advocate, Google Analytics – Oktober 2022
Das Messen der genauen eindeutigen Zählungen (d.h. der Kardinalität) für große Datasets erfordert und wirkt sich auf die Leistung aus. Google Analytics 4-Properties nutzen, Algorithmus HyperLogLog++ (HLL++), um die Kardinalität der am häufigsten verwendeten Messwerte zu schätzen einschließlich Aktive Nutzer und Sitzungen. Wenn Sie beispielsweise Aktive Nutzer in der Google Analytics-Benutzeroberfläche und über die Data API, wird die Anzahl ist ein Näherungswert. Die Verwendung von HLL++ für diese Messwerte sorgt für eine bessere höhere Schätzgenauigkeit und niedrigere Fehlergrenzen zu liefern. Dieses Blogpost mit Details zur Verwendung von HLL++ in Google Analytics 4-Properties und wie Sie einige Schätzungen mit dem BigQuery-Ereignisexport replizieren können. Daten.
Informationen zu HLL++
HLL++ Schätzt die Kardinalität, verwendet dabei weniger Arbeitsspeicher und verbessert die Leistung.
HLL++ enthält Erweiterungen über den HyperLogLog-Algorithmus und basiert auf
HyperLogLog in der Praxis: Algorithmische Entwicklung eines aktuellen Stands der Technik
Algorithmus zur Schätzung der Kardinalität. Änderungen am HLL++-Parameter precision
die Arbeitsspeichernutzung und die
Genauigkeit der berechneten Statistiken in Relation zu setzen. Das Erhöhen der
verringert den Fehler, erhöht aber den Arbeitsspeicherverbrauch.
Implementierung der Anzahl einzelner Nutzer in BigQuery
- Mit
COUNT(DISTINCT)
können Sie die genaue Kardinalität messen. Dieser Ansatz erfordert mehr Arbeitsspeicher und die Ausführung dauert insbesondere bei großen Datasets. APPROX_COUNT_DISTINCT
schätzt Ergebnisse mit HLL++ an. Sie können jedoch Nutzer können inAPPROX_COUNT_DISTINCT
die Schätzung nicht konfigurieren Genauigkeit.- Verwenden Sie HyperLogLog++ Funktionen, um benutzerdefinierte
precision
-Werte zu verwenden. Weitere Informationen finden Sie unter HLL++ Sketches (HLL++ Sketches) für zulässigeprecision
-Werte und die Konfidenz Intervalle für typische Genauigkeiten. sparse precision
ist ein weiterer Parameter für HLL+. In BigQuery ist dersparse precision
-Wert nicht vom Nutzer definierbar und wird aufprecision + 5
festgelegt.
HLL++-Implementierung in Google Analytics 4-Properties
In Google Analytics 4 wird die Kardinalität die zugehörigen Messwerte.
Messwert | precision |
sparse precision |
---|---|---|
Sitzungen | 12 | 17 |
Aktive Nutzer | 14 | 25 |
Nutzer insgesamt | 14 | 25 |
BigQuery-HLL++-Funktionen mit Google Analytics-Ereignisdaten verwenden
Wenn die Ereignisdaten Ihrer Google Analytics 4-Property in BigQuery verfügbar sind, die Messwerte aus der Benutzeroberfläche mit BigQuery-Daten abzugleichen. Die folgenden Beispiele Annahme:
- Die Berichts-ID für Google Analytics 4 ist auf
By device only
festgelegt Property. - Andere mögliche Ursachen für Abweichungen, z.B. Zeitzone für Berichte, sind bereits gesprochen.
Nutzer insgesamt
Exakte Anzahl mit COUNT(DISTINCT)
:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Ungefähre Anzahl mit APPROX_COUNT_DISTINCT
:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Sie können APPROX_COUNT_DISTINCT
mit BigQuery-HLL++-Funktionen replizieren. Dieses
gibt identische oder sehr ähnliche Ergebnisse als APPROX_COUNT_DISTINCT
zurück:
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 15)) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Abschließend verwenden Sie precision = 14
, um die Daten in der Google Analytics-Benutzeroberfläche zu replizieren:
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Aktive Nutzer
Um die Anzahl der aktiven Nutzer aus der BigQuery-Tabelle für den Ereignisexport zu berechnen, müssen Sie zuerst Ereignisse nur nach Aktive Nutzer filtern. Das Implementieren der Active View Nutzer wird in diesem Artikel nicht behandelt.
WITH ActiveUsers AS
(
SELECT
user_pseudo_id
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
<implement active user filter logic>
)
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM ActiveUsers
Sitzungen
Der Ereignisparameter ga_session_id
identifiziert einzelne eindeutige Sitzungen für
für jeden Nutzer. Die Kombination aus user_pseudo_id
und ga_session_id
ergibt
in Ihrem Dataset für eindeutige Sitzungen. Dies ist die Standardmethode
Anzahl der Sitzungen für Google Analytics 4-Properties. Für Sitzungen: precision
ist 12.
SELECT
HLL_COUNT.EXTRACT(
HLL_COUNT.INIT(
CONCAT(
user_pseudo_id,
(SELECT `value` FROM UNNEST(event_params) WHERE key = 'ga_session_id' LIMIT 1).int_value),
12)) AS session_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Sie können Abfragen in diesem Blogpost mit den grundlegenden Abfragen und Beispiele für erweiterte Abfragen, um zusätzliche Informationen zum BigQuery-Ereignis zu erhalten Ihre Google Analytics 4-Properties exportieren. Wenn Ihre Property Ereignisdaten verwenden, können Sie auch die HLL++-Funktionen die Kardinalität anderer Messwerte schätzen, die Sie häufig in BigQuery verwenden Abfragen. Weitere Informationen zu HLL++ und dazu, warum die Berechnung der Kardinalität kostspielig ist für große Datasets lesen Sie den ausführlichen Blogpost im Cloud-Blog: Beschleunigen individueller Zählungen in großen Datasets mithilfe von HLL++