Näherungswert der eindeutigen Anzahl in Google Analytics

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 in APPROX_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ässige precision-Werte und die Konfidenz Intervalle für typische Genauigkeiten.
  • sparse precision ist ein weiterer Parameter für HLL+. In BigQuery ist der sparse precision-Wert nicht vom Nutzer definierbar und wird auf precision + 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++