Minhaz Kazi, consulente per gli sviluppatori, Google Analytics – Ottobre 2022
La misurazione di conteggi distinti esatti (ovvero la cardinalità) per set di dati di grandi dimensioni richiede memoria significativa e influisce sulle prestazioni. Le proprietà Google Analytics 4 utilizzano Algoritmo HyperLogLog++ (HLL++) per stimare la cardinalità per le metriche più utilizzate incluse le metriche Utenti attivi e Sessioni. Ad esempio, quando visualizzi lo stato Utenti nell'interfaccia utente di Google Analytics e tramite l'API di dati, il numero sarà un'approssimazione. L'uso di HLL++ per queste metriche garantisce una migliore con una stima più precisa e limiti di errore inferiori. Questo il post del blog fornisce dettagli su come viene utilizzato HLL++ nelle proprietà Google Analytics 4 e come replicare alcune stime utilizzando l'esportazione di eventi BigQuery e i dati di Google Cloud.
Informazioni su HLL++
HLL++ stima la cardinalità, utilizzando meno memoria e migliorando le prestazioni.
HLL++ include miglioramenti apportati all'algoritmo HyperLogLog e si basa su
Pratica di HyperLog in: ingegneria algoritmica di uno stato dell'arte
Algoritmo di stima della cardinalità. Modifiche nel parametro HLL++ precision
tra l'utilizzo della memoria e l'accuratezza delle statistiche calcolate. L'aumento del
riduce l'errore, ma aumenta il consumo di memoria.
Implementazione del conteggio univoco in BigQuery
- Utilizza
COUNT(DISTINCT)
per misurare la cardinalità esatta. Questo approccio richiede e richiede più tempo, soprattutto per set di dati di grandi dimensioni. APPROX_COUNT_DISTINCT
approssima i risultati con HLL++. Tuttavia,APPROX_COUNT_DISTINCT
non consente agli utenti di configurare l'approssimazione la precisione.- Per utilizzare i valori
precision
personalizzati, usa le funzioni HyperLogLog++. Consulta Sketch HLL++ per i valoriprecision
consentiti e il livello di confidenza intervalli per le precisione tipiche. sparse precision
è un altro parametro per HLL+. In BigQuery, il valore disparse precision
non è definibile dall'utente ed è fisso suprecision + 5
.
Implementazione di HLL++ nelle proprietà Google Analytics 4
Google Analytics 4 utilizza la seguente configurazione per misurare la cardinalità delle le metriche correlate.
Metrica | precision |
sparse precision |
---|---|---|
Sessioni | 12 | 17 |
Utenti attivi | 14 | 25 |
Utenti totali | 14 | 25 |
Utilizzo delle funzioni HLL++ di BigQuery con i dati sugli eventi di Google Analytics
Se i dati sugli eventi della proprietà Google Analytics 4 sono disponibili in BigQuery, puoi provare a far corrispondere le metriche della UI ai dati di BigQuery. I seguenti esempi supponi:
- L'identificatore report è impostato su
By device only
per Google Analytics 4 proprietà. - Altre potenziali fonti di discrepanza, ad es. del fuso orario dei report, sono già gestiti.
Totale utenti
Conteggio esatto utilizzando COUNT(DISTINCT)
:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Conteggio approssimativo con APPROX_COUNT_DISTINCT
:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Puoi replicare APPROX_COUNT_DISTINCT
utilizzando le funzioni HLL++ di BigQuery. Questo
restituirà risultati identici o molto simili di 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_*`
Infine, per replicare i dati nella UI di Google Analytics, utilizza 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_*`
Utenti attivi
Per calcolare il conteggio degli utenti attivi dalla tabella di esportazione degli eventi BigQuery, devi prima devi filtrare gli eventi solo in base agli Utenti attivi. Implementazione dell'opzione Attiva Il filtro utente non rientra nell'ambito di questo articolo.
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
Sessioni
Il parametro evento ga_session_id
identifica singole sessioni uniche per
ogni utente. La combinazione di user_pseudo_id
e ga_session_id
sarà
univoci nel set di dati per sessioni univoche. Questo è il metodo standard
conteggio delle sessioni per le proprietà Google Analytics 4. Per le sessioni, precision
è 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_*`
Puoi utilizzare le query di questo blog post con le Query di base e Esempi di query avanzate per ottenere ulteriori insight dall'evento BigQuery. Esportare i dati per le proprietà Google Analytics 4. Se la proprietà genera una notevole quantità di dati sugli eventi, puoi anche implementare le funzioni HLL++ stimare la cardinalità di altre metriche che usi abitualmente in BigQuery query. Per saperne di più su HLL++ e sui motivi per cui il calcolo della cardinalità è costoso per set di dati di grandi dimensioni, leggi il post del blog approfondito sul blog Cloud: Utilizzo di HLL++ per accelerare il conteggio distinto in set di dati di grandi dimensioni.