Die Beispielabfragen auf dieser Seite beziehen sich auf die BigQuery-Ereignisexportdaten für Google Analytics.
Dataset anstelle des Beispiel-Datasets abfragen
Sofern nicht anders angegeben, werden für alle hier aufgeführten Abfragen Beispieldatasets verwendet, die gültige Ergebnisse liefern sollten. Wenn Sie die BigQuery-Daten für den Ereignisexport Ihrer eigenen Google Analytics-Property verwenden möchten, suchen Sie in jeder Abfrage nach dem Kommentar -- Replace table und ersetzen Sie die Beispielstabelle. So kopieren Sie den Tabellennamen aus Ihrem Dataset:
- Rufen Sie die BigQuery-Benutzeroberfläche auf und wählen Sie das Projekt aus, das Ihr Dataset enthält.
- Suchen Sie die Tabelle im Explorer.
- Klicken Sie rechts neben der Tabelle auf das Dreipunkt-Menü und dann auf ID kopieren.
- Fügen Sie den Tabellennamen anstelle der Beispielstabelle in die Abfrage ein.
- Ersetzen Sie den Datumsbereich der Tabelle durch
*.
Wenn beispielsweise mit ID kopieren der BigQuery-Tabellenname my-first-gcp-project:analytics_28239234.events_20240718 kopiert wurde, ersetzen Sie:
-- Replace table
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
mit
-- Replace table
`my-first-gcp-project.analytics_28239234.events_*`
Einen bestimmten Zeitraum abfragen
Wenn Sie einen bestimmten Zeitraum aus einem BigQuery-Dataset für den Ereignisexport 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.
Mit der folgenden Abfrage werden beispielsweise eindeutige Ereignisse nach Datum und Ereignisname für einen bestimmten Zeitraum und ausgewählte Ereignisse gezählt:
-- 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;
Nutzerzahl, neue Nutzer und wiederkehrende Nutzer
- Um die Gesamtzahl der aktiven Nutzer zu ermitteln, zählen Sie die Anzahl der eindeutigen
user_id-Werte. Wenn Ihr Google Analytics-Client jedoch nicht mit jedem Treffer einuser_idzurücksendet oder Sie sich nicht sicher sind, zählen Sie die Anzahl der eindeutigenuser_pseudo_id-Werte. - Zählen Sie für neue Nutzer die Anzahl der einzelnen Nutzer, deren
event_nameFolgendes ist: - Bei wiederkehrenden Nutzern wird die Anzahl der Nutzer gezählt, die im Zeitraum aktiv waren, aber ihre erste Sitzung nicht in diesem Zeitraum gestartet oder die App nicht zum ersten Mal in diesem Zeitraum gestartet haben (aktive Nutzer minus neue Nutzer).
-- Example: Get 'Total User' (Active User), 'New User', and 'Returning User' counts.
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 active_users,
SUM(is_new_user) AS new_users,
COUNT(*) - SUM(is_new_user) AS returning_users
FROM UserInfo;
Durchschnittliche Anzahl der Transaktionen pro Käufer
Mit der folgenden Abfrage wird die durchschnittliche Anzahl der Transaktionen pro Käufer ermittelt.
-- 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 die event_timestamp für alle purchase-Ereignisse und die zugehörigen Ereignisparameterwerte:
-- 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 Summe der Werte für den Ereignisparameter 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 am häufigsten in den Einkaufswagen gelegten Artikel
Die folgende Abfrage zeigt die 10 Artikel, die von den meisten Nutzern in den Warenkorb gelegt wurden.
-- 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_sample_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 (Käufer und Nicht-Käufer)
Mit der folgenden Abfrage wird die durchschnittliche Anzahl der Seitenaufrufe nach Käufertyp (Käufer und Nicht-Käufer) von Nutzern ermittelt:
-- 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
In dieser Abfrage wird die Reihenfolge der Seitenaufrufe jedes Nutzers angezeigt. Die Ergebnisse werden anhand der folgenden Felder sortiert, damit Ereignisse in der Reihenfolge aufgeführt werden, in der sie für den Nutzer aufgetreten sind, auch wenn sie im selben Batch gesendet wurden:
user_pseudo_iduser_idbatch_page_idbatch_ordering_idbatch_event_index
Obwohl durch die Stichprobe die Ergebnisse auf page_view-Ereignisse beschränkt werden, können Sie dieselbe ORDER BY-Klausel verwenden, um alle Ereignisse richtig zu sortieren. Entfernen Sie dazu die Bedingung der WHERE-Klausel für event_name.
Die Abfrage zeigt auch, wie Sie nutzerdefinierte Funktionen
GetParamString und GetParamInt verwenden können, um Duplikate zu vermeiden und Ihre Abfragen leichter verständlich und wartungsfreundlicher zu machen.
-- 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 der Ereignisparameter
Mit der folgenden Abfrage werden alle Ereignisparameter in Ihrem Dataset aufgelistet:
-- 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 beitreten
Wenn Sie zusätzliche Google Ads-Daten für Ihre Google Analytics-Ereignisse abrufen möchten, richten Sie den BigQuery Data Transfer Service für Google Ads ein und führen Sie dann collected_traffic_source.gclid aus Google Analytics-Ereignisdaten mit dem Feld gclid von ads_ClickStats_customer_id aus der Google Ads-Übertragung zusammen.
Beim Exportieren von Google Analytics-Ereignisdaten wird eine Tabelle für jeden Tag erstellt. Bei der Google Ads-Übertragung wird hingegen eine einzige ads_ClickStats_customer_id-Tabelle pro Kunde erstellt.