{"id":10123,"date":"2026-09-27T13:29:00","date_gmt":"2026-09-27T11:29:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=10123"},"modified":"2026-09-25T10:49:11","modified_gmt":"2026-09-25T08:49:11","slug":"tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/","title":{"rendered":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben"},"content":{"rendered":"<p>Die GA4-Oberfl\u00e4che beantwortet die Fragen, f\u00fcr die sie gebaut wurde. Alles au\u00dferhalb dieser Form \u2013 eine Seitenabfolge je Sitzung, eine Kohorte aus zwei Bedingungen in bestimmter Reihenfolge, eine Kennzahl, die die Oberfl\u00e4che nicht anbietet \u2013 st\u00f6\u00dft an die Grenzen einer Reporting-Oberfl\u00e4che, die auf voraggregierten Daten aufsetzt. Der BigQuery-Export hebt diese Decke auf, indem er den rohen Event-Strom bereitstellt: eine Zeile je Event, in SQL abfragbar.<\/p>\n<p>Die folgende Anleitung deckt die drei Schritte zum Einstieg ab: den Export einschalten, verstehen, was die Rohdaten im Vergleich zur Oberfl\u00e4che enthalten und was nicht, und eine erste Abfrage schreiben, die Nutzerpfade aus dem verschachtelten Event-Schema rekonstruiert.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/ga4-bigquery-export-de.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Ablauf von der GA4-Property \u00fcber die BigQuery-Verkn\u00fcpfung und die t\u00e4glichen events_YYYYMMDD-Tabellen bis zu einer ersten SQL-Abfrage, die rohe Nutzerpfade je Sitzung rekonstruiert\"><figcaption>Rohzeilen statt Aggregate &ndash; und aus demselben Grund stimmen die Summen nicht exakt mit der Oberfl&auml;che &uuml;berein.<\/figcaption><\/figure>\n<h2>Schritt 1: Den Export einschalten<\/h2>\n<p>Die Verkn\u00fcpfung entsteht in GA4 unter Verwaltung im Bereich Produktverkn\u00fcpfungen \u00fcber BigQuery-Verkn\u00fcpfungen. Daf\u00fcr sind Bearbeitungsrechte an der GA4-Property und Inhaberrechte am Ziel-Projekt in der Google Cloud n\u00f6tig, mit aktivierter BigQuery-API. Die Konfiguration fragt nach dem Cloud-Projekt, einem Speicherort, den einzubeziehenden Datenstreams und einer Exporth\u00e4ufigkeit.<\/p>\n<p>Zwei H\u00e4ufigkeiten stehen zur Wahl, und sie verhalten sich unterschiedlich. <strong>T\u00e4glich<\/strong> schreibt eine Tabelle pro Tag, <code>events_YYYYMMDD<\/code>, \u00fcblicherweise am Folgetag verf\u00fcgbar; f\u00fcr Standard-Properties ist das kostenfrei enthalten. <strong>Streaming<\/strong> schreibt fortlaufend nach <code>events_intraday_YYYYMMDD<\/code> und wird zu den Streaming-Insert-Preisen von BigQuery abgerechnet. Um die Daten kennenzulernen und f\u00fcr die meisten Auswertungen gen\u00fcgt der t\u00e4gliche Export allein.<\/p>\n<p>Zwei Einschr\u00e4nkungen sind wichtig, bevor darauf gebaut wird. Der Export wirkt <strong>nicht r\u00fcckwirkend<\/strong> \u2013 er beginnt am Tag der Verkn\u00fcpfung, es wird keine Historie nachgeholt, weshalb sich ein fr\u00fches Einschalten auch ohne unmittelbaren Verwendungszweck lohnt. Und Standard-Properties unterliegen einem dokumentierten t\u00e4glichen Exportlimit von einer Million Events pro Tag; wird es \u00fcberschritten, kann der Export ausgesetzt werden \u2013 das aktuelle Volumen ist also gegen das Limit in Googles Dokumentation zu pr\u00fcfen, bevor der Export tragende Funktion bekommt.<\/p>\n<p>Auf BigQuery-Seite umfasst die kostenlose Stufe 10 GiB Speicher und 1 TiB verarbeitete Abfragedaten pro Monat, was f\u00fcr eine einzelne, manuell erkundete Property gro\u00dfz\u00fcgig bemessen ist.<\/p>\n<h2>Schritt 2: Was \u201eohne Stichproben\u201c tats\u00e4chlich bedeutet<\/h2>\n<p>Stichproben im Export zu vermeiden ist keine Technik \u2013 es ergibt sich daraus, dass der Export der unaggregierte Event-Strom ist und kein Bericht. Drei getrennte Reduktionen der Oberfl\u00e4che fehlen dort schlicht:<\/p>\n<ul>\n<li><strong>Stichproben in Explorationen.<\/strong> Standardberichte in GA4 arbeiten ohne Stichproben, Explorationen dagegen greifen darauf zur\u00fcck, sobald eine Abfrage das Event-Limit der jeweiligen Property-Stufe \u00fcberschreitet \u2013 das Ergebnis tr\u00e4gt dann einen entsprechenden Hinweis.<\/li>\n<li><strong>Die <code>(other)<\/code>-Zeile.<\/strong> Erzeugt eine Dimension mehr verschiedene Werte, als ein Bericht fassen kann, wird der Rest in einen einzigen <code>(other)<\/code>-Topf zusammengezogen \u2013 ein echtes Problem bei Seitenpfaden, Produkt-IDs oder Suchbegriffen.<\/li>\n<li><strong>Schwellenwerte.<\/strong> Bei aktiven Google-Signalen werden Zeilen, die nur sehr wenige Nutzer repr\u00e4sentieren, vollst\u00e4ndig zur\u00fcckgehalten, damit sich niemand identifizieren l\u00e4sst; statt der Daten erscheint ein Hinweis auf die Schwellenwertbildung.<\/li>\n<\/ul>\n<p>Keine dieser drei Reduktionen betrifft die exportierten Tabellen. Der Gegenwert: Alles, was die Oberfl\u00e4che auf den Rohdaten aufbaut \u2013 modellierte Conversions, datengetriebene Attribution, ihre eigene Sitzungsdefinition \u2013, fehlt ebenfalls. Genau deshalb stimmen Summen aus BigQuery und Summen aus der Oberfl\u00e4che nicht exakt \u00fcberein.<\/p>\n<h2>Schritt 3: Die Form der Daten<\/h2>\n<p>Jede Zeile ist ein Event. Wer aus einer klassischen SQL-Welt kommt, stolpert vor allem dar\u00fcber, dass die interessanten Werte keine Spalten sind: Sie stecken in <code>event_params<\/code>, einem wiederholten Record aus Schl\u00fcssel-Wert-Paaren, in dem der Wert selbst ein Struct mit je einem Feld pro Datentyp ist.<\/p>\n<table style=\"width:100%;border-collapse:collapse\">\n<thead>\n<tr>\n<th style=\"white-space:nowrap;vertical-align:top\">Feld<\/th>\n<th>Typ<\/th>\n<th>Inhalt<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>event_date<\/code><\/td>\n<td>STRING<\/td>\n<td>Der Tag als <code>YYYYMMDD<\/code>, passend zum Tabellensuffix.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>event_timestamp<\/code><\/td>\n<td>INT64<\/td>\n<td>Mikrosekunden seit Epoch \u2013 der Sortierschl\u00fcssel innerhalb einer Sitzung.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>event_name<\/code><\/td>\n<td>STRING<\/td>\n<td><code>page_view<\/code>, <code>session_start<\/code>, <code>purchase<\/code> sowie eigene Events.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>user_pseudo_id<\/code><\/td>\n<td>STRING<\/td>\n<td>Die Client-Kennung \u2013 ein Ger\u00e4t oder Browser, keine Person.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>event_params<\/code><\/td>\n<td>REPEATED RECORD<\/td>\n<td>Schl\u00fcssel-Wert-Paare: <code>ga_session_id<\/code>, <code>page_location<\/code>, <code>page_title<\/code> und weitere.<\/td>\n<\/tr>\n<tr>\n<td style=\"white-space:nowrap;vertical-align:top\"><code>items<\/code><\/td>\n<td>REPEATED RECORD<\/td>\n<td>Am Event h\u00e4ngende E-Commerce-Produkte.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Eine Sitzung hat keine eigene Spalte. Sie wird rekonstruiert, indem <code>user_pseudo_id<\/code> mit dem Parameter <code>ga_session_id<\/code> kombiniert wird \u2013 Sitzungs-IDs sind nur innerhalb eines Clients eindeutig.<\/p>\n<h2>Schritt 4: Eine erste Abfrage zur Best\u00e4tigung, dass der Export l\u00e4uft<\/h2>\n<p>Vor allem Analytischen belegt eine Abfrage, dass Daten ankommen und die Tabellenreferenz stimmt:<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>SELECT\n  event_date,\n  COUNT(*) AS events,\n  COUNT(DISTINCT user_pseudo_id) AS users\nFROM `project.analytics_XXXXXXXXX.events_*`\nWHERE _TABLE_SUFFIX BETWEEN '20260920' AND '20260926'\nGROUP BY event_date\nORDER BY event_date;<\/code><\/pre>\n<p>Der <code>_TABLE_SUFFIX<\/code>-Filter ist keine optionale Ordnungsfrage. Der Platzhalter <code>events_*<\/code> adressiert s\u00e4mtliche Tagestabellen des Datasets auf einmal, und ohne Suffix-Filter durchsucht die Abfrage die gesamte Exporthistorie \u2013 abgerechnet nach gelesenen Bytes.<\/p>\n<h2>Schritt 5: Rohe Nutzerpfade auslesen<\/h2>\n<p>Die Abfrage, die die Oberfl\u00e4che nicht liefern kann, ist eine vollst\u00e4ndige Seitenabfolge je Sitzung. Ein Wert aus <code>event_params<\/code> wird \u00fcber eine skalare Unterabfrage auf <code>UNNEST<\/code> gelesen \u2013 das ist die Redewendung, die sich zu merken lohnt, denn sie kehrt in jeder GA4-Abfrage wieder:<\/p>\n<pre class=\"wp-block-kevinbatdorf-code-block-pro\"><code>WITH page_views AS (\n  SELECT\n    user_pseudo_id,\n    (SELECT value.int_value FROM UNNEST(event_params)\n      WHERE key = 'ga_session_id') AS session_id,\n    event_timestamp,\n    (SELECT value.string_value FROM UNNEST(event_params)\n      WHERE key = 'page_location') AS page_location\n  FROM `project.analytics_XXXXXXXXX.events_*`\n  WHERE _TABLE_SUFFIX BETWEEN '20260920' AND '20260926'\n    AND event_name = 'page_view'\n)\nSELECT\n  CONCAT(user_pseudo_id, '-', CAST(session_id AS STRING)) AS session_key,\n  COUNT(*) AS page_views,\n  STRING_AGG(\n    REGEXP_EXTRACT(page_location, r'^https?:\/\/[^\/]+([^?#]*)'),\n    ' &gt; ' ORDER BY event_timestamp\n  ) AS path\nFROM page_views\nWHERE session_id IS NOT NULL\nGROUP BY session_key\nHAVING page_views &gt; 1\nORDER BY page_views DESC\nLIMIT 100;<\/code><\/pre>\n<p>Jede Zeile ist der Weg einer Sitzung in ihrer Reihenfolge, mit entfernter Domain und Query-Zeichenfolge, damit identische Seiten zusammenfallen. Von hier aus beantwortet dieselbe Struktur pr\u00e4zisere Fragen: eine Einschr\u00e4nkung auf Sitzungen mit einem bestimmten Event, das Z\u00e4hlen, wie oft eine Seite einer anderen vorausgeht, oder das Messen, wie viele Schritte einem Kauf vorangehen.<\/p>\n<h2>Innerhalb der Leitplanken bleiben<\/h2>\n<p>Zwei Erwartungen sind zu kl\u00e4ren, bevor diese Daten in einen Bericht wandern. Zahlen aus dem Export lassen sich nicht exakt mit der GA4-Oberfl\u00e4che in Deckung bringen, und das ist Absicht und kein Fehler, dem nachzujagen w\u00e4re: Die Oberfl\u00e4che legt Modellierung und eine eigene Sitzungslogik \u00fcber die Rohdaten, die dort nicht enthalten sind. Und der Export enth\u00e4lt Daten auf Event-Ebene zu identifizierbaren Ger\u00e4ten \u2013 dieselbe Einwilligungsgrundlage und Aufbewahrungsdisziplin wie f\u00fcr Analytics-Daten gilt daher auch f\u00fcr das Dataset in der Cloud, einschlie\u00dflich der Frage, wer Zugriff auf das Projekt erh\u00e4lt.<\/p>\n<div class=\"lw-faq\">\n<h2>Fragen und Antworten<\/h2>\n<h3>Z\u00e4hlt events_* bei eingeschaltetem Streaming-Export Events doppelt?<\/h3>\n<p>Mit dem Suffix-Filter aus Schritt 4 nicht, ohne ihn unter Umst\u00e4nden schon. Der Platzhalter events_* trifft auch die Tabellen events_intraday_YYYYMMDD, denn deren Name beginnt ebenfalls mit events_. F\u00fcr sie lautet _TABLE_SUFFIX dann nicht 20260926, sondern intraday_20260926.<\/p>\n<p>Die Bedingung <code>_TABLE_SUFFIX BETWEEN '20260920' AND '20260926'<\/code> schlie\u00dft diese Tabellen aus, weil der Vergleich zeichenweise erfolgt und der Buchstabe i hinter allen Ziffern einsortiert wird. Wer die Daten des laufenden Tages aus der Intraday-Tabelle braucht, muss sie deshalb ausdr\u00fccklich einbeziehen, zum Beispiel mit einer zus\u00e4tzlichen Bedingung <code>_TABLE_SUFFIX = 'intraday_20260927'<\/code>.<\/p>\n<p>Doppelt z\u00e4hlen kann eine Abfrage erst, wenn sie ohne Suffix-Filter oder mit einem zu weiten Muster beide Tabellenarten erfasst und f\u00fcr denselben Tag beide vorliegen. Eine Abfrage, die beide Quellen mischt, sollte deshalb je Tag nur eine davon z\u00e4hlen.<\/p>\n<h3>Senkt LIMIT 100 die Kosten einer Abfrage?<\/h3>\n<p>Nein. BigQuery rechnet nach den Bytes ab, die eine Abfrage lesen muss, und LIMIT begrenzt nur die Ausgabe, nachdem die Daten gelesen sind. Weil BigQuery spaltenweise speichert, sparen dagegen zwei andere Ma\u00dfnahmen: die Auswahl nur der ben\u00f6tigten Spalten statt SELECT * und der Filter auf _TABLE_SUFFIX, der ganze Tagestabellen aus der Rechnung nimmt.<\/p>\n<h3>Gilt die in GA4 eingestellte Aufbewahrungsdauer auch f\u00fcr die Tabellen in BigQuery?<\/h3>\n<p>Nein. Die Aufbewahrungsdauer in den GA4-Einstellungen betrifft die Daten in GA4 selbst. Was einmal nach BigQuery exportiert wurde, liegt dort als eigene Kopie im Cloud-Projekt und bleibt, bis es dort gel\u00f6scht wird. Ohne weiteres Zutun w\u00e4chst das Dataset also Tag f\u00fcr Tag, und mit ihm der Speicher, der die kostenlosen 10 GiB irgendwann \u00fcbersteigen kann.<\/p>\n<p>Die Aufbewahrungsdisziplin, die der Artikel auch f\u00fcr das Dataset verlangt, ist deshalb in BigQuery einzurichten. Daf\u00fcr l\u00e4sst sich am Dataset eine Standard-Ablaufzeit f\u00fcr Tabellen setzen (in der API das Feld defaultTableExpirationMs); neue Tagestabellen werden dann nach dieser Frist automatisch gel\u00f6scht. Sie wirkt nur auf Tabellen, die nach der \u00c4nderung entstehen; \u00e4ltere Tabellen brauchen eine eigene Ablaufzeit oder werden von Hand entfernt.<\/p>\n<h3>Funktioniert der Export auch ohne Rechnungskonto in der Google Cloud?<\/h3>\n<p>Ja, BigQuery l\u00e4uft dann als Sandbox, allerdings mit zwei Einschr\u00e4nkungen, die f\u00fcr GA4 ins Gewicht fallen. Tabellen in der Sandbox laufen nach 60 Tagen ab, der t\u00e4gliche Export h\u00e4lt also nie mehr als rund zwei Monate vor. Und der Streaming-Export steht dort nicht zur Verf\u00fcgung. F\u00fcr das Kennenlernen der Daten reicht das; wer eine lange Zeitreihe aufbauen will, braucht ein Rechnungskonto, auch wenn die Nutzung innerhalb der kostenlosen Stufe bleibt.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Quellen<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.google.com\/analytics\/devguides\/collection\/ga4\" target=\"_blank\" rel=\"noopener noreferrer\">Google Analytics 4 developer guide<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Den kostenlosen t\u00e4glichen GA4-Export nach BigQuery aktivieren, verstehen, warum die exportierten Zeilen weder Stichproben noch Kardinalit\u00e4tst\u00f6pfe oder Schwellenwerte der Oberfl\u00e4che enthalten, und eine erste Abfrage schreiben, die rohe Nutzerpfade aus dem verschachtelten Event-Schema rekonstruiert.<\/p>\n","protected":false},"author":1,"featured_media":13831,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115],"tags":[92081,92091,92094,92235,92110],"class_list":["post-10123","post","type-post","status-publish","format-standard","hentry","category-tutorials-de","tag-bigquery-de","tag-google-analytics-4-de","tag-google-cloud-de","tag-tutorial-de","tag-web-analytics-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-27T11:29:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben\",\"datePublished\":\"2026-09-27T11:29:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/\"},\"wordCount\":1338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png\",\"keywords\":[\"BigQuery\",\"Google Analytics 4\",\"Google Cloud\",\"Tutorial\",\"Web Analytics\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/\",\"name\":\"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png\",\"datePublished\":\"2026-09-27T11:29:00+00:00\",\"description\":\"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png\",\"width\":1200,\"height\":630,\"caption\":\"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/digital-analytics-de\\\/tutorials-de\\\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik","description":"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik","og_description":"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-09-27T11:29:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben","datePublished":"2026-09-27T11:29:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/"},"wordCount":1338,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png","keywords":["BigQuery","Google Analytics 4","Google Cloud","Tutorial","Web Analytics"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/","name":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png","datePublished":"2026-09-27T11:29:00+00:00","description":"Den t\u00e4glichen GA4-Export nach BigQuery aktivieren, sehen, was die Oberfl\u00e4che den Zahlen antut, und die erste Abfrage auf dem verschachtelten Schema.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-10123-tutorial-ga4-daten-nach-bigquery-exp-g.png","width":1200,"height":630,"caption":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/digital-analytics-de\/tutorials-de\/tutorial-ga4-daten-nach-bigquery-exportieren-und-die-erste-sql-abfrage-schreiben\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: GA4-Daten nach BigQuery exportieren und die erste SQL-Abfrage schreiben"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=10123"}],"version-history":[{"count":4,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10123\/revisions"}],"predecessor-version":[{"id":20710,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/10123\/revisions\/20710"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13831"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=10123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=10123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=10123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}