Zur Dokumentation springen

Aktionen im Kontext erfassen

Die wichtigste Instrumentierungsentscheidung ist, wie du Events benennst und wo du Kontext ablegst. Wenn du das richtig machst, beantwortet ein einziges Event ein Dutzend Fragen; wenn nicht, wächst dein Katalog auf Hunderte fast identische Namen an, die sich in keinem Funnel sauber zusammenführen lassen. Dieser Leitfaden beschreibt das kanonische Kixo-Muster — genau das Design, das auch der AI-Instrumentierungsberater (suggest_instrumentation im Chat) empfiehlt.

Das Muster: ein verallgemeinertes Event + aussagekräftige Properties

Erfasse ein Event pro Nutzeraktion und beschreibe den Kontext mit Eigenschaften — spalte den Event-Namen niemals nach Kontext auf. Ein Beitrag, der aus der Suche geöffnet wird, und ein Beitrag, der aus dem Feed geöffnet wird, sind dieselbe Aktion (post_opened) mit einer anderen source-Property.

Anti-Pattern

Statt post_opened_from_search, post_opened_from_feed und post_opened_from_profile nicht anzulegen: Drei Event-Namen bedeuten drei Dinge, die gepflegt werden müssen; kein einzelner Funnel kann sie gemeinsam abdecken, und bei einer vierten Oberfläche ist überall Code anzupassen. Ein einziges post_opened mit source skaliert ohne Zusatzaufwand auf beliebig viele Oberflächen.

Nicht so (ein Event pro Kontext)Richtig so (ein Event + eine Property)
post_opened_from_search
post_opened_from_feed
post_opened mit { source: "search" | "feed" }
video_played_mobile
video_played_web
video_played — die Plattform wird jedem Event ohnehin automatisch hinzugefügt
checkout_from_cart
checkout_from_buy_now
cart_checked_out mit { source: "cart" | "buy_now" }

Benennung: snake_case, erst Objekt, dann Verb, in der Vergangenheitsform

Benennen Sie jedes Event (object)_(verb) in snake_case und in der Vergangenheitsform — post_opened, video_played, cart_checked_out. Derselbe Name muss auf Web, iOS und Android exakt gleich verwendet werden, damit plattformübergreifende Funnels zusammenpassen und Kixo Standard-Events zuverlässig auf kanonische Namen abgleichen kann.

  • Erst das Objekt, dann das Verb — fasst verwandte Events zusammen, damit der Katalog leichter zu überblicken ist (post_opened, post_liked, post_shared).
  • Vergangenheitsform — ein Event hält fest, dass etwas passiert ist.
  • snake_case — nicht postOpened, nicht PostOpened. Erkennung und Vokabularabgleich ignorieren zwar Groß- und Kleinschreibung, aber eine einheitliche Form hält Funnels sauber.

Event-Properties vs. User-Properties

Die andere Hälfte der Entscheidung ist, wo ein Wert gespeichert wird.

Event-PropertyUser-Property
BeschreibtDiese einzelne Ausführung der AktionDie Person, dauerhaft über alle ihre Events hinweg
Setzen mitKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Beispielesource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
Grundlage fürFilter, Aufschlüsselungen und Verteilungen pro Funnel-SchrittSegmentierung, Zielgruppenansprache, Kampagneneignung

Tipp

Faustregel: Wenn sich ein Wert zwischen zwei Events desselben Nutzers unterscheiden kann (welche Beitrag, welche Quelle), ist er eine Event-Property. Wenn es sich um eine Eigenschaft des Nutzers handelt, die unabhängig von der Aktion gilt (Tarif, ob jemand VIP ist), ist es eine User-Property. source gehört ans Event; plan an den Nutzer.

Immer eine stabile Objekt-ID mitsenden

Übergeben Sie eine stabile ID für das Objekt, auf das sich die Aktion bezieht — post_id, video_id, order_id. Ohne sie können Sie zwar zählen, wie viele Beiträge geöffnet wurden, aber Events zum selben gleich-Beitrag weder gruppieren noch deduplizieren noch verketten. Ein Funnel wie Suche → aus der Suche geöffnet → gelikt ergibt nur dann eine stimmige User Journey, wenn jeder Schritt die Property mitführt, die die Schritte miteinander verknüpft.

Beispiel: Suche → Öffnen → Liken

Angenommen, du möchtest wissen, wie viele Nutzer Suche, dann einen Beitrag aus den Suchergebnissen öffnen und dann liken. Das sind drei Events — der Kontext „aus der Suche“ ist aber eine source von post_opened, kein eigenes Event:

  • search_performed{ query }
  • post_opened{ source: "search", screen, post_id }
  • post_liked{ source: "search", screen, post_id }

Dann filterst du in deinem Funnel Schritt 2 (und Schritt 3) nach source = "search" — eine einzige Property-Bedingung, kein Jonglieren mit Event-Namen. Die genauen SDK-Aufrufe für jede Plattform:

// User runs a search
Kixo.track('search_performed', {
  query: 'running shoes',
});

// User taps a result — the post was opened FROM search
Kixo.track('post_opened', {
  source: 'search',          // ← context as a property, not the event name
  screen: 'search_results',
  post_id: 'post_8f3a1c',
});

// User likes the post they opened from search
Kixo.track('post_liked', {
  source: 'search',
  screen: 'post_detail',
  post_id: 'post_8f3a1c',
});

Stattdessen den Nutzer taggen

Wenn „hat einen Beitrag aus der Suche gelikt“ ein dauerhaftes Merkmal ist, nach dem Sie segmentieren möchten, und nicht nur ein Signal pro Event, setzen Sie nach der Aktion eine User-Property: Kixo.setUserProperty("liked_from_search", true). Dann können Zielgruppen-Explorer und Kampagnenberechtigung diese Nutzer direkt ansprechen.

Lassen Sie die AI das für Sie entwerfen

Beschreiben Sie im Kixo-Dashboard-Chat in einfachem Englisch, was Sie messen möchten — „track posts opened from search and then liked“ — und der Assistent liefert empfohlene Events, Properties und Copy-und-paste-Snippets für alle drei Plattformen. und zeigt außerdem, welche Events in Ihrem Projekt bereits eingehen und wo noch SDK-Arbeit nötig ist. Das folgt genau dem Muster auf dieser Seite.

Siehe auch: Event-Referenz zu den elf kanonischen Event-Namen, die Kixo automatisch erkennt, sowie die SDK-Anleitungen für Web, iOS und Android.