Minhaz Kazi, Developer Advocate, Google Analytics – Octubre de 2022
Medir recuentos exactos distintos (es decir, cardinalidad) de grandes conjuntos de datos requiere una cantidad considerable de memoria y afecta el rendimiento. que usan las propiedades Google Analytics 4 Algoritmo HyperLogLog++ (HLL++) para estimar la cardinalidad de las métricas más usadas. incluidos los de Usuarios activos y Sesiones. Por ejemplo, al ver Activos Usuarios en la IU de Google Analytics, así como a través de la API de datos, el registro será una aproximación. El uso de HLL++ para estas métricas garantiza una mejor con una mayor precisión de estimación y límites de error más bajos. Esta La entrada de blog proporciona detalles sobre cómo se usa HLL++ en las propiedades Google Analytics 4. y cómo puedes replicar algunas de las estimaciones con la exportación de eventos de BigQuery de datos no estructurados.
Información acerca de HLL++
HLL++ estima la cardinalidad mientras usa menos memoria y mejora el rendimiento.
HLL++ tiene aumentos realizados a través del algoritmo HyperLogLog y se basa en
HyperLogLog en la práctica: Ingeniería algorítmica de una vanguardia
Algoritmo de estimación de cardinalidad. Cambios en el parámetro precision
de HLL++
entre el uso de memoria y la
precisión de las estadísticas calculadas. Aumentar el
valor del parámetro reduce el error, pero aumenta el consumo de memoria.
Implementación de recuento único en BigQuery
- Usa
COUNT(DISTINCT)
para medir la cardinalidad exacta. Este enfoque requiere más memoria y tardará más en ejecutarse, en especial para conjuntos de datos grandes. APPROX_COUNT_DISTINCT
aproxima los resultados con HLL++. Sin embargo,APPROX_COUNT_DISTINCT
no permite que los usuarios configuren la aproximación exactitud.- Para usar valores
precision
personalizados, usa funciones HyperLogLog++. Consulta Bocetos de HLL++ para los valoresprecision
permitidos y la confianza para obtener precisiones típicas. sparse precision
es otro parámetro para HLL+. En BigQuery, el usuario no puede definir el valor desparse precision
y se fija enprecision + 5
.
Implementación de HLL++ en las propiedades Google Analytics 4
Google Analytics 4 usa la siguiente configuración para medir la cardinalidad de las métricas relacionadas.
Métrica | precision |
sparse precision |
---|---|---|
Sesiones | 12 | 17 |
Usuarios activos | 14 | 25 |
Total de usuarios | 14 | 25 |
Usa funciones HLL++ de BigQuery con datos de eventos de Google Analytics
Si los datos de eventos de tu propiedad Google Analytics 4 están disponibles en BigQuery, puedes puede intentar hacer coincidir las métricas de la IU con datos de BigQuery. Los siguientes ejemplos: supón:
- El identificador de informes se estableció en
By device only
para Google Analytics 4 propiedad. - Otras fuentes potenciales de discrepancia, p.ej., de la zona horaria de los informes, y abordarse.
Total de usuarios
Recuento exacto con COUNT(DISTINCT)
:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Recuento aproximado usando APPROX_COUNT_DISTINCT
:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Puedes replicar APPROX_COUNT_DISTINCT
con las funciones HLL++ de BigQuery. Esta
Se mostrarán resultados idénticos o muy similares a 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_*`
Por último, para replicar los datos en la IU de Google Analytics, usa 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_*`
Usuarios activos
Para calcular el recuento de Usuarios activos a partir de la tabla de exportación de eventos de BigQuery, primero debes filtrar los eventos solo para los Usuarios activos. Al implementar las campañas El filtro de usuario está fuera del alcance de este artículo.
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
Sesiones
El parámetro del evento ga_session_id
identifica sesiones únicas individuales para
para cada usuario. La combinación de user_pseudo_id
y ga_session_id
será
únicos en todo el conjunto de datos para sesiones únicas. Este es el método estándar de
para las propiedades Google Analytics 4. Para las sesiones, precision
es 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_*`
Puedes usar consultas en esta entrada de blog con las Consultas básicas y Ejemplos de consultas avanzadas para obtener estadísticas adicionales de los eventos de BigQuery exportar datos para tus propiedades Google Analytics 4. Si tu propiedad genera de datos de eventos, también puedes implementar las funciones HLL++ para para estimar la cardinalidad de otras métricas que usas comúnmente en tu para tus consultas. Para obtener más información sobre HLL++ y por qué el procesamiento de cardinalidad es costoso. Para conjuntos de datos grandes, lee la entrada de blog detallada en el blog de Cloud: Uso de HLL++ para acelerar el recuento de valores en conjuntos de datos masivos.