Die Beispielabfragen auf dieser Seite beziehen sich auf die Exportdaten von BigQuery-Ereignissen für Google Analytics 4. Weitere Informationen finden Sie im BigQuery-Cookbook für Universal Analytics.
Alle hier aufgeführten Abfragen verwenden Beispiel-Datasets und sollten gültige Ergebnisse liefern. Wenn Sie BigQuery-Ereignisexportdaten Ihrer eigenen Google Analytics-Property verwenden möchten, suchen Sie in jeder Abfrage nach dem Kommentar -- Replace table
und ersetzen Sie die ID des Beispiel-Datasets.
Um die Dataset-ID zu ermitteln, gehen Sie in der BigQuery-UI zu Ihrem BigQuery-Exportprojekt. Wenn die BigQuery Export-Dataset-ID beispielsweise my-
first-gcp-project:analytics_28239234
lautet, ersetzen Sie Folgendes:
-- Replace table
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
mit
-- Replace table
`my-first-gcp-project.analytics_28239234.events_*`
Bestimmten Zeitraum abfragen
Wenn Sie einen bestimmten Zeitraum aus einem BigQuery-Ereignisexport-Dataset abfragen möchten, verwenden Sie die Pseudospalte _TABLE_SUFFIX in der WHERE-Klausel Ihrer Abfrage. Weitere Informationen finden Sie unter Ausgewählte Tabellen mit _TABLE_SUFFIX filtern.
Die folgende Abfrage zählt beispielsweise eindeutige Ereignisse nach Datum und nach Ereignisname für einen bestimmten Zeitraum von Tagen und ausgewählte Ereignisse:
-- 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;
Nutzeranzahl und Anzahl neuer Nutzer
- Um die Gesamtzahl der Nutzer zu erhalten, zählen Sie die Anzahl der einzelnen
user_id
. Wenn Ihr Google Analytics-Client jedoch nicht mit jedem Treffer einuser_id
zurücksendet oder Sie sich nicht sicher sind, sollten Sie die Anzahl der unterschiedlichenuser_pseudo_id
zählen. - Für neue Nutzer können Sie wie oben beschrieben vorgehen, jedoch für die folgenden Werte von
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;
Durchschnittliche Anzahl der Transaktionen pro Käufer
Die folgende Abfrage zeigt die durchschnittliche Anzahl der Transaktionen pro Käufer.
-- 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';
Werte für einen bestimmten Ereignisnamen
Die folgende Abfrage zeigt den event_timestamp
für alle purchase
-Ereignisse und die zugehörigen Werte der Ereignisparameter:
-- 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';
Die vorherige Abfrage kann so geändert werden, dass anstelle einer Liste die Gesamtzahl der Ereignisparameterwerte angezeigt wird:
-- 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';
Die 10 beliebtesten Artikel wurden dem Einkaufswagen hinzugefügt
Die folgende Abfrage zeigt die 10 Artikel, die am häufigsten in den Einkaufswagen gelegt wurden, nach der größten Anzahl von Nutzern.
-- 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;
Durchschnittliche Anzahl der Seitenaufrufe nach Käufertyp (Käufer und Nicht-Käufer)
Die folgende Abfrage zeigt die durchschnittliche Anzahl der Seitenaufrufe (Käufer im Vergleich zu Nicht-Käufern) der Nutzer:
-- 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;
Reihenfolge der Seitenaufrufe
Die folgende Abfrage zeigt die Abfolge der Seitenaufrufe von Nutzern während eindeutiger Sitzungen:
-- 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 der Ereignisparameter
Die folgende Abfrage listet alle Ereignisparameter auf, die in Ihrem Dataset enthalten sind:
-- 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;
Mit Google Ads teilnehmen
Wenn Sie zusätzliche Google Ads-Daten für Ihre GA4-Ereignisse abrufen möchten, müssen Sie BigQuery Data Transfer Service für Google Ads einrichten und dann die collected_traffic_source.gclid
aus den GA4-Ereignisdaten mit dem gclid
-Feld von ads_ClickStats_
customer_id aus der Google Ads-Übertragung verknüpfen.
Beim Exportieren von GA4-Ereignisdaten wird eine Tabelle für jeden Tag erstellt, während bei der Google Ads-Übertragung eine einzige ads_ClickStats_
customer_id-Tabelle pro Kunde erstellt wird.