Prijeđi na dokumentaciju

Praćenje radnji u kontekstu

Najvažnija odluka u instrumentaciji jest kako imenujete događaje i gdje smještate kontekst. Ako to postavite 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 uskladiti. Ovaj vodič je kanonski obrazac u Kixo — isti pristup koji preporučuje AI savjetnik za instrumentaciju (suggest_instrumentation u chatu).

Obrazac: jedan općeniti događaj + bogata svojstva

Pratite jedan događaj po korisničkoj radnji, a kontekst opišite kroz svojstva — naziv događaja nikad nemojte granati po kontekstu. Objava otvorena iz pretraživanja i objava otvorena iz feeda ista su radnja (post_opened) s drukčijim svojstvom source.

Loš obrazac

Nemojte za ne uvoditi post_opened_from_search, post_opened_from_feed, post_opened_from_profile. Tri naziva događaja znače tri stvari koje treba održavati, nijedan lijevak ih ne može obuhvatiti, a dodavanje četvrte površine traži promjenu koda posvuda. Jedan post_opened s source bez dodatnog rada skalira se na bilo koji 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 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 objekt pa glagol, u prošlom vremenu

Svaki događaj imenujte kao (object)_(verb) u snake_case, 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 objekt, zatim glagol — grupira povezane događaje dok pregledavate katalog (post_opened, post_liked, post_shared).
  • Prošlo vrijeme — događaj bilježi nešto što se dogodilo.
  • snake_case — ne postOpened, ni PostOpened. Detektor i podudaranje rječnika ne razlikuju velika i mala slova, ali dosljedno korištenje jednog oblika održava lijevke čistima.

Svojstva događaja i korisnička svojstva

Druga polovica odluke je gdje vrijednost pripada.

Svojstvo događajaKorisničko svojstvo
OpisujeOva pojedinačna pojava radnjeOsobu, trajno kroz sve njezine događaje
Postavlja se pomoćuKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Primjerisource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
OmogućujeFiltri po koracima lijevka, raščlambe, distribucijeSegmentacija, ciljanje publike, uvjeti za kampanje

Savjet

Pravilo: ako se vrijednost može razlikovati između dva događaja istog korisnika (koji objava, koji izvor), riječ je o svojstvu događaja. Ako je to činjenica o korisniku koja vrijedi neovisno o radnji (njihov paket, je li VIP), riječ je o korisničkom svojstvu. source ide na događaj, a plan na korisnika.

Uvijek šaljite stabilni ID entiteta

Pošaljite stabilni ID objekta nad kojim je radnja izvršena — post_id, video_id, order_id. Bez njega možete prebrojati koliko je objava otvoreno, ali ne možete grupirati, deduplicirati ni povezivati događaje o istoj objavi. Lijevak poput pretraživanje → otvaranje-iz-pretraživanja → lajk daje smislen korisnički put samo ako svaki korak nosi svojstvo koje te korake povezuje.

Razrađeni primjer: search → open → like

Recimo da želite znati koliko korisnika pretraživanje, zatim otvori objavu iz rezultata pretraživanja, pa lajka. To su tri događaja — ali kontekst "from search" je svojstvo source na post_opened, a ne zaseban događaj:

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

Zatim u lijevku filtrirate 2. korak (i 3. korak) po source = "search" — jedan uvjet nad svojstvom, bez žongliranja nazivima događaja. Toč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 događaja

Ako je "has liked a post from search" trajna osobina po kojoj želite segmentirati korisnike, a ne samo signal na pojedinom događaju, nakon radnje postavite korisničko svojstvo: Kixo.setUserProperty("liked_from_search", true). Tada ih preglednik publike i uvjeti za kampanje mogu izravno ciljati.

Prepustite AI-u da to osmisli

U chatu na nadzornoj ploči Kixo običnim engleskim opišite što ž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 pokazuje koji događaji već pristižu za vaš projekt, a za koje još treba doraditi SDK. Primjenjuje upravo obrazac s 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.