Amallarni kontekst bilan kuzatish
Instrumentatsiyadagi eng muhim qaror — eventlarni qanday nomlash va kontekstni qayerga qo‘yish. Buni to‘g‘ri qilsangiz, bitta event o‘nlab savollarga javob beradi; noto‘g‘ri qilsangiz esa, katalog hech bir voronka moslay olmaydigan yuzlab deyarli bir xil nomlarga to‘lib ketadi. Bu qo‘llanma Kixo’dagi asosiy andoza bo‘lib, chatdagi AI instrumentatsiya maslahatchisi (suggest_instrumentation) ham aynan shuni tavsiya qiladi.
Andoza: bitta umumiy event + boy xossalar
har bir foydalanuvchi amali uchun bitta eventni kuzating, kontekstni esa xususiyatlar bilan ifodalang — event nomini kontekstga qarab hech qachon ajratmang. Qidiruvdan ochilgan post ham, lentadan ochilgan post ham bir xil amal (post_opened); farq faqat source xossasida.
Noto‘g‘ri yondashuv
emas qilib, post_opened_from_search, post_opened_from_feed, post_opened_from_profile kabi alohida eventlar yaratmang. Uchta event nomi — qo‘llab turilishi kerak bo‘lgan uchta alohida ma’no degani; bitta voronka ularning barchasini qamrab ololmaydi, to‘rtinchi surface qo‘shilsa esa hamma joyda kodni o‘zgartirishga to‘g‘ri keladi. source bilan bitta post_opened esa qo‘shimcha xarajatsiz istalgancha surface’ga kengayadi.
| Noto‘g‘ri yo‘l (har kontekst uchun alohida event) | To‘g‘ri yo‘l (bitta event + xossa) |
|---|---|
post_opened_from_searchpost_opened_from_feed | { source: "search" | "feed" } bilan post_opened |
video_played_mobilevideo_played_web | video_played — platforma har bir eventga allaqachon avtomatik qo‘shiladi |
checkout_from_cartcheckout_from_buy_now | { source: "cart" | "buy_now" } bilan cart_checked_out |
Nomlash: snake_case, avval obyekt, keyin fe’l, o‘tgan zamon
Har bir eventni (object)_(verb) ko‘rinishida, snake_case va o‘tgan zamonda nomlang — post_opened, video_played, cart_checked_out. Platformalararo voronkalar mos tushishi va Kixo standart event detektori kanonik nomlarni topa olishi uchun ayni bir nom Web, iOS va Android’da aynan bir xil yozilishi kerak.
- Avval obyekt, keyin fe’l — katalogni ko‘zdan kechirayotganda bog‘liq eventlarni bir joyga jamlaydi (
post_opened,post_liked,post_shared). - O‘tgan zamon — sodir bo‘ldi bo‘lganini qayd etadigan event.
- snake_case —
postOpenedemas,PostOpenedham emas. Detektor va lug‘at moslagichi katta-kichik harfni farqlamaydi, ammo bitta shaklda yurish voronkalarni toza saqlaydi.
Event xossalari va foydalanuvchi xossalari
Qarorning ikkinchi yarmi — qiymat qayerda turishi.
| Event xossasi | Foydalanuvchi xossasi | |
|---|---|---|
| Ifodalaydi | Amalning aynan shu bajarilishi | Foydalanuvchining o‘zi, uning barcha eventlari bo‘ylab barqaror |
| Quyidagi bilan o‘rnatiladi | Kixo.track(name, { ... }) | Kixo.setUserProperty(key, value) |
| Misollar | source, screen, post_id, amount_cents | plan, vip, signup_cohort, lifetime_orders |
| Asosiy ko‘rsatkichlar | Har bir qadam uchun voronka filtrlari, kesimlar va taqsimotlar | Segmentatsiya, auditoriyani nishonga olish, kampaniyaga moslik |
Maslahat
Oddiy qoida: agar qiymat bir foydalanuvchining ikkita eventi orasida o‘zgarishi mumkin bo‘lsa (qaysi post, qaysi manba), bu event xossasi. Agar u amaldan qat’i nazar foydalanuvchiga xos fakt bo‘lsa (tarifi, VIP yoki yo‘qligi), bu foydalanuvchi xossasi. sourceni eventga, planni foydalanuvchiga qo‘ying.
Har doim barqaror entity ID yuboring
Amal taalluqli bo‘lgan obyekt uchun barqaror ID yuboring — post_id, video_id, order_id. Busiz nechta post ochilganini sanashingiz mumkin, lekin aynan shu bir xil postga oid eventlarni guruhlay, dublikatdan tozalay yoki ketma-ket bog‘lay olmaysiz. qidiruv → qidiruvdan ochish → like kabi voronka faqat har bir qadamda qadamlarni bir-biriga bog‘laydigan xossa bo‘lsa, yaxlit foydalanuvchi yo‘liga aylanadi.
Amaliy misol: search → open → like
Aytaylik, nechta foydalanuvchi qidiruv, keyin qidiruv natijalaridan postni ochish, keyin unga like bosish qilganini bilmoqchisiz. Bu yerda uchta event bor — lekin "from search" konteksti alohida event emas, post_openeddagi source xossa:
search_performed—{ query }post_opened—{ source: "search", screen, post_id }post_liked—{ source: "search", screen, post_id }
Shunda voronkaning 2-qadami (va 3-qadami) source = "search" bo‘yicha filtrlanadi — bitta xossa sharti kifoya, event nomlarini almashtirib yurishga hojat yo‘q. Har bir platforma uchun aniq SDK chaqiriqlari:
// 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',
});Buning o‘rniga foydalanuvchini belgilash
Agar "search’dan postga like bosgan" holat segmentlash uchun kerak bo‘ladigan barqaror belgi bo‘lsa (ya’ni shunchaki bitta event signali bo‘lmasa), amal bajarilgandan keyin foydalanuvchi xossasini o‘rnating: Kixo.setUserProperty("liked_from_search", true). Shunda auditoriya ko‘ruvchisi va kampaniyaga moslik shu foydalanuvchilarni to‘g‘ridan to‘g‘ri nishonga ola oladi.
Buni AI siz uchun tuzib bersin
Kixo dashboard chatida nimani o‘lchamoqchi ekaningizni oddiy ingliz tilida yozing — "track posts opened from search and then liked". Assistent uchala platforma uchun tavsiya etilgan eventlar, xossalar va copy-paste snippetlarni qaytaradi, va esa loyihangizda qaysi eventlar allaqachon oqib kelayotganini va qaysilari uchun hali SDK ishi kerakligini ko‘rsatadi. U aynan shu sahifadagi andozani qo‘llaydi.
Shuningdek qarang: Kixo avtomatik tanib oladigan o‘n birta kanonik event nomi uchun Hodisalar ma’lumotnomasi, shuningdek Web, iOS va Android bo‘yicha platformaga xos SDK qo‘llanmalari.