Preskoči na dokumentacijo

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_search
post_opened_from_feed
post_opened z { source: "search" | "feed" }
video_played_mobile
video_played_web
video_played — platforma je že samodejno dodana vsakemu dogodku
checkout_from_cart
checkout_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 postOpened in ne PostOpened. 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 dogodkaUporabniška lastnost
OpisujeTa posamezna pojavitev dejanjaOsebo, trajno prek vseh njenih dogodkov
Nastavite zKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Primerisource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
PoganjaFiltri po korakih lijaka, razčlenitve, porazdelitveSegmentacija, 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.