Sledenje dejanjem v kontekstu
Najpomembnejša odločitev pri instrumentaciji je, kako poimenujete dogodke in kam postavite kontekst. Če to naredite pravilno, en sam dogodek odgovori na ducat vprašanj; če ne, katalog eksplodira v stotine skoraj podvojenih imen, ki jih noben lijak ne more uskladiti. Ta vodič je kanonični vzorec Kixo — isti pristop, ki ga priporoča AI svetovalec za instrumentacijo (suggest_instrumentation v klepetu).
Vzorec: en posplošen dogodek + bogate lastnosti
Sledite en dogodek za eno uporabniško dejanje, kontekst pa opišite z lastnosti — imena dogodka nikoli ne razvejajte glede na kontekst. Objavi, odprti iz iskanja in iz feeda, sta isto dejanje (post_opened) z drugačno lastnostjo source.
Antivzorec
Ne ustvarjajte post_opened_from_search, post_opened_from_feed, post_opened_from_profile z ne. Tri imena dogodkov pomenijo tri stvari za vzdrževanje, noben lijak jih ne more zajeti v celoti, dodajanje četrte površine pa pomeni spremembo kode povsod. En post_opened z source se brez dodatnega dela razširi na poljubno število površin.
| Napačno (dogodek za vsak kontekst) | Pravilno (en dogodek + lastnost) |
|---|---|
post_opened_from_searchpost_opened_from_feed | post_opened z { source: "search" | "feed" } |
video_played_mobilevideo_played_web | video_played — platforma je že samodejno dodana vsakemu dogodku |
checkout_from_cartcheckout_from_buy_now | cart_checked_out z { source: "cart" | "buy_now" } |
Poimenovanje: snake_case, najprej objekt, nato glagol, v pretekliku
Vsak dogodek poimenujte (object)_(verb) v snake_case, v pretekliku — post_opened, video_played, cart_checked_out. Isto ime mora biti dobesedno enako v Web, iOS in Android, da se medplatformni lijaki pravilno poravnajo in da Kixojev detektor standardnih dogodkov prepozna kanonična imena.
- Najprej objekt, nato glagol — poveže sorodne dogodke, ko pregledujete katalog (
post_opened,post_liked,post_shared). - Preteklik — dogodek zabeleži nekaj, kar se je zgodilo.
- snake_case — ne
postOpenedin nePostOpened. Detektor in ujemalnik besedišča ne razlikujeta med velikimi in malimi črkami, vendar enotna oblika ohrani lijake čiste.
Lastnosti dogodka in uporabniške lastnosti
Druga polovica odločitve je, kje ta vrednost živi.
| Lastnost dogodka | Uporabniška lastnost | |
|---|---|---|
| Opisuje | Ta posamezna pojavitev dejanja | Osebo, trajno prek vseh njenih dogodkov |
| Nastavite z | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Primeri | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Poganja | Filtri po korakih lijaka, razčlenitve, porazdelitve | Segmentacija, ciljanje občinstev, upravičenost do kampanj |
Namig
Pravilo: če se vrednost lahko razlikuje med dvema dogodkoma istega uporabnika (katera objava, katera vir), je to lastnost dogodka. Če gre za dejstvo o uporabniku, ki velja ne glede na dejanje (njegov paket, ali je VIP), je to uporabniška lastnost. source dajte na dogodek, plan pa uporabniku.
Vedno vključite stabilen ID entitete
Posredujte stabilen ID objekta, na katerega se je dejanje nanašalo — post_id, video_id, order_id. Brez tega lahko preštejete, koliko objav je bilo odprtih, ne morete pa združevati, razpodvajati ali verižiti dogodkov o isti ista objavi. Lijak, kot je search → open-from-search → like, se razreši v smiselno uporabniško pot šele, ko vsak korak nosi lastnost, ki te korake poveže.
Primer: search → open → like
Recimo, da želite vedeti, koliko uporabnikov iskanje, nato odprejo objavo iz rezultatov iskanja, nato všečkajo. To so trije dogodki — vendar je kontekst "from search" lastnost source na post_opened, ne ločen dogodek:
search_performed—{ query }post_opened—{ source: "search", screen, post_id }post_liked—{ source: "search", screen, post_id }
Nato v lijaku filtrirate 2. korak (in 3. korak) po source = "search" — en pogoj na lastnosti, brez usklajevanja različnih imen dogodkov. Točni klici SDK za vsako platformo:
// 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',
});Namesto tega označite uporabnika
Če je "has liked a post from search" trajna lastnost, po kateri želite segmentirati, in ne le signal na posameznem dogodku, po dejanju nastavite uporabniško lastnost: Kixo.setUserProperty("liked_from_search", true). Nato lahko raziskovalec občinstev in upravičenost do kampanj neposredno ciljata te uporabnike.
Naj to zasnuje AI
V klepetu na nadzorni plošči Kixo v navadni angleščini opišite, kaj želite meriti — "track posts opened from search and then liked" — in pomočnik vrne priporočene dogodke, lastnosti ter odseke za kopiranje za vse tri platforme; in pa pokaže, kateri dogodki za vaš projekt že pritekajo in kaj še zahteva delo v SDK. Uporabi natanko vzorec s te strani.
Glejte tudi: Referenca dogodkov za enajst kanoničnih imen dogodkov, ki jih Kixo samodejno prepozna, ter vodiče SDK za posamezne platforme: Splet, iOS in Android.