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

Le query di esempio in questa pagina si applicano ai dati di esportazione degli eventi BigQuery per Google Analytics.

Esegui una query sul set di dati anziché sul set di dati di esempio

Se non diversamente indicato, tutte le query qui elencate utilizzano set di dati di esempio e devono produrre risultati validi. Per utilizzare BigQuery della tua proprietà Google Analytics degli eventi di esportazione dei dati, cerca il commento -- Replace table in ogni query sostituisci la tabella di esempio. Per copiare il nome della tabella dal set di dati:

  1. Vai alla UI di BigQuery e seleziona contenente il set di dati.
  2. Individua la tabella in Spazio di esplorazione.
  3. Fai clic sui tre puntini verticali a destra della tabella, poi fai clic su Copia ID.
  4. Incolla nella query il nome della tabella al posto della tabella di esempio.
  5. Sostituisci la data della tabella con *.

Ad esempio, se Copia ID ha copiato il nome della tabella BigQuery my-first-gcp-project:analytics_28239234.events_20240718, quindi sostituisci:

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

con:

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

Eseguire 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 pseudocolonna _TABLE_SUFFIX nella clausola WHERE della query. Per ulteriori informazioni, vedi Filtrare le tabelle selezionate utilizzando _TABLE_SUFFIX.

Ad esempio, la seguente query conteggia gli eventi unici per data e per nome dell'evento per uno specifico periodo 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 numero totale di utenti, conta il numero di user_id distinti. Tuttavia, se il tuo cliente Google Analytics non restituisce un user_id con ogni hit o, se non sei sicuro, conta il numero di user_pseudo_id distinti.
  • Per i nuovi utenti, puoi adottare lo stesso approccio al 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 relativi al nome di un evento specifico

La seguente query mostra il valore event_timestamp per tutti Eventi purchase e parametro evento associato valori:

-- 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 del parametro 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 10 articoli principali 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 utenti che hanno visualizzato le visualizzazioni di pagina in base al 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

Questa query mostra la sequenza di visualizzazioni di pagina effettuate da ciascun utente. Gli ordini delle query i risultati utilizzando i campi seguenti, in modo che gli eventi siano elencati nell'ordine si sono verificati per l'utente, anche se gli eventi sono stati inviati nello stesso batch:

  • user_pseudo_id
  • user_id
  • batch_page_id
  • batch_ordering_id
  • batch_event_index

Anche se l'esempio limita i risultati solo agli eventi page_view, puoi utilizzare la stessa clausola ORDER BY per ordinare correttamente tutti gli eventi rimuovendo Condizione clausola WHERE per event_name.

La query mostra anche come utilizzare i valori definiti dall'utente GetParamString e GetParamInt per ridurre i duplicati e creare query più facili da comprendere e gestire.

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

Elenco dei parametri evento

La seguente query elenca tutti i parametri evento che appaiono 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 altri dati Google Ads per gli eventi Google Analytics, imposta il campo BigQuery Data Transfer Service per Google Google Ads, unisci i collected_traffic_source.gclid dei dati sugli eventi di Google Analytics a gclid nel campo di ads_ClickStats_customer_id del trasferimento di Google Ads.

Tieni presente che l'esportazione dei dati sugli eventi di Google Analytics crea una tabella per ciascun giorno, mentre il trasferimento di Google Ads compila una ads_ClickStats_Tabella customer_id per cliente.