Ein Event ist eine Entscheidung, die du getroffen hast, nicht etwas, das passiert ist

Jedes Produkt erzeugt unbegrenzt viele Dinge, die passieren: Klicks, Scrollen, Hovern, Routenwechsel. Ein Event ist die kleine Teilmenge davon, die du für einen Namen würdig befunden hast, weil sie dir etwas sagt, worauf du reagieren würdest. Diese Entscheidung, nicht die Instrumentierung, ist die eigentliche Arbeit.

Die praktische Folge: Ein Tracking-Plan ist ein Produktdokument und kein technisches. Wenn du nicht sagen kannst, was du anders machen würdest, je nachdem ob ein Event ausgelöst wird, muss es noch nicht existieren.

Events nach Ergebnissen benennen, nicht nach Oberflächen

clicked_blue_button stimmt nicht mehr, sobald das Design ein Redesign ausliefert. report_exported übersteht es, weil es benennt, was der Nutzer erreicht hat, statt worauf er geklickt hat.

Wähle eine Konvention und halte dich daran: Objekt zuerst, Aktion in der Vergangenheitsform, kleingeschrieben mit Unterstrichen — invite_sent, project_created, payment_failed. Einheitlichkeit zählt mehr als die Frage, welche Konvention du gewählt hast, denn uneinheitliche Namen sind es, die einen Event-Katalog nach zwei Quartalen undurchsuchbar machen.

Eine Namenskonvention zum Übernehmen

Die meisten Teams müssen keine Konvention erfinden, nur eine aufschreiben. Diese hier ist kurz genug, um sie sich zu merken, und streng genug, um einen Katalog durchsuchbar zu halten:

RegelSoNicht so
Objekt zuerst, dann die Aktioninvite_sentsent_invite
Vergangenheitsform, weil es schon passiert istproject_createdcreate_project
Kleinschreibung mit Unterstrichenplan_upgradedPlanUpgraded, plan-upgraded
Das Ergebnis benennen, nicht das Bedienelementreport_exportedexport_button_clicked
Varianten gehören in Eigenschaftenreport_exported mit format: csvreport_exported_csv
Keine personenbezogenen Daten in Namen oder Wertenplan: teamemail: ana@acme.com

Stell die Konvention an den Anfang des Tracking-Plans und prüfe neue Events daran, so wie du Code gegen einen Styleguide prüfst. Ein schlechter Name kostet jedes Mal, wenn jemand nach dem Event sucht und es nicht findet.

Zehn bis zwanzig Events, nicht zweihundert

Der häufige Fehler ist, alles zu tracken, nach der Theorie, die Daten könnten später nützlich sein. Am Ende hast du einen Katalog, in dem sich niemand zurechtfindet, drei Events, die fast dasselbe bedeuten, und keine Einigkeit darüber, welches maßgeblich ist.

Beginne mit den Fragen, die ihr in Reviews ohnehin stellt — richten sich Menschen ein, kommen sie zurück, wo geben sie auf —, und instrumentiere nur, was sie beantwortet. Ein Tracking-Plan, der auf einen Bildschirm passt, wird gepflegt. Einer, der eine Tabelle füllt, nicht.

Ein Beispiel: ein Tracking-Plan für eine B2B-SaaS-App

So sehen zwölf Events für ein typisches teambasiertes SaaS-Produkt aus. Jedes existiert, weil es eine Frage beantwortet, die jemand schon im wöchentlichen Review stellt.

EventWird ausgelöst, wennWichtige EigenschaftenDie Frage, die es beantwortet
signup_completedDas Konto existiert, nicht wenn das Formular abgeschickt wirdsourceWelche Kanäle bringen Menschen, die tatsächlich abschließen?
workspace_createdDer erste Workspace wird gespeichertteam_sizeWie viele Registrierungen kommen bis zur Einrichtung?
teammate_invitedEine Einladung wird verschicktroleVerbreitet sich das Konto über eine Person hinaus?
invite_acceptedDie eingeladene Person tritt beiroleWerden aus Einladungen Teammitglieder?
integration_connectedEine Verbindung gelingtintegrationWelche Integrationen nutzen Teams, die bleiben?
project_createdEin Projekt wird gespeicherttemplateWird das Kernobjekt überhaupt erstellt?
report_viewedEin Bericht ist fertig gerendertreport_typeWas schauen sich Menschen immer wieder an?
report_exportedDie Datei wird erzeugtformatVerlässt das Ergebnis das Produkt?
plan_upgradedDie Abrechnung bestätigt die Änderungfrom_plan, to_planWas passiert, kurz bevor Menschen mehr bezahlen?
payment_failedDer Zahlungsanbieter meldet einen FehlschlagreasonWie viel Churn ist unfreiwillig?
subscription_cancelledDie Kündigung wird wirksamreasonWarum gehen Teams?
feedback_submittedDas Feedback-Formular wird abgeschicktcategoryWorum bitten Nutzer, in ihren eigenen Worten?

Zwei Dinge fallen auf. Die meisten davon werden bei einem Ergebnis ausgelöst, nicht bei einem Klick: Eine Einladung kann angeklickt werden und trotzdem fehlschlagen. Und die Abrechnungs-Events passieren überhaupt nicht im Browser. Sie kommen über die Webhooks deines Zahlungsanbieters, sodass reine Browser-Analytics sie nie sehen. Das ist in Ordnung, solange niemand einen Klick auf „Upgrade“ für Umsatz hält.

Aktivierung ist meist eine Kombination daraus statt eines einzelnen Events, zum Beispiel ein erstellter Workspace und ein eingeladenes Teammitglied innerhalb der ersten Woche. Wähle diese Definition bewusst; Benchmarks für Aktivierungs-Funnels erklärt, wie.

Eigenschaften tragen die Details; Events tragen das Verb

Widersteh einem eigenen Event pro Variante. report_exported_csv, report_exported_pdf und report_exported_xlsx sollten ein Event sein, report_exported, mit einer Eigenschaft format. Die Faustregel: Wenn du die Zahlen jemals zusammengezählt sehen wollen würdest, ist es ein Event mit einer Eigenschaft.

Halte die Werte von Eigenschaften überschaubar und stabil. Eine Eigenschaft mit einer rohen URL oder einem Freitext ist eine Spalte, nach der du nicht gruppieren kannst – also Dekoration statt Daten.

Fehler beim Event-Tracking, die Berichte still und leise kaputt machen

  • Beim Klick auslösen statt beim Ergebnis. Ein Klick auf „Exportieren“ ist kein Export. Schlägt die Anfrage fehl, hat das Event bereits gelogen. Sende Ergebnis-Events erst, wenn die Sache gelungen ist.
  • Doppeltes Auslösen in Single-Page-Apps. Eine Komponente, die neu rendert, oder eine Route, die zweimal mountet, kann dasselbe Event zweimal senden. Prüf ein paar Sessions von Hand, bevor du einer Zahl traust.
  • Personenbezogene Daten in Eigenschaften. E-Mails, Namen und URLs mit Tokens im Query-String landen in jedem Bericht und jedem Export. Sende stattdessen eine ID oder eine Kategorie.
  • Tracking vor der Einwilligung. Wo die DSGVO gilt, sollten Analytics erst starten, wenn der Besucher zustimmt. Das ist eine Eigenschaft deines Setups, nicht jedes einzelnen Events, also löse es einmal, mit einem Cookie-Consent-Manager, der das Tracking bis dahin zurückhält.
  • Die Bedeutung eines Events ändern, ohne es umzubenennen. Wenn project_created plötzlich auch duplizierte Projekte zählt, widersprechen sich alle Diagramme vor und nach der Änderung, und niemand weiß, warum. Eine neue Bedeutung bekommt einen neuen Namen oder eine Eigenschaft, die beides unterscheidet.
  • Events ohne Verantwortlichen. Jedes Event im Plan braucht eine Person, die merkt, wenn es nicht mehr ausgelöst wird. Events ohne Verantwortliche verfallen zuerst und genießen am längsten Vertrauen.

Autocapture und explizite Events beantworten verschiedene Fragen

Autocapture zeichnet Interaktionen mit der Oberfläche auf, ohne dass du planen musst, was gerade am Anfang wirklich nützlich ist: Die Daten für eine Frage, an die du noch nicht gedacht hast, sind dann schon da, und das Deployment fällt aus der Schleife. Was es nicht kann, ist deine Domäne kennen. Nichts in einem Klickstrom weiß, dass ein Abo upgegradet wurde.

Die praktikable Lösung ist beides: Autocapture für die Erkundung und für Fragen, die du noch nicht gestellt hast, und eine kurze Liste expliziter, gut benannter Domänen-Events für die Zahlen, über die du berichtest und für die du Ziele setzt.

Events nachträglich definieren

Autocapture verändert die Frage von „Haben wir daran gedacht, das zu instrumentieren?“ zu „Finden wir es in dem, was erfasst wurde?“. PulsePanda zeichnet jeden Klick mit id, Klassen, sichtbarem Text, Tag und Position des Elements auf der Seite auf, sodass sich ein Event später daraus definieren lässt, und die Definition gilt auch für Klicks, die erfasst wurden, bevor es sie gab. Eine Frage, die am Donnerstag gestellt wird, lässt sich mit den Daten vom Montag beantworten.

Zuverlässig wird das durch einen stabilen Anker im Markup. Klassen ändern sich mit jedem Redesign, und sichtbarer Text ändert sich mit jeder Textänderung und Übersetzung. Eine id an der Handvoll Bedienelemente, die zählen, ändert sich nur, wenn jemand das entscheidet:

<button id="export-report">Export</button>
<button id="invite-teammate">Invite</button>
<a id="upgrade-plan" href="/de/billing">Upgrade</a>

Ein Event, das als Klicks auf #export-report definiert ist, übersteht ein Redesign, und ein Klick auf das Icon oder die Beschriftung im Button zählt trotzdem, weil der erfasste Pfad bis zum nächsten Element mit einer id hinaufreicht.

Ein definiertes Event ist trotzdem ein Klick, mit der oben beschriebenen Grenze: Es sagt dir, dass jemand es versucht hat, nicht, dass es funktioniert hat. Für Ergebnisse ist das ehrlichere Signal oft die Seite, zu der ein Erfolg führt. Ein Funnel-Schritt „/onboarding erreicht“ nach „/signup erreicht“ zählt abgeschlossene Registrierungen ganz ohne Event.

Ein PulsePanda-Funnel aus Seitenschritten, der zeigt, wie viele Besucher anschließend die Preise ansehen, die Registrierung beginnen, das Onboarding erreichen und ein erstes Projekt erstellen, mit dem Abbruch bei jedem Schritt
Ein Funnel, der nur aus erreichten Seiten gebaut ist. Jeder Balken steht für die Besucher, die diese Seite nach der vorherigen erreicht haben; die Lücke zwischen den Balken zeigt, wo sie gegangen sind.

So prüfst du ein Event, bevor du ihm traust

  1. Löse es selbst aus und finde deine eigene Session. Das Event sollte einmal erscheinen, mit allen Eigenschaften ausgefüllt.
  2. Vergleiche die Zahl mit einer verlässlichen Quelle. Wenn die Datenbank sagt, dass letzte Woche 140 Projekte erstellt wurden, und die Analytics 95 sagen, finde die Lücke, bevor jemand ein Diagramm darauf baut. Werbeblocker, Einwilligungen und fehlgeschlagene Anfragen machen Browser-Zahlen niedriger als Server-Zahlen. Die Lücke sollte stabil sein, keine Überraschung.
  3. Sieh dir ein Session Replay an, in dem es ausgelöst wurde. Eine Zahl sagt dir, dass es passiert ist; eine Aufzeichnung sagt dir, dass es dann passiert ist, wann du glaubst.
  4. Setz es in einen Funnel. Ein Event, das ohne den Schritt auftaucht, der davor kommen muss, wird an der falschen Stelle ausgelöst.

Wo du diese Woche anfangen solltest

Schreib die fünf Momente auf, die in deinem Produkt am meisten zählen, benenne sie mit der Konvention oben und instrumentiere nur diese. Prüf dann eine Woche später, ob jedes dann ausgelöst wird, wann du es erwartest, und ob seine Eigenschaften gefüllt sind — ein Event, das auf einem Code-Pfad ausgelöst wird, den niemand nutzt, ist schlimmer als gar keines, denn man wird ihm vertrauen.

Wenn du sehen willst, wie sich die Events verhalten, die du schon sendest, bevor du weitere hinzufügst, zeigt dir das Event-Tracking in PulsePanda jedes Event, sein Volumen und seine Eigenschaften an einem Ort und speist dieselben Daten direkt in Funnels und Pfade.