Sledovanie akcií v kontexte
Najdôležitejšie rozhodnutie pri instrumentácii je, ako pomenujete udalosti a kam uložíte kontext. Keď to spravíte správne, jedna udalosť odpovie na tucet otázok; keď nie, katalóg sa rozrastie na stovky takmer duplicitných názvov, ktoré žiadny funnel nedokáže zosúladiť. Toto je kanonický vzor Kixo — ten istý návrh odporúča aj AI poradca pre instrumentáciu (suggest_instrumentation v chate).
Vzor: jedna zovšeobecnená udalosť + bohaté vlastnosti
Sledujte jedna udalosť na jednu akciu používateľa a kontext opíšte cez vlastnosti — názov udalosti nikdy nerozdeľujte podľa kontextu. Príspevok otvorený z vyhľadávania a príspevok otvorený z feedu sú tá istá akcia (post_opened) s odlišnou vlastnosťou source.
Anti-pattern
Nevytvárajte nie ako post_opened_from_search, post_opened_from_feed, post_opened_from_profile. Tri názvy udalostí znamenajú tri veci na údržbu, žiadny funnel ich nepokryje celý a pridanie štvrtej plochy znamená zmenu kódu všade. Jedno post_opened s source sa bez ďalšej práce škáluje na ľubovoľný počet plôch.
| Nesprávne (udalosť pre každý kontext) | Správne (jedna udalosť + vlastnosť) |
|---|---|
post_opened_from_searchpost_opened_from_feed | post_opened s { source: "search" | "feed" } |
video_played_mobilevideo_played_web | video_played — platforma sa už ku každej udalosti pridáva automaticky |
checkout_from_cartcheckout_from_buy_now | cart_checked_out s { source: "cart" | "buy_now" } |
Názvy: snake_case, najprv objekt, minulý čas
Každú udalosť pomenujte ako (object)_(verb) v snake_case a v minulom čase — post_opened, video_played, cart_checked_out. Ten istý názov sa musí doslova používať na webe, v iOS aj v Android, aby sa multiplatformové funnely zarovnali a aby detektor štandardných udalostí v Kixo vedel rozpoznať kanonické názvy.
- Najprv objekt, potom sloveso — pri prehliadaní katalógu zoskupuje súvisiace udalosti (
post_opened,post_liked,post_shared). - Minulý čas — udalosť zaznamenáva niečo, čo sa stalo.
- snake_case — nie
postOpened, aniPostOpened. Detektor aj porovnávanie so slovníkom nerozlišujú veľkosť písmen, ale jednotný tvar udrží funnely čisté.
Vlastnosti udalostí vs. vlastnosti používateľov
Druhá polovica rozhodnutia je, kde hodnota patrí.
| Vlastnosť udalosti | Vlastnosť používateľa | |
|---|---|---|
| Opisuje | Tento konkrétny výskyt akcie | Používateľa, trvalo naprieč všetkými jeho udalosťami |
| Nastavuje sa cez | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Príklady | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Použitie | Filtre po krokoch funnelu, rozdelenia a distribúcie | Segmentácia, cielenie publika, oprávnenie kampaní |
Tip
Praktické pravidlo: ak sa hodnota môže líšiť medzi dvoma udalosťami toho istého používateľa (ktorý príspevok, ktorý zdroj), je to vlastnosť udalosti. Ak ide o fakt o používateľovi, ktorý platí bez ohľadu na akciu (jeho plán, či je VIP), je to vlastnosť používateľa. source patrí na udalosť; plan patrí používateľovi.
Vždy posielajte stabilné ID entity
Posielajte stabilné ID objektu, ktorého sa akcia týkala — post_id, video_id, order_id. Bez neho síce viete spočítať, koľko príspevkov sa otvorilo, ale neviete zoskupovať, deduplikovať ani prepájať udalosti o tom rovnakom príspevku. Funnel ako search → open-from-search → like dáva zmysel len vtedy, keď každý krok nesie vlastnosť, ktorá kroky spája.
Príklad: search → open → like
Povedzme, že chcete vedieť, koľko používateľov vyhľadávanie, potom otvorí príspevok z výsledkov vyhľadávania, potom olajkuje ho. Sú to tri udalosti — ale kontext „from search“ je vlastnosť source na post_opened, nie samostatná udalosť:
search_performed—{ query }post_opened—{ source: "search", screen, post_id }post_liked—{ source: "search", screen, post_id }
Potom vo funneli filtrujete krok 2 (aj krok 3) podľa source = "search" — jeden predikát nad vlastnosťou, bez žonglovania s názvami udalostí. Presné volania SDK pre každú 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čovanie používateľa namiesto udalosti
Ak je „has liked a post from search“ trvalá vlastnosť, podľa ktorej chcete segmentovať (nielen signál konkrétnej udalosti), po akcii nastavte používateľskú vlastnosť: Kixo.setUserProperty("liked_from_search", true). Prieskumník publík aj oprávnenie kampaní potom môžu cieliť priamo na týchto používateľov.
Nechajte návrh na AI
V chate v dashboarde Kixo bežnou angličtinou opíšte, čo chcete merať — „track posts opened from search and then liked“ — a asistent vráti odporúčané udalosti, vlastnosti aj úryvky na skopírovanie pre všetky tri platformy. a vám ukáže, ktoré udalosti už do projektu prúdia a čo ešte vyžaduje prácu v SDK. Používa presne ten istý vzor ako na tejto stránke.
Pozrite aj: Prehľad udalostí so zoznamom jedenástich kanonických názvov udalostí, ktoré Kixo rozpoznáva automaticky, a SDK príručky pre Web, iOS a Android.