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_searchpost_opened_from_feed | post_opened s { source: "search" | "feed" } |
video_played_mobilevideo_played_web | video_played — platforma se već automatski dodaje svakom događaju |
checkout_from_cartcheckout_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, niPostOpened. 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đaja | Korisničko svojstvo | |
|---|---|---|
| Opisuje | Ova pojedinačna pojava radnje | Osobu, trajno kroz sve njezine događaje |
| Postavlja se pomoću | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Primjeri | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Omogućuje | Filtri po koracima lijevka, raščlambe, distribucije | Segmentacija, 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.