GA4 erweitert: Event-Tracking und Conversion-Funnels

Am 1. Juli 2023 stellte Google Universal Analytics die Datenerfassung endgültig ein. Morgens im Backend – die UA-Kurve brach ab – und eine Frage blieb: Wie nutzt man GA4 wirklich?
Wenn Sie wie ich von UA kamen, nur Basis-Tracking eingebaut haben und die GA4-Oberfläche verwirrt: Sie sind nicht allein. Viele Sites „laufen nackt“: Seitenaufrufe ja – aber welche Buttons, wie viel gelesen, wo Nutzer abspringen – fehlt.
Dieser Artikel erklärt nicht „was GA4 ist“, sondern Praxis: Event-Tracking für echtes Verhalten, Conversion-Funnels für Abbruchstellen und bei Bedarf BigQuery mit SQL. Wir starten mit den drei Event-Typen.
1. Drei Event-Typen in GA4
GA4 denkt anders als UA. UA: Session + Seitenaufruf. GA4: alles ist ein Event.
Konkret: Seitenaufruf, Klick, Video, Scroll bis 90 % – jedes Verhalten ist ein Event-Datensatz. Events sind aber nicht beliebig – Google unterteilt in drei Klassen.
1. Automatische Events (Enhanced Measurement)
Das „Gratis-Paket“ von GA4. Beim Datenstream ist Enhanced Measurement standardmäßig an und trackt 7 Interaktionen:
- Seitenaufruf (
page_view) - Scroll (
scroll) – nur bei 90 % Scrolltiefe - Outbound-Klicks (
click) - Interne Suche (
search) - Video (
video_start,video_progress,video_complete) - Dateidownload (
file_download) - Formulare (
form_start,form_submit)
Klingt vollständig – aber: Scroll nur bei 90 %. Für „Artikel zu Ende gelesen“ oder 50 % / 75 % brauchen Sie GTM.
Empfehlung: Enhanced Measurement an lassen, aber nicht überschätzen. Es liefert Basisdaten; wertvolles Verhalten konfigurieren Sie selbst.
2. Empfohlene Events
Google definiert branchenspezifische empfohlene Events – E-Commerce: add_to_cart, purchase; Content: sign_up, login, share.
Vorteil: korrekter Name + Parameter → passende GA4-Berichte. Sie triggern nicht automatisch – Code oder GTM nötig, Namen/Parameter strikt nach Doku.
Blog-Beispiele:
| Event | Szenario | Schlüsselparameter |
|---|---|---|
sign_up | Registrierung/Abo | method |
login | Login | method |
share | Teilen | content_type, item_id |
Ich tracke Abos mit sign_up. Einmal signUp (CamelCase) – GA4 ignoriert es. Empfohlene Events: snake_case, exakt.
3. Benutzerdefinierte Events
Nicht in der Google-Liste? Eigene Events – z. B. article_read_complete.
Freiheit mit Grenzen:
-
Parameter-Limit: max. 25 Custom-Parameter pro Event. Simo Ahava: darüber hinaus in BigQuery, in GA4-UI oft ignoriert.
-
Naming: Buchstaben, Ziffern, Unterstrich; mit Buchstabe starten; snake_case.
-
Verzögerung: Berichte können 24–48 h brauchen – nicht sofort „kaputt“ annehmen.
Priorität: einfache Entscheidungsfolge
- Enhanced Measurement – wenn es reicht, nichts Neues bauen
- Empfohlene Events – Spezifikation einhalten, Berichte gratis
- Custom – nur bei echtem Mehrbedarf (höherer Pflegeaufwand)
Für viele Blogs reichen Enhanced Measurement + wenige empfohlene Events. Custom ist für tiefe Analyse.
2. Event-Tracking in der Praxis
Zwei Wege: Google Tag Manager (GTM) oder gtag.js im Seitencode. Ich empfehle GTM – Trigger ändern ohne Redeploy.
GA4-Event per GTM: vier Schritte
Beispiel: „Artikel vollständig gelesen“.
Schritt 1: GA4-Event-Tag
GTM → neues Tag → Google Analytics: GA4 Event, Measurement ID, Event-Name article_read_complete.
Schritt 2: Trigger
Wann feuern? Hier: Scroll 90 %. Trigger-Typ Scroll Depth, Vertical Scroll Depths = 90 %.
Detail: Fortschrittsbalken oben kann Scroll-Events spammen. Lösung: pro Nutzer und Artikel nur einmal triggern.
Schritt 3: Event Parameters
Welcher Artikel, Kategorie, Autor?
| Parameter | Wert | Hinweis |
|---|---|---|
article_title | {{Page Title}} | Seitentitel |
article_category | {{Custom JS Variable}} | per JS aus DOM/Meta |
reading_time | {{Custom JS Variable}} | geschätzte Lesezeit |
Typen konsistent: reading_time immer Zahl – nicht mal 5, mal "5 Minuten".
Schritt 4: Debug
Vor Publish: GTM Preview, Seite scrollen, in GA4 Configure > DebugView prüfen. Kein Event → Trigger; Event ohne Parameter → Variablen.
Alternative: gtag.js direkt
Statische Sites (Astro, Hugo) ohne GTM:
// Nach Seitenload
window.addEventListener('load', function() {
window.addEventListener('scroll', function() {
var scrollPercent = (window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100;
if (scrollPercent >= 90 && !window.articleReadTracked) {
window.articleReadTracked = true;
gtag('event', 'article_read_complete', {
'article_title': document.title,
'article_category': document.querySelector('meta[name="category"]')?.content || 'unknown',
'reading_time': parseInt(document.querySelector('meta[name="reading-time"]')?.content || 0)
});
}
});
});
Gleiche Logik wie GTM – Änderungen erfordern Deploy.
Typische Fehler (aus Erfahrung)
Fehler 1: inkonsistente Event-Namen
articleReadComplete, article-read-complete, article_read_complete = drei Events in GA4. Einheitlich snake_case.
Fehler 2: gemischte Parametertypen
reading_time: 5 vs. "5 minutes" vs. true – GA4 behandelt das als verschiedene Parameter.
Fehler 3: Consent Mode v2
EU + Consent: bei Ablehnung fehlen Events – Berichte „schrumpfen“, kein Config-Bug.
Fehler 4: reservierte Namen
page_view, session_start, first_visit nicht als Custom-Events missbrauchen. Parameter-Reserved-Liste in der Doku prüfen.
Blog-Events: Praxisliste
| Verhalten | Event | Parameter |
|---|---|---|
| Artikel gelesen | article_read_complete | article_title, category, author |
| Kommentar | comment_submit | article_title, comment_length |
| Abo-Klick | newsletter_click | button_location, article_title |
| Inhaltsverzeichnis | toc_click | section_title, article_title |
Damit sehen Sie echtes Blog-Verhalten – als Nächstes: Funnels.
3. Conversion-Funnels
Events liegen vor – jetzt die Frage: Wie viele gehen vom ersten Besuch bis zum Ziel – und wo brechen sie ab?
Funnel Exploration in GA4 ist flexibler als UA: eigene Schritte, Segmente, Zeit bis Conversion.
Ersten Funnel anlegen
GA4 → Explore > Funnel Exploration. Bis 10 Schritte – Blogs reichen oft 4–5.
Beispiel Abo-Funnel:
- Artikel (
page_view,page_locationenthält/posts/) - Abo-Seite (
page_view,page_locationenthält/subscribe) - Formular (
newsletter_signup) - E-Mail geöffnet (
email_opened) – mit Mail-Tool
Pro Schritt: einfache, klare Bedingungen – sonst wird der Funnel unlesbar.
Abbruchstellen lesen
| Schritt | Nutzer | Rate (von vorherigem) |
|---|---|---|
| Artikel | 10000 | - |
| Abo-Seite | 800 | 8 % |
| Formular | 240 | 30 % |
| 180 | 75 % |
Größter Drop: Artikel → Abo-Seite (8 %). Einstieg zur Abo-Seite zu schwach. Zweiter Drop: Abo-Seite → Formular (30 %) – Formular oder Value Proposition.
Dann Segmente: wer bricht wie ab?
Segmente: wer verliert sich?
- Neu vs. wiederkehrend – Neu oft niedriger (noch kein Vertrauen)
- Mobile vs. Desktop – Formulare auf Mobile schwächer
- Kanal – Suche vs. Social
Beispiel Abo-Funnel:
| Schritt | Neu | Wiederkehrend |
|---|---|---|
| Artikel → Abo | 5 % | 15 % |
| Abo → Formular | 25 % | 40 % |
Neue Nutzer: 5 % zur Abo-Seite – Einstieg unsichtbar. Lösung bei mir: Abo-Karte am Artikelende → 5 % → 12 %.
Open Funnel
Standard: linear – nur strikte Reihenfolge zählt. Realität: Abo direkt im Artikel, ohne /subscribe.
Open Funnel: Schritte ohne Zwang-Reihenfolge – zeigt atypische Pfade. Bei mir: 15 % Abos ohne Abo-Landing – Footer im Artikel schlägt eigene Abo-Seite. Fokus auf Footer-UX statt nur Abo-Seite.
Funnel-Fallstricke
Nur End-Conversion – Zwischenschritte sind der Hebel, nicht nur „1,8 % gesamt“.
Zeit ignorieren – „Lesen → Kauf“ in 7 Tagen = langer Entscheidungszyklus; Vertrauen/Nurturing anpassen.
Zu wenig Daten – Dutzend Nutzer pro Schritt = instabile Raten; hunderte pro Schritt für belastbare Analyse.
4. BigQuery-Export
Alles bisher in der GA4-UI. Limit: bei großem Traffic Stichproben in Berichten – für exakte Conversion-Mixe mit vielen Dimensionen unzuverlässig.
BigQuery = Vollbestand per SQL.
Einrichtung in drei Schritten
1. BigQuery-Projekt
Google Cloud Console, BigQuery API, Free Tier: 10 GB Speicher, 1 TB Queries/Monat – für Blogs meist genug.
2. Verknüpfung in GA4
Verwaltung → BigQuery Linking → Projekt, Frequenz:
- Daily – Vortag, stabil für Trends
- Streaming – nahezu live
Beides aktivieren ist sinnvoll.
3. Warten
Export startet innerhalb ~24 h. Keine Historie: nur ab Verknüpfung – früh einrichten.
Datenmodell
Tägliche Tabelle events_YYYYMMDD, z. B. events_20260429.
| Feld | Bedeutung |
|---|---|
event_name | z. B. page_view, article_read_complete |
event_timestamp | Mikrosekunden Unix |
user_pseudo_id | anonyme User-ID |
event_params | verschachtelt – per SQL UNNEST |
geo | Land, Stadt |
device | Browser, OS, Gerätetyp |
SQL-Beispiele
Unique User für ein Event:
SELECT
COUNT(DISTINCT user_pseudo_id) as unique_users
FROM `your-project.analytics_123456789.events_*`
WHERE event_name = 'article_read_complete'
AND _TABLE_SUFFIX BETWEEN '20260401' AND '20260429'
Parameter-Verteilung:
SELECT
param.value.string_value as article_category,
COUNT(DISTINCT user_pseudo_id) as users
FROM `your-project.analytics_123456789.events_*`,
UNNEST(event_params) as param
WHERE event_name = 'article_read_complete'
AND param.key = 'article_category'
AND _TABLE_SUFFIX BETWEEN '20260401' AND '20260429'
GROUP BY article_category
ORDER BY users DESC
GA4-UI vs. BigQuery
| Szenario | GA4 | BigQuery |
|---|---|---|
| Tages-Traffic | ✓ | - |
| Funnel | ✓ | - |
| >4 Dimensionen | - | ✓ |
| Exakte Raten ohne Stichprobe | - | ✓ |
| Export nach Looker/Python | - | ✓ |
| Live (heute) | Streaming | Streaming |
Alltag: GA4-Oberfläche; Tiefe: BigQuery.
Kosten
Abrechnung nach verarbeiteten Daten. Sparen:
_TABLE_SUFFIXfür Datumsrange- frühes
WHERE-Filtern - Materialized Views für wiederkehrende Queries
Mein Blog: ~1 GB/Monat, <100 GB Queries – im Free Tier.
5. GA4 vs. UA für Umsteiger
Nicht nur neues UI – andere Logik. Gewohnte UA-Konzepte fehlen oder heißen anders.
Event-Modell vs. Session-Modell
UA: Session als Kern – mehrere Pageviews/Events pro Besuch.
GA4: Event als Atom – Session ist Event-Menge.
UA: Sessions, Pages/Session. GA4: Events, Users, User Journey – Vormittag + Nachmittag = ein User, zwei Besuche, nicht zwei „getrennte Welten“.
Engagement Rate vs. Bounce Rate
UA-Bounce: eine Seite = Absprung – auch 10 Minuten Lesen auf einer Seite.
GA4 Engagement Rate: >10 s, Conversion-Event oder ≥2 Seiten = engagiert. Engagement Rate = engagierte Sessions / alle Sessions.
Nicht 1:1 mit UA-Bounce vergleichen.
Data Streams vs. Views
UA-Views mit Filtern (nur DE, ohne interne IPs). GA4: Data Streams (Web, iOS, Android) – keine multiplen gefilterten Views wie UA.
Property Filters ersetzen Views teilweise – schwächer. Wer UA-Views für Daten-Trennung nutzte: BigQuery + Looker Studio oder neue Architektur planen.
Goals → Conversion Events
UA-Goals → GA4 Conversion Events. Nur „Event passiert“ – Seiten-Conversion = page_view als Event, dann als Conversion markieren.
Migration: UA-Goals listen, in GA4-Events mappen – sonst bricht die Conversion-Linie.
Fazit
Kurz die vier Bausteine:
- Events: automatisch → empfohlen → custom
- Funnel: Abbruch finden, segmentieren, Open Funnel
- BigQuery: früh verknüpfen, keine Historie
- Mindset: UA-Metriken nicht 1:1 auf GA4 pressen
Eine Sache sofort: Enhanced Measurement prüfen, 3–4-Schritt-Funnel für Ihren Abo-/Ziel-Flow bauen.
Daten sagen nicht die Lösung – aber wo das Problem liegt. Den Rest lösen Sie im Produkt und Content.
Quellen
- Set up events | Google Analytics | Google for Developers — GA4-Event-Dokumentation
- Recommended events - Analytics Help — Empfohlene Events
- Enhanced measurement events - Analytics Help — Automatische Events
- Funnel Exploration Report in GA4 - Analytics Mania — Funnel-Bericht
- GA4 BigQuery Export Schema Tutorial - Optimize Smart — BigQuery-Schema
GA4-Event-Tracking und Conversion-Funnels einrichten
GA4-Events von null konfigurieren und Funnels zur Verhaltensanalyse anlegen
⏱️ Estimated time: 60 min
- 1
Step 1: Enhanced Measurement aktivieren
GA4 → Verwaltung > Datenstreams > Stream wählen, Enhanced Measurement einschalten. Standard: 7 Interaktionen – Seitenaufruf, Scroll, Outbound-Klicks, interne Suche, Video, Dateidownload, Formulare. - 2
Step 2: Empfohlene oder benutzerdefinierte Events
Je nach Bedarf:
• Empfohlen: Blog mit sign_up, login, share usw.
• Benutzerdefiniert: article_read_complete, newsletter_click usw.
• Naming: einheitlich snake_case, kein CamelCase oder Bindestrich - 3
Step 3: Events per GTM auslösen
In GTM:
1. GA4-Event-Tag mit Measurement ID
2. Trigger (z. B. Scroll Depth 90 %)
3. Event Parameters (article_title, category …)
4. Preview-Modus zum Testen - 4
Step 4: Conversion-Funnel anlegen
GA4 → Erkunden > Funnel Exploration:
• 4–5 Schritte definieren
• Bedingungen pro Schritt einfach halten
• Segmente: Neunutzer vs. Wiederkehrende
• Open Funnel für atypische Pfade - 5
Step 5: BigQuery-Export (optional)
GA4 Verwaltung > BigQuery-Verknüpfung:
• Projekt verknüpfen
• Daily und Streaming aktivieren
• Datenfluss nach ca. 24 h
• Hinweis: keine historische Rückfüllung
FAQ
Was unterscheidet die drei GA4-Event-Typen?
Engagement Rate in GA4 vs. Absprungrate in UA?
Wie viel Daten braucht ein Funnel?
Kostet BigQuery-Export etwas?
Wann erscheinen Daten nach der Konfiguration?
Regeln für Event-Parameter-Namen?
UA → GA4: Was neu einrichten?
7 Min. Lesezeit · Veröffentlicht am: 29. Apr. 2026 · Aktualisiert am: 14. Juli 2026
SEO Analytics Tools Guide
Du liest den ersten Beitrag dieser Serie. Lies den nächsten Beitrag oder öffne die Serienübersicht, um den gesamten Pfad zu sehen.
Ähnliche Beiträge
Tech-Blog SEO: drei Säulen – interne Verlinkung, Structured Data und Core Web Vitals

Tech-Blog SEO: drei Säulen – interne Verlinkung, Structured Data und Core Web Vitals
SaaS schnell international testen: MVP-Verkaufsargumente mit ChatGPT + Adsterra günstig validieren


Kommentare
Melde dich mit GitHub an, um einen Kommentar zu hinterlassen