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

Les exemples de requêtes de cette page s'appliquent aux données d'exportation d'événements BigQuery pour Google Analytics.

Interroger votre ensemble de données au lieu de l'exemple d'ensemble de données

Sauf indication contraire, toutes les requêtes listées ici utilisent des exemples d'ensembles de données et doivent des résultats valides. Pour utiliser l'API BigQuery de votre propre propriété Google Analytics : les données d'exportation des événements, recherchez le commentaire -- Replace table dans chaque requête, puis remplacez l'exemple de table. Pour copier le nom de la table depuis votre ensemble de données:

  1. Accédez à l'interface utilisateur de BigQuery et sélectionnez projet contenant votre ensemble de données.
  2. Localisez la table dans l'Explorer.
  3. Cliquez sur les trois points verticaux à droite du tableau, puis sur Copier l'ID :
  4. Dans la requête, collez le nom de la table à la place de l'exemple de table.
  5. Remplacez la partie date du tableau par *.

Par exemple, si l'option Copier l'ID a copié le nom de la table BigQuery my-first-gcp-project:analytics_28239234.events_20240718, puis 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 classe _TABLE_SUFFIX pseudo-colonne dans la clause WHERE de votre requête. Pour en savoir plus, Consultez la section Filtrer des tables sélectionnées avec _TABLE_SUFFIX.

Par exemple, la requête suivante comptabilise les événements uniques date et par nom d'événement pour une période spécifique en jours et pour 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 distincts. Toutefois, si votre client Google Analytics ne renvoie pas de user_id avec à chaque appel ou, en cas de doute, comptez le nombre d'user_pseudo_id distincts.
  • Pour les nouveaux utilisateurs, vous pouvez suivre la même méthode de comptabilisation que celle décrite ci-dessus, mais pour les valeurs suivantes de event_name: <ph type="x-smartling-placeholder">
-- 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 le paramètre d'événement associé :

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

Vous pouvez modifier la requête précédente pour afficher le total des 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 ayant été ajoutés le plus 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 de type acheteur (acheteurs et non-acheteurs) des 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

Cette requête affiche la séquence des pages vues par chaque utilisateur. Les requêtes ordonnent les résultats à l'aide des champs suivants afin que les événements soient répertoriés dans l'ordre qu'ils se sont produits pour l'utilisateur, même s'ils ont été envoyés dans le même lot:

  • user_pseudo_id
  • user_id
  • batch_page_id
  • batch_ordering_id
  • batch_event_index

Bien que l'exemple limite les résultats aux événements page_view uniquement, vous pouvez utiliser la même clause ORDER BY pour classer correctement tous les événements en supprimant la Condition de clause WHERE pour event_name.

La requête montre également comment utiliser des données définies par l'utilisateur Fonctions GetParamString et GetParamInt pour réduire la duplication et effectuer vos requêtes plus faciles à comprendre et à gérer.

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

Liste des paramètres d'événement

La requête suivante répertorie tous les paramètres d'événement qui apparaissent 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;

Participer via Google Ads

Afin de récupérer des données Google Ads supplémentaires pour vos événements Google Analytics, configurez le Service de transfert de données BigQuery pour Google Ads, puis joindre l'collected_traffic_source.gclid des données d'événement Google Analytics à l'gclid de ads_ClickStats_customer_id depuis le transfert Google Ads.

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