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_searchpost_opened_from_feed | post_opened med { source: "search" | "feed" } |
video_played_mobilevideo_played_web | video_played — plattform legges allerede automatisk til på alle hendelser |
checkout_from_cartcheckout_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, ikkePostOpened. 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.
| Hendelsesegenskap | Brukeregenskap | |
|---|---|---|
| Beskriver | Denne ene forekomsten av handlingen | Personen, varig på tvers av alle hendelsene deres |
| Settes med | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Eksempler | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Bruksområder | Traktfiltre per steg, fordelinger og distribusjoner | Segmentering, 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.