Requêtes de base pour l'exportation des données d'événement Google Analytics 4

Les exemples de requêtes de cette page s'appliquent aux données d'exportation d'événements BigQuery pour Google Analytics 4. Consultez le livre de recettes BigQuery pour Universal Analytics si vous recherchez la même ressource pour Universal Analytics.

Toutes les requêtes listées ici utilisent des exemples d'ensembles de données et devraient produire des résultats valides. Pour utiliser les données d'exportation d'événements BigQuery de votre propre propriété Google Analytics, recherchez le commentaire -- Replace table dans chaque requête et remplacez l'ID de l'exemple d'ensemble de données. Vous pouvez trouver l'ID de votre ensemble de données en accédant à votre projet d'exportation BigQuery dans l'interface utilisateur BigQuery. Par exemple, si l'ID de votre ensemble de données BigQuery Export est my- first-gcp-project:analytics_28239234, remplacez:

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

avec :

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

Interroger une plage de dates spécifique

Pour interroger une plage de dates spécifique à partir d'un ensemble de données d'exportation d'événements BigQuery, utilisez la pseudo-colonne _TABLE_SUFFIX dans la clause WHERE de votre requête. Pour en savoir plus, consultez Filtrer des tables sélectionnées avec _TABLE_SUFFIX.

Par exemple, la requête suivante comptabilise les événements uniques par date et par nom d'événement pour une période de plusieurs jours et les événements sélectionnés:

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

Nombre d'utilisateurs et nombre de nouveaux utilisateurs

  • Pour obtenir le nombre total d'utilisateurs, comptez le nombre de user_id distinctes. Toutefois, si votre client Google Analytics ne renvoie pas d'user_id avec chaque appel ou si vous avez un doute, comptez le nombre d'user_pseudo_id distincts.
  • Pour les nouveaux utilisateurs, vous pouvez adopter la même approche de décompte décrite ci-dessus, mais pour les valeurs event_name suivantes :
-- 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;

Nombre moyen de transactions par acheteur

La requête suivante indique le nombre moyen de transactions par acheteur.

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

Valeurs d'un nom d'événement spécifique

La requête suivante affiche le event_timestamp pour tous les événements purchase et les valeurs de paramètres d'événement associées:

-- 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 requête précédente peut être modifiée pour afficher le total des valeurs de paramètres d'événement au lieu d'une liste:

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

10 principaux articles ajoutés au panier

La requête suivante affiche les 10 articles les plus ajoutés au panier par le plus grand nombre d'utilisateurs.

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

Nombre moyen de pages vues par type d'acheteur (acheteurs et non-acheteurs)

La requête suivante indique le nombre moyen de pages vues par type d'acheteurs (acheteurs ou non-acheteurs) par les utilisateurs:

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

Séquence de pages vues

La requête suivante montre la séquence de pages vues par les utilisateurs au cours de sessions uniques:

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

Liste des paramètres d'événement

La requête suivante répertorie tous les paramètres d'événement apparaissant dans votre ensemble de données:

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

Inscription à Google Ads

Afin de récupérer des données Google Ads supplémentaires pour vos événements GA4, configurez le service de transfert de données BigQuery pour Google Ads, puis joignez le collected_traffic_source.gclid des données d'événement GA4 au champ gclid de ads_ClickStats_customer_id à partir du transfert Google Ads.

N'oubliez pas que l'exportation des données d'événement GA4 crée une table pour chaque jour, tandis que le transfert Google Ads génère une seule table ads_ClickStats_customer_id par client.