Event Tracking ist die Erfassung und Analyse von Ereignissen über Benutzeraktionen innerhalb einer mobilen App, vom Tastendruck bis zum Kaufabschluss. Qualitativ hochwertiges Event Tracking bildet die Grundlage für Produktanalytik, A/B-Tests und Personalisierung. Laut Amplitude (2024) treffen Teams mit systematischem Event Tracking Produktentscheidungen dank eines datengesteuerten Ansatzes dreimal schneller. Ohne Ereignisse ist die App-Analytik blind.
Das Wichtigste
Event Tracking ist der Prozess der Erfassung, Speicherung und Analyse diskreter Benutzeraktionen in einer App. Jedes Ereignis besteht aus einem Namen (event_name) und einer Reihe von Parametern (event_params). Beispielsweise hat das Ereignis purchase die Parameter price, currency, product_id, quantity.
Im Gegensatz zum Screen View, der lediglich das Öffnen eines Bildschirms erfasst, beschreibt Event Tracking, was der Benutzer auf diesem Bildschirm genau tut: Er hat die Schaltfläche „Kaufen" gedrückt, den Warenkorb geöffnet, einen Gutscheincode angewendet. Ohne Ereignisse sind die Motivation und der Kontext der Benutzeraktionen nicht nachvollziehbar.
Jedes Analytics Event enthält Pflicht- und optionale Felder. Pflichtfelder: event_name, event_timestamp, user_id (oder device_id). Optional: Parameter, Kontextbeschreibung.
| Feld | Pflicht | Beispiel |
|---|---|---|
| event_name | Ja | "purchase_completed" |
| event_timestamp | Ja | 1719876543000 |
| user_id | Ja | "user_abc123" |
| session_id | Nein | "session_456def" |
| revenue | Nein | 9.99 |
| currency | Nein | "USD" |
Der Parameter revenue ist besonders wichtig — er wird an MMP-Plattformen zur automatischen Berechnung von ROAS und LTV übergeben.
Ereignisse werden nach Herkunft und Zweck klassifiziert. Diese Unterteilung hilft, die Datenstruktur zu organisieren und Zugriffsrechte für verschiedene Teams festzulegen.
SDKs der Analyseplattformen sammeln automatisch Basisereignisse: app_install, app_remove, session_start, screen_view. Firebase Analytics generiert etwa 20 automatische Ereignisse ohne eine einzige Codezeile. Diese Ereignisse decken Basismetriken ab, geben jedoch kein Verständnis der Geschäftslogik.
Benutzerdefinierte Ereignisse machen Event Tracking wertvoll. Sie beschreiben Geschäftsaktionen: add_to_cart, start_subscription, level_complete, share_content, search_performed. Benutzerdefinierte Ereignisse müssen explizit aus dem App-Code gesendet werden.
// Senden eines benutzerdefinierten Ereignisses an Firebase
val bundle = Bundle().apply {
putString(AnalyticsParam.ITEM_ID, "prod_789")
putString(AnalyticsParam.ITEM_NAME, "Premium Subscription")
putString(AnalyticsParam.CURRENCY, "USD")
putDouble(AnalyticsParam.PRICE, 29.99)
putString(AnalyticsParam.SOURCE, "onboarding_screen")
}
FirebaseAnalytics.getInstance(this)
.logEvent("subscribe_premium", bundle)
Im Beispiel enthält das Ereignis subscribe_premium vier Kontextparameter. Der Parameter source zeigt, von welchem Bildschirm aus der Benutzer das Abonnement abgeschlossen hat — Onboarding, Einstellungen oder Paywall.
Neben Ereignissen umfasst Event Tracking User Properties — Attribute, die an den Benutzer gebunden sind: Abonnementstufe, Land, App-Version. User Property wird einmal gesendet und auf alle nachfolgenden Ereignisse der Sitzung angewendet. Dies ermöglicht die Segmentierung der Analytik, ohne jedem Ereignis Parameter hinzufügen zu müssen.
Super Properties (Amplitude) oder Global Properties (Mixpanel) sind Attribute, die an die Sitzung gebunden sind, nicht an den Benutzer. Sie werden für A/B-Tests verwendet: variant_id wird als Super Property zu allen Ereignissen in der Sitzung hinzugefügt, sodass der Analytiker sieht, zu welcher Gruppe der Benutzer gehört.
Umsatzereignisse sind eine separate Klasse zur Erfassung von Transaktionen. Sie enthalten Betrag, Währung und Kauftyp (Abonnement, Einmalkauf, Wiederherstellung). MMP-Plattformen (AppsFlyer, Adjust) benötigen Umsatzereignisse zur Berechnung des ROAS.
Laut Branch (2024) erhalten Apps, die Umsatzereignisse korrekt an MMP übermitteln, um 25% genauere Attributionsdaten und können Kampagnen auf Basis des LTV statt des CPI optimieren.
Die Einrichtung des Event Tracking erfolgt in drei Phasen: Planung des Ereignisschemas, Integration des SDK, Validierung der Daten.
Erstellen Sie eine Event Taxonomy — ein Dokument, das jedes Ereignis beschreibt: Name, Parameter, Auslöser, Verantwortlicher. Beispiel für E-Commerce: order_completed → Parameter: order_id, total_price, items_count, payment_method, shipping_city.
Binden Sie das Analytics SDK in das Projekt ein. Firebase Analytics, Amplitude, Mixpanel — jedes SDK erfordert eine Initialisierung in Application.onCreate(). Beispiel für Flutter:
import 'package:firebase_analytics/firebase_analytics.dart';
class AnalyticsService {
final _analytics = FirebaseAnalytics.instance();
Future<void> logPurchase({
required String productId,
required double price,
required String currency,
}) async {
await _analytics.logEvent(
name: 'purchase_completed',
parameters: {
'product_id': productId,
'price': price,
'currency': currency,
'timestamp': DateTime.now().millisecondsSinceEpoch,
},
);
}
}
Die Klasse AnalyticsService zentralisiert das Senden aller Ereignisse. Jede Methode entspricht einer Geschäftsaktion. Dies vereinfacht die Fehlersuche — wenn ein Ereignis nicht ankommt, sucht man nach dem Methodennamen im Code. Bei der Skalierung des Projekts kann die Anzahl der Methoden auf 50–100 ansteigen, aber die Struktur bleibt durch die Gruppierung nach Features lesbar.
Firebase DebugView ermöglicht die Echtzeit-Anzeige von Ereignissen auf dem Entwicklergerät. Aktivieren Sie den Modus: adb shell setprop debug.firebase.analytics.app your.package. Alle Ereignisse erscheinen mit weniger als 5 Sekunden Verzögerung in der Firebase-Konsole.
Öffnen Sie nach der Aktivierung von DebugView die App und führen Sie ein Testszenario aus — Registrierung, Kauf, Katalogdurchsicht. Überprüfen Sie in der Konsole: ob alle Ereignisse gesendet wurden, ob die richtigen Parameter übergeben werden, ob es Dubletten gibt. Amplitude bietet ein ähnliches Tool — Amplitude Debugger für iOS und Android.
Automatische Validierung durch CI/CD ist die nächste Qualitätsstufe. Fügen Sie der Pipeline ein Skript hinzu, das prüft, ob jedes Ereignis aus dem Schema mindestens einmal während des Testlaufs gesendet wurde. Dies verhindert die Auslieferung von Versionen mit fehlenden Ereignissen und spart Zeit der QA-Ingenieure.
Die Benennung von Ereignissen ist der am meisten unterschätzte Aspekt des Event Tracking. Ein falscher Name macht die Analytik nutzlos, sobald das Projekt mehr als 50 Ereignisse umfasst.
Verwenden Sie das Muster object_action (Kleinbuchstaben, snake_case): product_added, cart_opened, payment_failed, subscription_cancelled. Das Objekt ist die Entität, die Aktion das Verb in der Vergangenheitsform. Dies liest sich wie ein Satz: „Produkt hinzugefügt", „Warenkorb geöffnet".
Verwenden Sie KEINE Leerzeichen ("Add to Cart"), CamelCase ("AddToCart"), Punkte ("add.to.cart"), Bindestriche ("add-to-cart"). Die meisten SDKs empfehlen snake_case. Verwenden Sie KEINE UI-Elementnamen ("btn_submit_clicked") — das Ereignis sollte geschäftlich, nicht technisch sein.
Fügen Sie als Präfix den Feature- oder Bildschirmnamen hinzu: onboarding_step_completed, checkout_payment_selected. Dies ermöglicht das Filtern von Ereignissen nach Funktionalität in Berichten.
Parameter werden in drei Typen unterteilt: string (Wert), number (Zahl zur Aggregation), boolean (Flag). String-Parameter enthalten kategoriale Daten: Land, Traffic-Quelle, Produktname. Number-Parameter dienen als Metriken: Preis, Menge, Dauer. Boolean-Parameter markieren Zustände: is_trial, is_promo_applied.
Vermeiden Sie die Übergabe von Objekten oder Arrays in einem einzigen Parameter — Analyseplattformen können diese nicht parsen. Übergeben Sie statt eines JSON-Strings in einem Feld mehrere flache Parameter. Beispielsweise übergeben Sie items_count und total_price getrennt statt items_count_total.
Die Wahl der Plattform für Event Tracking hängt vom Umfang des Projekts und vom Team ab. Betrachten wir drei Optionen auf verschiedenen Ebenen.
Firebase ist die Standardwahl für Startups. Das kostenlose Limit liegt bei 500 verschiedenen event_name, unbegrenzte Anzahl von Parametern. Integration mit BigQuery für benutzerdefinierte Analytik. Nachteile: eingeschränkte Segmentierung, keine automatische Verknüpfung von Ereignissen in Sitzungen.
Amplitude ist eine Plattform für Produktanalytik. Unterstützt Behavioural Cohorts, Funnel Analysis, Pathfinder. Ermöglicht die Erstellung virtueller Ereignisse aus Kombinationen realer Ereignisse. Integriert sich mit 50+ Tools über Segment.
Segment ist eine Middleware zur Ereignisverwaltung. Sie senden Ereignisse an Segment, das sie an 300+ Tools verteilt. Nützlich in Enterprise-Umgebungen, in denen gleichzeitig Firebase, Amplitude, Mixpanel, Braze und Salesforce verwendet werden.
PostHog ist eine Open-Source-Plattform für Produktanalytik mit eigenem Event Tracking. Unterstützt automatische Ereigniserfassung, Session Recording und Feature Flags. Wird auf einem eigenen Server bereitgestellt, was für Projekte mit GDPR oder vertraulichen Daten entscheidend ist. Bietet eine Python-kompatible API für ETL-Pipelines.
Für Flutter-Projekte empfehlen wir flutterfire_analytics + Amplitude über das Plugin amplitude_flutter. Für React Native — react-native-firebase + mixpanel-react-native.
Häufig gestellte Fragen
Der optimale Bereich liegt bei 50–150 Ereignissen pro App. Weniger als 50 — nicht genügend Daten für die Analyse, mehr als 150 — die Qualität leidet (Analysten können nicht alle verfolgen). Für ein MVP reichen 20–30 Schlüsselereignisse.
Das durchschnittliche mobile SDK puffert Ereignisse und sendet sie alle 5–30 Sekunden in Batches. Das sichere Limit liegt bei 100 Ereignissen pro Minute pro Gerät. Mehr bedeutet Risiko von Datenverlust bei schlechter Verbindung. Spitzen (z. B. Laden eines Levels) sind unkritisch.
Ja, moderne SDKs speichern Ereignisse bei fehlender Netzwerkverbindung im lokalen Speicher. Bei Wiederherstellung der Verbindung werden sie mit dem korrekten Zeitstempel gesendet. Firebase speichert bis zu 7 Tage Offline-Ereignisse, Amplitude bis zu 30 Tage.
Ein neues Ereignis wird mit einem neuen event_name erstellt, das alte bleibt für historische Daten erhalten. Erstellen Sie ein Mapping in der BI-Ebene (SQL CASE oder Dashboard) zur Datenverknüpfung. Ändern Sie niemals den Namen eines bestehenden Ereignisses — die Historie wird zerstört.
Ja, Event Tracking ist die Grundlage der Personalisierung. Ereignisse werden in Echtzeit gefiltert: Wenn ein Benutzer product_viewed dreimal ohne Kauf gesendet hat, zeigen Sie ein Rabatt-Popup an. Amplitude und Braze unterstützen ereignisbasierte Trigger.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch