Query di base per l'esportazione di dati sugli eventi di Google Analytics 4

Le query di esempio in questa pagina si applicano ai dati di esportazione degli eventi BigQuery per Google Analytics 4. Se stai cercando la stessa risorsa per Universal Analytics, consulta il Libro di ricette BigQuery per Universal Analytics.

Tutte le query elencate qui utilizzano set di dati di esempio e dovrebbero produrre risultati validi. Per utilizzare i dati di esportazione degli eventi BigQuery della tua proprietà Google Analytics, cerca il commento -- Replace table in ogni query e sostituisci l'ID del set di dati di esempio. Per trovare l'ID del tuo set di dati, vai al progetto di esportazione di BigQuery nell'interfaccia utente di BigQuery. Ad esempio, se l'ID dei set di dati di esportazione BigQuery è my- first-gcp-project:analytics_28239234, sostituisci:

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

con:

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

Query su un intervallo di date specifico

Per eseguire query su un intervallo di date specifico da un set di dati di esportazione di eventi BigQuery, utilizza la pseudo colonna _TABLE_LAMBDA nella clausola WHERE della query. Per ulteriori informazioni, consulta Filtro delle tabelle selezionate utilizzando _TABLE_LAMBDA.

Ad esempio, la seguente query conteggia gli eventi unici in base alla data e al nome dell'evento per un periodo specifico di giorni ed eventi selezionati:

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

Conteggio utenti e numero nuovi utenti

  • Per ottenere il conteggio totale degli utenti, conta il numero di user_id distinti. Tuttavia, se il client Google Analytics non invia un user_id con ogni hit o se non hai la certezza di averli, conta il numero di user_pseudo_id distinti.
  • Per i nuovi utenti, puoi adottare lo stesso approccio di conteggio descritto sopra, ma per i seguenti valori di 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;

Numero medio di transazioni per acquirente

La seguente query mostra il numero medio di transazioni per acquirente.

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

Valori per un nome di evento specifico

La seguente query mostra il valore event_timestamp per tutti gli eventi purchase e i valori parametro evento associati:

-- 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 query precedente può essere modificata per mostrare il totale dei valori dei parametri evento anziché un elenco:

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

Primi 10 articoli aggiunti al carrello

La seguente query mostra i primi 10 articoli aggiunti al carrello dal maggior numero di utenti.

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

Numero medio di visualizzazioni di pagina per tipo di acquirente (acquirenti e non acquirenti)

La seguente query mostra il numero medio di visualizzazioni di pagina del tipo di acquirente (acquirenti e non acquirenti) degli utenti:

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

Sequenza di visualizzazioni di pagina

La seguente query mostra la sequenza di visualizzazioni di pagina effettuate dagli utenti durante sessioni uniche:

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

Elenco dei parametri evento

La seguente query elenca tutti i parametri evento visualizzati nel tuo set di dati:

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

Partecipazione con Google Ads

Per recuperare ulteriori dati Google Ads per gli eventi GA4, configura BigQuery Data Transfer Service per Google Ads, poi unisci i dati sugli eventi collected_traffic_source.gclid dai dati sugli eventi GA4 al campo gclid di ads_ClickStats_customer_id dal trasferimento di Google Ads.

Tieni presente che l'esportazione dei dati sugli eventi GA4 crea una tabella per ciascun giorno, mentre il trasferimento da Google Ads compila una singola tabella ads_ClickStats_customer_id per cliente.