Idi na dokumentaciju

Praćenje akcija u kontekstu

Najvažnija odluka u instrumentaciji je kako imenujete događaje i gde smeštate kontekst. Ako to uradite kako treba, jedan događaj odgovara na desetine pitanja; ako pogrešite, katalog se pretvara u stotine gotovo istih naziva koje nijedan levak ne može da uskladi. Ovaj vodič je kanonski obrazac za Kixo — isti pristup koji preporučuje AI savetnik za instrumentaciju (suggest_instrumentation u chatu).

Obrazac: jedan opšti događaj + bogata svojstva

Pratite jedan događaj po korisničkoj akciji, a kontekst opišite pomoću svojstva — nikada ne razdvajajte naziv događaja po kontekstu. Objava otvorena iz pretrage i objava otvorena iz feeda ista su akcija (post_opened) sa različitim svojstvom source.

Loš obrazac

Nemojte za ne praviti post_opened_from_search, post_opened_from_feed, post_opened_from_profile. Tri naziva događaja znače tri stvari za održavanje, nijedan jedinstven levak ne može da ih obuhvati, a dodavanje četvrte površine znači izmene koda svuda. Jedan post_opened sa source bez dodatnog posla skalira na proizvoljan broj površina.

Nemojte ovako (događaj po kontekstu)Radite ovako (jedan događaj + svojstvo)
post_opened_from_search
post_opened_from_feed
post_opened sa { source: "search" | "feed" }
video_played_mobile
video_played_web
video_played — platforma se već automatski dodaje svakom događaju
checkout_from_cart
checkout_from_buy_now
cart_checked_out sa { source: "cart" | "buy_now" }

Imenovanje: snake_case, objekat pa glagol, prošlo vreme

Svaki događaj imenujte kao (object)_(verb) u snake_case i prošlom vremenu — post_opened, video_played, cart_checked_out. Isti naziv mora doslovno da se koristi na Web, iOS i Android platformi da bi višekanalski levci bili usklađeni i da bi Kixo detektor standardnih događaja mogao da prepozna kanonske nazive.

  • Prvo objekat, zatim glagol — grupiše povezane događaje dok pregledate katalog (post_opened, post_liked, post_shared).
  • Prošlo vreme — događaj beleži nešto što se desilo.
  • snake_case — ne postOpened, ne PostOpened. Detector i vocabulary matcher ne razlikuju velika i mala slova, ali jedna usaglašena forma održava levke čistim.

Svojstva događaja naspram svojstava korisnika

Druga polovina odluke je gde vrednost pripada.

Svojstvo događajaSvojstvo korisnika
OpisujeOva konkretna pojava akcijeOsoba, trajno kroz sve svoje događaje
Postavlja se pomoćuKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Primerisource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
OmogućavaFilteri po koraku levka, raščlanjivanja, distribucijeSegmentacija, ciljanje publike, uslovi za kampanje

Savet

Pravilo: ako vrednost može da se razlikuje između dva događaja istog korisnika (koji objava, koji izvor), to je event property. Ako je to činjenica o korisniku koja važi bez obzira na akciju (njihov paket, da li je VIP), to je user property. source ide na događaj; plan ide na korisnika.

Uvek nosite stabilan ID entiteta

Prosledite stabilan ID objekta na koji se akcija odnosi — post_id, video_id, order_id. Bez njega možete da izbrojite koliko je objava otvoreno, ali ne možete da grupišete, deduplikujete niti povezujete događaje o istoj isti objavi. Levak kao pretraga → otvaranje-iz-pretrage → lajk postaje smislen korisnički tok tek kada svaki korak nosi svojstvo koje te korake povezuje.

Primer: pretraga → otvaranje → lajk

Recimo da želite da znate koliko korisnika pretraga, zatim otvore objavu iz rezultata pretrage, pa lajkuju je. To su tri događaja — ali kontekst „from search” je svojstvo source na post_opened, a ne poseban događaj:

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

Zatim u levku filtrirate korak 2 (i korak 3) po source = "search" — jedan uslov nad svojstvom, bez žongliranja nazivima događaja. Tačni SDK pozivi za svaku platformu:

// 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',
});

Označavanje korisnika umesto toga

Ako je „has liked a post from search” trajna osobina po kojoj želite da segmentirate korisnike, a ne samo signal vezan za pojedinačni događaj, postavite user property posle akcije: Kixo.setUserProperty("liked_from_search", true). Tada audience explorer i uslovi za kampanje mogu direktno da ciljaju te korisnike.

Prepustite AI-u da to osmisli

U Kixo chatu na kontrolnoj tabli običnim engleskim opišite šta želite da merite — „track posts opened from search and then liked” — i asistent će vratiti preporučene događaje, svojstva i gotove isečke za kopiranje za sve tri platforme. i pokazuje koji događaji već pristižu za vaš projekat, a za koje je i dalje potreban rad u SDK-u. Primenjuje upravo obrazac sa ove stranice.

Pogledajte i: Referenca događaja za jedanaest kanonskih naziva događaja koje Kixo automatski prepoznaje, kao i SDK vodiče po platformama za Web, iOS i Android.