Hopp til dokumentasjonen

Spor handlinger i kontekst

Det viktigste valget i instrumenteringen er hvordan du navngir hendelser og hvor du legger kontekst. Treffer du riktig, kan én hendelse svare på et dusin spørsmål. Treffer du feil, eksploderer katalogen i hundrevis av nesten like navn som ingen trakt kan stille opp. Denne guiden er det kanoniske mønsteret i Kixo — det samme oppsettet som AI-rådgiveren for instrumentering (suggest_instrumentation i chat) anbefaler.

Mønsteret: én generalisert hendelse + rike egenskaper

Spor én hendelse per brukerhandling og beskriv konteksten med egenskaper — del aldri opp hendelsesnavnet etter kontekst. Et innlegg åpnet fra søk og et innlegg åpnet fra feeden er samme handling (post_opened) med en annen source-egenskap.

Antimønster

Ikke ikke: opprett post_opened_from_search, post_opened_from_feed, post_opened_from_profile. Tre hendelsesnavn betyr tre ting å vedlikeholde, ingen enkelttrakt kan dekke dem alle, og en fjerde flate betyr kodeendringer overalt. Én post_opened med source skalerer uten ekstra arbeid til et hvilket som helst antall flater.

Ikke gjør dette (én hendelse per kontekst)Gjør dette (én hendelse + én egenskap)
post_opened_from_search
post_opened_from_feed
post_opened med { source: "search" | "feed" }
video_played_mobile
video_played_web
video_played — plattform legges allerede automatisk til på alle hendelser
checkout_from_cart
checkout_from_buy_now
cart_checked_out med { source: "cart" | "buy_now" }

Navngiving: snake_case, objekt først, verb etterpå, fortid

Gi hver hendelse navn (object)_(verb) i snake_case og fortid — post_opened, video_played, cart_checked_out. Det samme navnet må brukes ordrett på tvers av Web, iOS og Android, slik at trakter på tvers av plattformer stemmer, og slik at Kixo sin standardhendelsesdetektor kan matche kanoniske navn.

  • Objekt først, verb etterpå — samler beslektede hendelser når du går gjennom katalogen (post_opened, post_liked, post_shared).
  • Fortid — en hendelse registrerer noe som skjedde.
  • snake_case — ikke postOpened, ikke PostOpened. Detektoren og ordlistematcheren skiller ikke mellom store og små bokstaver, men én fast form holder traktene ryddige.

Hendelsesegenskaper vs. brukeregenskaper

Den andre delen av beslutningen er hvor en verdi hører hjemme.

HendelsesegenskapBrukeregenskap
BeskriverDenne ene forekomsten av handlingenPersonen, varig på tvers av alle hendelsene deres
Settes medKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Eksemplersource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
BruksområderTraktfiltre per steg, fordelinger og distribusjonerSegmentering, målgruppemålretting, kampanjeberettigelse

Tips

Tommelfingerregel: Hvis verdien kan variere mellom to hendelser fra samme bruker (hvilken innlegg, hvilken kilde), er det en hendelsesegenskap. Hvis det er et trekk ved brukeren som gjelder uavhengig av handlingen (abonnementet deres, om de er VIP), er det en brukeregenskap. Legg source på hendelsen; legg plan på brukeren.

Ta alltid med en stabil entitets-ID

Send med en stabil ID for objektet handlingen gjaldt — post_id, video_id, order_id. Uten den kan du telle hvor mange innlegg som ble åpnet, men du kan ikke gruppere, deduplisere eller kjede sammen hendelser for det samme-innlegget. En trakt som søk → åpne-fra-søk → like blir først en sammenhengende brukerreise når hvert steg har egenskapen som binder stegene sammen.

Eksempel: søk → åpne → like

Si at du vil vite hvor mange brukere som søk, deretter åpne et innlegg fra søkeresultatene, og deretter liker det. Tre hendelser — men konteksten «fra søk» er en source-egenskap på post_opened, ikke en egen hendelse:

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

Da filtrerer du steg 2 (og steg 3) i trakten på source = "search" — ett egenskapsfilter, uten å sjonglere hendelsesnavn. Her er de nøyaktige SDK-kallene for hver 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',
});

Tagg brukeren i stedet

Hvis «har likt et innlegg fra søk» er en varig egenskap du vil segmentere på, og ikke bare et signal på én hendelse, setter du en brukeregenskap etter handlingen: Kixo.setUserProperty("liked_from_search", true). Da kan målgruppeutforskeren og kampanjeberettigelse målrette disse brukerne direkte.

La AI utforme det for deg

I chatten i Kixo-dashboardet kan du beskrive hva du vil måle i vanlig engelsk — «track posts opened from search and then liked» — og assistenten returnerer anbefalte hendelser, egenskaper og kopier-og-lim-inn-snutter for alle tre plattformene. og viser hvilke hendelser som allerede kommer inn for prosjektet ditt, og hva som fortsatt krever arbeid i SDK. Den følger nøyaktig mønsteret på denne siden.

Se også Hendelsesreferanse for de elleve kanoniske hendelsesnavnene Kixo gjenkjenner automatisk, og SDK-veiledningene for Web, iOS og Android.