Calcular usuarios activos y total de usuarios de GA4 con BigQuery

,

En Google Analytics 4 tienes diferentes métricas cuando hablamos de usuarios, dos de las más relevantes son «Usuarios activos» y «Total de usuarios», entenderlas y saber calcularlas en BigQuery es fundamental si quieres usarlas correctamente, por ello en este artículo te explicaré a que se refiere cada una de estas métricas y como obtenerlas de manera precisa y aproximada tal cual lo hace la interfaz de GA4.

¿Qué son los usuarios activos en GA4?

Usuarios activos es la referencia de GA4 en interfaz, ya que es la métrica que se muestra como «Usuarios» en los informes de la herramienta, esta es una métrica que se rellena de manera automática.

Se define como usuario activo todo aquel usuario único que ha visitado el sitio web o aplicación en el rango de tiempo consultado y adicional, este tiene algún tipo de iteración con la web/app o alguno de los siguientes registros:

  • Web: Evento first_visit o el parámetro engagement_time_msec.
  • Android APP: Evento first_open o el parámetro engagement_time_msec.
  • iOS APP: Evento first_open o user_engagement.

¿Cómo calcular los usuarios activos con BigQuery?

Al igual que vimos en el artículo de obtener el número de sesiones, para los usuarios Google Analytics 4 también realiza aproximaciones en la interfaz, en concreto para usuarios activos utiliza una precisión HLL++ de 14 y una precisión sparse de 25.

En este artículo te voy a dar el SQL para poder calcularlo como lo hace GA4 en la interfaz y además de un método más preciso, el cual suele demorar un poco más en calcular para grandes volúmenes.

Calcular usuarios activos como la interfaz de Google Analytics 4

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  AND is_active_user = true;

Importante, exportaciones más antiguas de GA4 no siempre tienen el campo is_active_user, por ello la consulta anterior es posible que te dé error, si usas una exportación actual de BigQuery normalmente incluyen el parámetro is_active_user con formato booleano. En caso de que tu tabla no contenga este parámetro, puedes modificar la consulta por esta otra:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN '20230815' AND '20230830'
  AND
  (
    (
      SELECT
        value.int_value
      FROM
        UNNEST (event_params)
      WHERE
        key = 'engagement_time_msec'
    ) > 0
    OR (
      SELECT
        value.string_value
      FROM
        UNNEST (event_params)
      WHERE
        key = 'session_engaged'
    ) >= '1'
    OR event_name = 'first_visit'
    );

Ten en cuenta que la consulta previamente mostrada reviso datos de web, si tu propiedad cuenta con datos de app recuerda utilizar las reglas apropiadas comentadas en la sección previa dentro del WHERE.

Calcular usuarios activos de manera exacta en GA4

Para calcular el dato exacto será necesario usar COUNT(DISTINCT) en el apartado del SELECT, lo demás puedes dejarlo igual.

SELECT
  COUNT(DISTINCT(user_pseudo_id) AS active_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN '20230815' AND '20230830'
  AND
  (
    (
      SELECT
        value.int_value
      FROM
        UNNEST (event_params)
      WHERE
        key = 'engagement_time_msec'
    ) > 0
    OR (
      SELECT
        value.string_value
      FROM
        UNNEST (event_params)
      WHERE
        key = 'session_engaged'
    ) >= '1'
    OR event_name = 'first_visit'
    );

¿Qué representa la métrica total de usuarios en GA4?

El total de usuarios es el número de identificadores únicos de usuario que al menos registraron 1 evento sin necesidad de iteración. Normalmente, esta métrica suele ser superior a «Usuarios Activos».

¿Cómo calcular el total de usuarios con BigQuery?

Google Analytics 4 también realiza aproximaciones cuando desea obtener este valor, en concreto para total de usuarios utiliza una precisión HLL++ de 14 y una precisión sparse de 25.

Las consultas en el caso de total de usuarios son mucho más simples, puesto que no es necesario filtrar.

Replicando datos de Google Analytics 4 interfaz

Con la siguiente consulta obtendrás un valor bastante similar al que te da la interfaz de GA.

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

Conteo exacto del total de usuarios con BigQuery

Si prefieres ser preciso, utiliza esta consulta.

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

Advertencia, siempre se recomienda añadir un filtro de fechas mediante _TABLE_SUFFIX o añadiendo la fecha de la tabla directamente para que tu consulta sea del periodo deseado y evitar que tus costes se disparen.

Espero que te sea útil este artículo y si tienes algún feedback para mejorar el artículo y así ayudar a la comunidad estaré encantado de leerlo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *