Belgelere geç

Bağlam içinde eylem takibi

En kritik enstrümantasyon kararı, olayları nasıl adlandırdığınız ve bağlamı nereye koyduğunuzdur. Doğru yaparsanız tek bir olay onlarca soruyu yanıtlar; yanlış yaparsanız kataloğunuz, hiçbir huninin hizalayamadığı yüzlerce neredeyse aynı adla şişer. Bu kılavuz, Kixo'nun kanonik desenidir — sohbetteki AI enstrümantasyon danışmanının (suggest_instrumentation) önerdiği tasarım da tam olarak budur.

Desen: tek bir genelleştirilmiş olay + zengin özellikler

kullanıcı eylemi başına bir olay olayını izleyin, bağlamı da özellikler ile belirtin — bağlama göre asla ayrı olay adları üretmeyin. Aramadan açılan bir gönderiyle akıştan açılan bir gönderi aynı eylemdir (post_opened); yalnızca source özelliği farklıdır.

Kaçınılması gereken yaklaşım

post_opened_from_search, post_opened_from_feed, post_opened_from_profile üretmek için değil yapmayın. Üç olay adı, bakımını yapmanız gereken üç ayrı şey demektir; tek bir huni bunların hepsini kapsayamaz ve dördüncü bir yüzey eklemek her yerde kod değişikliği gerektirir. source içeren tek bir post_opened, hiçbir ek maliyet olmadan istediğiniz kadar yüzeye ölçeklenir.

Yapmayın (bağlam başına olay)Doğru yaklaşım (tek olay + özellik)
post_opened_from_search
post_opened_from_feed
{ source: "search" | "feed" } ile post_opened
video_played_mobile
video_played_web
video_played — platform zaten her olaya otomatik eklenir
checkout_from_cart
checkout_from_buy_now
{ source: "cart" | "buy_now" } ile cart_checked_out

Adlandırma: snake_case, (nesne)(fiil), geçmiş zaman

Her olayı (object)_(verb) biçiminde, snake_case ve geçmiş zamanda adlandırın — post_opened, video_played, cart_checked_out. Platformlar arası hunilerin hizalanması ve Kixo'nun standart olay algılayıcısının kanonik adları eşleştirebilmesi için aynı ad Web, iOS ve Android'de birebir kullanılmalıdır.

  • Önce nesne, sonra fiil — katalogu tararken ilişkili olayları birlikte gruplar (post_opened, post_liked, post_shared).
  • Geçmiş zamangerçekleşti olan bir şeyi kaydeden olay.
  • snake_casepostOpened değil, PostOpened değil. Algılayıcı ve sözlük eşleştirici büyük/küçük harf farkı gözetmez; yine de tek bir biçimde birleşmek hunileri temiz tutar.

Olay özellikleri ve kullanıcı özellikleri

Kararın diğer yarısı, bir değerin bulunduğu yer yaşadığıdır.

Olay özelliğiKullanıcı özelliği
AçıklarEylemin bu tek gerçekleşmesiKişi; tüm olaylarında kalıcı olarak
Şununla ayarlanırKixo.track(name, { ... })Kixo.setUserProperty(key, value)
Örneklersource, screen, post_id, amount_centsplan, vip, signup_cohort, lifetime_orders
KapsamAdım bazlı huni filtreleri, kırılımlar, dağılımlarSegmentasyon, kitle hedefleme, kampanya uygunluğu

İpucu

Pratik kural: Değer, aynı kullanıcıdan gelen iki olay arasında değişebiliyorsa (hangisi gönderi, hangisi kaynak), bu bir olay özelliğidir. Kullanıcı hakkında, eylemden bağımsız bir gerçekse (planı, VIP olup olmadığı), bu bir kullanıcı özelliğidir. source olaya, plan kullanıcıya yazılır.

Her zaman kalıcı bir varlık kimliği taşıyın

Eylemin dokunduğu nesne için kalıcı bir kimlik gönderin — post_id, video_id, order_id. Bu olmadan kaç gönderinin açıldığını sayabilirsiniz; ama aynı gönderiyle ilgili olayları gruplayamaz, tekilleştiremez veya birbirine bağlayamazsınız. arama → aramadan_aç → beğen gibi bir huni ancak her adım, adımları birbirine bağlayan özelliği taşıyorsa tutarlı bir kullanıcı yolculuğuna dönüşür.

Uygulamalı örnek: arama → aç → beğen

Diyelim ki kaç kullanıcının önce arama, sonra arama sonuçlarından bir gönderi açmak, sonra beğenmek yaptığını bilmek istiyorsunuz. Burada üç olay var — ama "from search" bağlamı ayrı bir olay değil, post_opened üzerindeki bir source özelliğidir:

  • search_performed{ query }
  • post_opened{ source: "search", screen, post_id }
  • post_liked{ source: "search", screen, post_id }

Ardından huninizin 2. adımını (ve 3. adımını) source = "search" ile filtrelersiniz — tek bir özellik koşulu, olay adı cambazlığı yok. Her platform için tam SDK çağrıları:

// 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',
});

Bunun yerine kullanıcıyı etiketlemek

"Aramadan bir gönderiyi beğenmiş olmak" segmentlemek istediğiniz kalıcı bir özellikse (yalnızca olay bazlı bir sinyal değilse), eylemden sonra bir kullanıcı özelliği ayarlayın: Kixo.setUserProperty("liked_from_search", true). Böylece kitle gezgini ve kampanya uygunluğu bu kullanıcıları doğrudan hedefleyebilir.

AI sizin için tasarlasın

Kixo pano sohbetinde neyi ölçmek istediğinizi sade İngilizceyle yazın — "track posts opened from search and then liked". Asistan, üç platform için önerilen olayları, özellikleri ve kopyala-yapıştır kod parçalarını döndürür; ve ise projenizde hangi olayların zaten aktığını, hangileri için hâlâ SDK çalışması gerektiğini söyler. Bu sayfadaki deseni birebir uygular.

Ayrıca bkz.: Kixo'nun otomatik tanıdığı on bir kanonik olay adı için Etkinlik referansı; ayrıca Web, iOS ve Android için platforma özel SDK kılavuzları.