Hujjatlarga o‘tish

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_search
post_opened_from_feed
{ source: "search" | "feed" } bilan post_opened
video_played_mobile
video_played_web
video_played — platforma har bir eventga allaqachon avtomatik qo‘shiladi
checkout_from_cart
checkout_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 zamonsodir bo‘ldi bo‘lganini qayd etadigan event.
  • snake_casepostOpened emas, PostOpened ham 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 xossasiFoydalanuvchi xossasi
IfodalaydiAmalning aynan shu bajarilishiFoydalanuvchining o‘zi, uning barcha eventlari bo‘ylab barqaror
Quyidagi bilan o‘rnatiladiKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Misollarsource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
Asosiy ko‘rsatkichlarHar bir qadam uchun voronka filtrlari, kesimlar va taqsimotlarSegmentatsiya, 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.