Контекстегі әрекеттерді тіркеу
Инструментациядағы ең маңызды шешім — оқиғаларды қалай атайтыныңыз және контексті қайда қоятыныңыз. Дұрыс жасасаңыз, бір оқиға ондаған сұраққа жауап береді; қате жасасаңыз, каталог бір-біріне өте ұқсас жүздеген атауға толып, оларды ешбір воронкаға дұрыс келтіре алмайсыз. Бұл нұсқаулық — Kixo-ның канондық үлгісі; чаттағы AI instrumentation advisor (suggest_instrumentation) да дәл осыны ұсынады.
Үлгі: бір жалпыланған оқиға + бай қасиеттер
әр пайдаланушы әрекетіне бір оқиға оқиғасын тіркеп, контексті қасиеттер арқылы сипаттаңыз — контекстке қарай оқиға атауын ешқашан тармақтамаңыз. Іздеуден ашылған жазба мен лентадан ашылған жазба — бір әрекет (post_opened), айырмасы тек source қасиетінде.
Антиүлгі
емес қолданыңыз, post_opened_from_search, post_opened_from_feed, post_opened_from_profile жасамаңыз. Үш бөлек оқиға атауы — қолдап отыру керек үш бөлек мән; оларды бір де бір воронка толық қамти алмайды, ал төртінші бетті қосу барлық жерде код өзгертуге әкеледі. source бар бір post_opened еш қосымша шығынсыз кез келген бет санына масштабталады.
| Бұрыс тәсіл (әр контекстке жеке оқиға) | Дұрыс тәсіл (бір оқиға + қасиет) |
|---|---|
post_opened_from_searchpost_opened_from_feed | { source: "search" | "feed" } бар post_opened |
video_played_mobilevideo_played_web | video_played — platform әр оқиғаға онсыз да автоматты түрде қосылады |
checkout_from_cartcheckout_from_buy_now | { source: "cart" | "buy_now" } бар cart_checked_out |
Атау беру: snake_case, өткен шақ
Әр оқиғаны (object)_(verb) үлгісімен, яғни snake_case және өткен шақта атаңыз — post_opened, video_played, cart_checked_out. Платформалар арасындағы воронкалар дәл сәйкесуі және Kixo стандартты оқиғалар детекторы канондық атауларды дұрыс тануы үшін, бір атау Web, iOS және Android-та сөзбе-сөз бірдей болуы керек.
- Алдымен объект, кейін етістік — каталогты қарағанда байланысты оқиғаларды бір топқа жинайды (
post_opened,post_liked,post_shared). - Өткен шақ — болды болғанын тіркейтін оқиға.
- snake_case —
postOpenedемес,PostOpenedемес. Детектор мен атауларды сәйкестендіру регистрге тәуелсіз, бірақ бір нұсқаны ұстансаңыз, воронкалар таза болады.
Оқиға қасиеттері мен пайдаланушы қасиеттері
Шешімнің екінші жартысы — мәннің қайда орналасатыны.
| Оқиға қасиеті | Пайдаланушы қасиеті | |
|---|---|---|
| Сипаттайды | Әрекеттің осы орындалуы | Пайдаланушының өзі туралы, барлық оқиғасы бойынша тұрақты |
| Мына арқылы орнатылады | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Мысалдар | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Мүмкіндіктері | Воронканың әр қадамына арналған сүзгілер, бөліністер, үлестірімдер | Сегментация, аудиторияны нысаналау, науқанға жарамдылық |
Кеңес
Қарапайым ереже: егер мән бір пайдаланушының екі оқиғасында әртүрлі болуы мүмкін болса (қайсысы жазба, қайсысы дереккөзі), бұл — оқиға қасиеті. Ал егер ол әрекетке тәуелсіз пайдаланушы туралы дерек болса (тарифі, VIP екені), бұл — пайдаланушы қасиеті. source қасиетін оқиғаға, plan қасиетін пайдаланушыға қойыңыз.
Әрқашан тұрақты entity id беріңіз
Әрекет жасалған нысанның тұрақты id-ін беріңіз — post_id, video_id, order_id. Онсыз қанша жазба ашылғанын санай аласыз, бірақ бірдей жазбаға қатысты оқиғаларды топтай, қайталанғанын алып тастай немесе өзара тізбектей алмайсыз. іздеу → іздеуден ашу → лайк басу сияқты воронка әр қадамда қадамдарды байланыстыратын қасиет болғанда ғана біртұтас пайдаланушы жолын көрсетеді.
Мысал: іздеу → ашу → лайк басу
Мысалы, қанша пайдаланушы іздеу, содан кейін іздеу нәтижелерінен жазбаны ашу, одан кейін лайк басу жасағанын білгіңіз келеді делік. Мұнда үш оқиға бар, бірақ "from search" контексі — бөлек оқиға емес, post_opened оқиғасының source қасиеті:
search_performed—{ query }post_opened—{ source: "search", screen, post_id }post_liked—{ source: "search", screen, post_id }
Содан кейін воронканың 2-қадамын (және 3-қадамын) source = "search" бойынша сүзесіз — бір ғана қасиет шарты, оқиға атауларын алмастырып әуре болмайсыз. Әр платформаға арналған нақты SDK шақырулары:
// 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',
});Оның орнына пайдаланушыны белгілеу
Егер "іздеуден жазбаны лайктаған" деген белгі сегменттеуге керек тұрақты сипат болса (тек бір оқиға сигналы емес), әрекеттен кейін пайдаланушы қасиетін орнатыңыз: Kixo.setUserProperty("liked_from_search", true). Сонда аудитория шолғышы мен науқанға жарамдылық шарттары сол пайдаланушыларды тікелей нысаналай алады.
Оны AI сіз үшін құрастырсын
Kixo дашбордындағы чатта нені өлшегіңіз келетінін қарапайым ағылшын тілінде жазыңыз — "track posts opened from search and then liked" — сонда көмекші үш платформаның бәріне арналған ұсынылатын оқиғаларды, қасиеттерді және көшіріп қоюға дайын үзінділерді береді. Ал және жобаңызға қай оқиғалар келіп жатқанын және қайсысына әлі SDK жұмысы керек екенін көрсетеді. Ол осы беттегі үлгіні дәл қолданады.
Сондай-ақ қараңыз: Kixo автоматты түрде танитын он бір канондық оқиға атауына арналған Оқиғалар анықтамалығы, сондай-ақ Веб, iOS және Android үшін SDK нұсқаулықтары.