Consultas básicas para la exportación de datos de eventos en Google Analytics 4

Las consultas de muestra de esta página se aplican a los datos de exportación de eventos de BigQuery para Google Analytics 4. Consulta la guía de soluciones de BigQuery para Universal Analytics si buscas el mismo recurso para Universal Analytics.

Todas las consultas enumeradas aquí usan conjuntos de datos de muestra y deberían generar resultados válidos. Para usar los datos de exportación de eventos de BigQuery de tu propiedad de Google Analytics, busca el comentario -- Replace table en cada consulta y reemplaza el ID del conjunto de datos de muestra. Para encontrar el ID de tu conjunto de datos, navega a tu proyecto de exportación de BigQuery en la IU de BigQuery. Por ejemplo, si el ID de los conjuntos de datos de BigQuery Export es my- first-gcp-project:analytics_28239234, reemplaza lo siguiente:

  -- Replace table
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

con:

  -- Replace table
  `my-first-gcp-project.analytics_28239234.events_*`

Cómo realizar consultas en un período específico

Para consultar un período específico de un conjunto de datos de exportación de eventos de BigQuery, usa la seudocolumna _TABLE_SUFFIX en la cláusula WHERE de tu consulta. Para obtener más información, consulta Filtra tablas seleccionadas con _TABLE_SUFFIX.

Por ejemplo, la siguiente consulta cuenta los eventos únicos por fecha y nombre de evento para un período específico de días y eventos seleccionados:

-- Example: Query a specific date range for selected events.
--
-- Counts unique events by date and by event name for a specifc period of days and
-- selected events(page_view, session_start, and purchase).

SELECT
  event_date,
  event_name,
  COUNT(*) AS event_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('page_view', 'session_start', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY 1, 2;

Recuento de usuarios y usuarios nuevos

  • Para obtener el recuento total de usuarios, cuenta la cantidad de user_id diferentes. Sin embargo, si tu cliente de Google Analytics no envía un user_id con cada hit o si no estás seguro, cuenta la cantidad de user_pseudo_id distintos.
  • En el caso de los usuarios nuevos, puedes adoptar el mismo enfoque de recuento que se describió anteriormente, pero para los siguientes valores de event_name:
-- Example: Get 'Total User' count and 'New User' count.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      MAX(IF(event_name IN ('first_visit', 'first_open'), 1, 0)) AS is_new_user
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20201130'
    GROUP BY 1
  )
SELECT
  COUNT(*) AS user_count,
  SUM(is_new_user) AS new_user_count
FROM UserInfo;

Cantidad promedio de transacciones por comprador

La siguiente consulta muestra la cantidad promedio de transacciones por comprador.

-- Example: Average number of transactions per purchaser.

SELECT
  COUNT(*) / COUNT(DISTINCT user_pseudo_id) AS avg_transaction_per_purchaser
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('in_app_purchase', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201231';

Valores para un nombre de evento específico

En la siguiente consulta, se muestra el event_timestamp de todos los eventos purchase y los valores de parámetros del evento asociados:

-- Example: Query values for a specific event name.
--
-- Queries the individual timestamps and values for all 'purchase' events.

SELECT
  event_timestamp,
  (
    SELECT COALESCE(value.int_value, value.float_value, value.double_value)
    FROM UNNEST(event_params)
    WHERE key = 'value'
  ) AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

La consulta anterior se puede modificar para mostrar el total de los valores de los parámetros del evento en lugar de una lista:

-- Example: Query total value for a specific event name.
--
-- Queries the total event value for all 'purchase' events.

SELECT
  SUM(
    (
      SELECT COALESCE(value.int_value, value.float_value, value.double_value)
      FROM UNNEST(event_params)
      WHERE key = 'value'
    ))
    AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

Los 10 artículos principales que se agregaron al carrito

La siguiente consulta muestra los 10 artículos principales agregados al carrito por la mayor cantidad de usuarios.

-- Example: Top 10 items added to cart by most users.

SELECT
  item_id,
  item_name,
  COUNT(DISTINCT user_pseudo_id) AS user_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_web_ecommerce.events_*`, UNNEST(items)
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
  AND event_name IN ('add_to_cart')
GROUP BY
  1, 2
ORDER BY
  user_count DESC
LIMIT 10;

Cantidad promedio de vistas de página por tipo de comprador (compradores en comparación con no compradores)

La siguiente consulta muestra la cantidad promedio de usuarios del tipo de comprador de páginas vistas (compradores en comparación con no compradores):

-- Example: Average number of pageviews by purchaser type.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      COUNTIF(event_name = 'page_view') AS page_view_count,
      COUNTIF(event_name IN ('in_app_purchase', 'purchase')) AS purchase_event_count
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
    GROUP BY 1
  )
SELECT
  (purchase_event_count > 0) AS purchaser,
  COUNT(*) AS user_count,
  SUM(page_view_count) AS total_page_views,
  SUM(page_view_count) / COUNT(*) AS avg_page_views,
FROM UserInfo
GROUP BY 1;

Secuencia de vistas de página

La siguiente consulta muestra la secuencia de páginas vistas que realizaron los usuarios durante sesiones únicas:

-- Example: Sequence of pageviews.

SELECT
  user_pseudo_id,
  event_timestamp,
  (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location')
    AS page_location,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'page_view'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
ORDER BY
  user_pseudo_id,
  ga_session_id,
  event_timestamp ASC;

Lista de parámetros del evento

La siguiente consulta enumera todos los parámetros de eventos que aparecen en tu conjunto de datos:

-- Example: List all available event parameters and count their occurrences.

SELECT
  EP.key AS event_param_key,
  COUNT(*) AS occurrences
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) AS EP
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY
  event_param_key
ORDER BY
  event_param_key ASC;

Unirse con Google Ads

Si deseas recuperar datos adicionales de Google Ads para tus eventos de GA4, configura el Servicio de transferencia de datos de BigQuery para Google Ads y, luego, une el collected_traffic_source.gclid de los datos de eventos de GA4 al campo gclid de ads_ClickStats_customer_id de la transferencia de Google Ads.

Ten en cuenta que la exportación de datos de eventos de GA4 crea una tabla para cada día, mientras que la transferencia de Google Ads propaga una sola tabla ads_ClickStats_customer_id por cliente.