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

Las consultas de muestra en esta página se aplican a los datos de exportación de eventos de BigQuery para Google Analytics

Consulta tu conjunto de datos en lugar del conjunto de datos de muestra

Salvo que se indique lo contrario, todas las consultas enumeradas aquí usan conjuntos de datos de muestra y deben generan resultados válidos. Para usar BigQuery en tu propiedad de Google Analytics datos de exportación de eventos, busca el comentario -- Replace table en cada consulta y reemplazar la tabla de muestra. Para copiar el nombre de la tabla de tu conjunto de datos, haz lo siguiente:

  1. Dirígete a la IU de BigQuery y selecciona proyecto que contiene tu conjunto de datos.
  2. Ubica la tabla en Explorer.
  3. Haz clic en los tres puntos verticales que están a la derecha de la tabla y, luego, en Copiar ID.
  4. Pega el nombre de la tabla en lugar de la tabla de muestra en la consulta.
  5. Reemplaza la parte de la fecha de la tabla por *.

Por ejemplo, si Copy ID copió el nombre de la tabla de BigQuery my-first-gcp-project:analytics_28239234.events_20240718 y, luego, reemplaza:

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

con:

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

Consulta 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 el _TABLE_SUFFIX es la cláusula WHERE de la consulta. Para obtener más información, ver Filtra las tablas seleccionadas con _TABLE_SUFFIX

Por ejemplo, la siguiente consulta cuenta eventos únicos por fecha y por 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;

Cantidad de usuarios y recuento de usuarios nuevos

  • Para obtener el recuento total de usuarios, cuenta la cantidad de user_id distintos. Sin embargo, si tu cliente de Google Analytics no devuelve un user_id con cada hit o, si no estás seguro, cuenta la cantidad de user_pseudo_id diferentes.
  • Para los usuarios nuevos, puedes adoptar el mismo enfoque de recuento descrito 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

La siguiente consulta muestra el event_timestamp de todos Eventos purchase y el parámetro de evento asociado valores:

-- 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 del parámetro de 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 que más usuarios agregaron al carrito.

-- 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 vistas de página por tipo de comprador (compradores en comparación con no compradores) de los usuarios:

-- 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

Esta consulta muestra la secuencia de vistas de página que realizó cada usuario. El orden de la consulta los resultados con los siguientes campos para que los eventos se enumeren en el orden se produjeron para el usuario, incluso si los eventos se enviaron en el mismo lote:

  • user_pseudo_id
  • user_id
  • batch_page_id
  • batch_ordering_id
  • batch_event_index

Si bien la muestra limita los resultados a solo eventos page_view, puedes usar la misma cláusula ORDER BY para ordenar correctamente todos los eventos quitando el Condición de la cláusula WHERE para event_name.

La consulta también muestra cómo usar valores definidos por el usuario funciones GetParamString y GetParamInt para reducir la duplicación y realizar consultas sean más fáciles de entender y mantener.

-- Example: Sequence of pageviews.

/** Temporary function to retrieve the string_value of an event parameter by event name. */
CREATE TEMP FUNCTION GetParamString(event_params ANY TYPE, param_name STRING)
AS ((SELECT ANY_VALUE(value.string_value) FROM UNNEST(event_params) WHERE key = param_name));

/** Temporary function to retrieve the int_value of an event parameter by event name. */
CREATE TEMP FUNCTION GetParamInt(event_params ANY TYPE, param_name STRING)
AS ((SELECT ANY_VALUE(value.int_value) FROM UNNEST(event_params) WHERE key = param_name));

SELECT
  user_pseudo_id,
  user_id,
  batch_page_id,
  batch_ordering_id,
  batch_event_index,
  event_name,
  GetParamInt(event_params, 'ga_session_id') as ga_session_id,
  GetParamString(event_params, 'page_location') as page_location,
  GetParamString(event_params, '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 '20240718' AND '20240731'
ORDER BY
  user_pseudo_id,
  user_id,
  batch_page_id,
  batch_ordering_id,
  batch_event_index;

Lista de parámetros de eventos

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

Para recuperar datos adicionales de Google Ads para tus eventos de Google Analytics, configura la Servicio de transferencia de datos de BigQuery para Google Anuncios y, luego, unir las collected_traffic_source.gclid de los datos de eventos de Google Analytics a gclid campo de ads_ClickStats_customer_id de la transferencia de Google Ads.

Ten en cuenta que la exportación de datos de eventos de Google Analytics crea una tabla para cada día, mientras que la transferencia de Google Ads completa un solo ads_ClickStats_Tabla customer_id por cliente.