Idi na dokumentaciju

Praćenje akcija u kontekstu

Najvažnija odluka u instrumentaciji je kako imenujete događaje i gdje smještate kontekst. Ako to uradite kako treba, jedan događaj odgovara na desetak pitanja; ako pogriješite, katalog se raspadne na stotine gotovo istih naziva koje nijedan lijevak ne može poravnati. Ovaj vodič je kanonski obrazac u Kixo — isti pristup koji preporučuje AI savjetnik za instrumentaciju (suggest_instrumentation u chatu).

Obrazac: jedan uopćeni događaj + bogata svojstva

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

Antipattern

Nemojte 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 lijevak ih ne može obuhvatiti, a dodavanje četvrte površine traži izmjene koda svuda. Jedan post_opened s source bez problema se širi na proizvoljan broj površina.

Nemojte (događaj po kontekstu)Ispravno (jedan događaj + svojstvo)
post_opened_from_search
post_opened_from_feed
post_opened s { 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 s { source: "cart" | "buy_now" }

Imenovanje: snake_case, prvo objekat pa glagol, u prošlom vremenu

Svaki događaj imenujte kao (object)_(verb) u snake_case i u prošlom vremenu — post_opened, video_played, cart_checked_out. Isti naziv mora se doslovno koristiti na Webu, iOS-u i Androidu kako bi se višekanalni lijevci poravnali i kako bi Kixo detektor standardnih događaja mogao prepoznati kanonske nazive.

  • Prvo objekat, zatim glagol — grupiše povezane događaje dok pregledate katalog (post_opened, post_liked, post_shared).
  • Prošlo vrijeme — događaj bilježi nešto što se desilo.
  • snake_case — ne postOpened, ne PostOpened. Detektor i usklađivanje rječnika ne razlikuju velika i mala slova, ali jedan dosljedan oblik održava lijevke čistim.

Svojstva događaja naspram svojstava korisnika

Druga polovina odluke je gdje se vrijednost nalazi.

Svojstvo događajaKorisničko svojstvo
OpisujeOvo jedno pojavljivanje akcijeOsoba, trajno kroz sve njene događaje
Postavlja se pomoćuKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Primjerisource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
PokrećeFilteri po koraku lijevka, raščlambe i distribucijeSegmentacija, ciljanje publike, uslovi za kampanje

Savjet

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

Uvijek šaljite stabilan ID entiteta

Pošaljite stabilan ID objekta nad kojim je akcija izvršena — post_id, video_id, order_id. Bez toga možete brojati koliko je objava otvoreno, ali ne možete grupisati, deduplikovati ni povezivati događaje za isti isti. Lijevak poput search → open-from-search → like može se svesti na smislen korisnički tok samo kada svaki korak nosi svojstvo koje povezuje te korake.

Razrađen primjer: search → open → like

Recimo da želite znati koliko korisnika pretraga, zatim otvori objavu iz rezultata pretrage, pa lajkuje ga. 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 }

Tada vaš lijevak filtrira 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 umjesto toga

Ako je "has liked a post from search" trajna osobina po kojoj želite segmentirati korisnike, a ne samo signal na pojedinačnom događaju, postavite user property nakon akcije: Kixo.setUserProperty("liked_from_search", true). Tada audience explorer i uslovi za kampanje mogu direktno ciljati te korisnike.

Prepustite AI-u da to osmisli za vas

U chatu u Kixo dashboardu običnim engleskim opišite šta želite mjeriti — "track posts opened from search and then liked" — i asistent će vratiti preporučene događaje, svojstva i gotove isječke za kopiranje za sve tri platforme. i vam zatim pokazuje koji događaji već pristižu za vaš projekat, a za koje još treba rad na SDK-u. Primjenjuje upravo obrazac sa ove stranice.

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