Przybliżona liczba unikalnych użytkowników w Google Analytics

Minhaz Kazi, przedstawiciel ds. kontaktu z deweloperami, Google Analytics: Październik 2022 r.

Pomiar dokładnych różnych liczb (tj. mocy zbioru) w dużych zbiorach danych wymaga sporo pamięci i wpływa na wydajność. Usługi w Google Analytics 4 używają Algorytm HyperLogLog++ (HLL++) do szacowania mocy zbioru najczęściej używanych danych w tym Aktywni użytkownicy i Sesje. Na przykład przy wyświetlaniu kolumny Aktywne użytkownicy zarówno w interfejsie Google Analytics, jak i w interfejsie Data API podawane są liczby należy traktować w przybliżeniu. Użycie HLL++ w przypadku tych wskaźników zapewnia wydajności o większej dokładności szacowania i niższych progach błędu. Ten post na blogu zawiera szczegółowe informacje o używaniu języka HLL++ w usługach Google Analytics 4 oraz o tym, jak powielić niektóre szacunki za pomocą eksportu zdarzeń BigQuery. i skalowalnych danych.

Informacje o HLL++

HLL++ szacuje moc zbioru, zużywając przy tym mniej pamięci i poprawiając wydajność. HLL++ ma ulepszenia wprowadzone za pomocą algorytmu HyperLogLog i opiera się na Praktyka HyperLogLog: inżynieria algorytmiczna najnowocześniejszej technologii algorytm szacowania mocy zbioru. Zmiany w parametrze HLL++ precision między wykorzystaniem pamięci a precyzją obliczonych statystyk. Zwiększenie wartości zmniejsza błąd, ale zwiększa wykorzystanie pamięci.

Implementacja liczby unikalnych użytkowników w BigQuery

  • Użyj COUNT(DISTINCT), aby zmierzyć dokładną moc zbioru. Ta metoda wymaga więcej pamięci i pracuje dłużej, szczególnie w przypadku dużych zbiorów danych.
  • APPROX_COUNT_DISTINCT określa w przybliżeniu wyniki za pomocą HLL++. Pamiętaj jednak: APPROX_COUNT_DISTINCT nie zezwala użytkownikom na konfigurowanie przybliżenia dokładności.
  • Aby użyć niestandardowych wartości precision, użyj funkcji HyperLogLog++. Zobacz Skecze HLL++ dla dozwolonych wartości precision i poziomu ufności dla typowej dokładności.
  • Kolejnym parametrem HLL+ jest sparse precision. W BigQuery wartości sparse precision nie można zdefiniować przez użytkownika i ma ona wartość precision + 5.

Implementacja HLL++ w usługach w Google Analytics 4

Google Analytics 4 używa tej konfiguracji do pomiaru mocy zbioru powiązane dane.

Dane precision sparse precision
Sesje 12 17
Aktywni użytkownicy 14 25
Całkowita liczba użytkowników 14 25

Korzystanie z funkcji BigQuery HLL++ z danymi zdarzeń Google Analytics

Jeśli dane zdarzeń z usługi w Google Analytics 4 są dostępne w BigQuery, dopasować wskaźniki z interfejsu do danych BigQuery. Przykłady poniżej załóżmy, że:

  • Identyfikator raportowania w Google Analytics 4 jest ustawiony na By device only usłudze.
  • Inne potencjalne źródła rozbieżności, np. strefy czasowej raportowania, oraz je wyeliminować.

Użytkownicy łącznie

Dokładna liczba z użyciem parametru COUNT(DISTINCT):

SELECT
  COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Przybliżona liczba z wykorzystaniem parametru APPROX_COUNT_DISTINCT:

SELECT
  APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Możesz replikować plik APPROX_COUNT_DISTINCT za pomocą funkcji BigQuery HLL++. Ten zwróci wyniki identyczne lub bardzo podobne do funkcji APPROX_COUNT_DISTINCT:

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_*`

I na koniec, aby powielić dane w interfejsie Google Analytics, użyj narzędzia precision = 14:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Aktywni użytkownicy

Aby obliczyć liczbę Aktywnych użytkowników w tabeli eksportu zdarzeń BigQuery, najpierw muszą filtrować zdarzenia tylko pod kątem Aktywnych użytkowników. Wdrożenie aktywnych Filtr Użytkownik jest poza zakresem tego artykułu.

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

Sesje

Parametr zdarzenia ga_session_id identyfikuje poszczególne unikalne sesje w przypadku: każdego użytkownika. Kombinacja user_pseudo_id i ga_session_id będzie unikalne w całym zbiorze danych dla unikalnych sesji. To standardowa metoda zliczanie sesji w usługach w Google Analytics 4. Liczba sesji: precision wynosi 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_*`

Do zapytań podanych w tym poście na blogu możesz używać funkcji Zapytania podstawowe oraz przykłady zapytań zaawansowanych, które pozwalają uzyskać dodatkowe statystyki ze zdarzenia BigQuery; eksportować dane z usług w Google Analytics 4. Jeśli usługa generuje dużych ilości danych zdarzeń, można również zaimplementować funkcje HLL++ do oszacować moc zbioru innych wskaźników, których często używasz w BigQuery zapytań. Aby dowiedzieć się więcej o HLL++ i dlaczego obliczenia mocy zbioru są drogie przeczytaj szczegółowy post na blogu Cloud: Używanie HLL++ do przyspieszenia działania różnic w ogromnych zbiorach danych.