PushizoDocs
Kullanıcılar & segmentler

Segmentler

Dinamik ve statik segmentler, koşul AST'si (all/any/none), alan ve operatör listesi, davranış ve konum koşulları, önizleme/tahmin uçları ve kampanya kullanımı.

Segment, kullanıcıları (ve aboneliklerini) seçen kayıtlı bir koşul ağacıdır. Dinamik segmentler her gönderimde yeniden hesaplanır; statik segmentler POST …/segments/{id}/refresh ile ya da içe aktarmayla sabitlenir. Aynı koşul dili POST /v1/notifications içindeki target.filters, POST …/users/search ve in-app/journey kitlelerinde kullanılır.

Koşul dili

{
  "all": [
    { "field": "tag", "name": "plan", "op": "eq", "value": "pro" },
    { "field": "last_active_at", "op": "within_days", "days": 30 },
    { "any": [
      { "field": "event", "name": "purchase", "op": "count_gte", "value": 3, "days": 90 },
      { "field": "property", "name": "ltv", "op": "gt", "value": 500 }
    ] },
    { "none": [ { "field": "message", "event": "opened", "op": "has", "within_days": 7 } ] }
  ]
}

Gruplar: all (VE), any (VEYA), none (DEĞİL); iç içe geçebilir (en fazla 50 koşul/grup, derleyici derinliği sınırlar). Her koşul field, op ve gerekiyorsa name/value/days taşır.

Alanlar

fieldAçıklamaEk anahtarlar
tagKullanıcı tag'iname
propertyTiplenmiş özellik (sayısal karşılaştırma)name
language, country, timezoneAbonelik/kullanıcı meta verisi—
device_type, device_os, app_versionCihaz; app_version semver karşılaştırır—
channel, subscription_statusAbonelik kanalı/durumu—
first_session_at, last_active_at, created_atZaman alanlarıdays
session_count, usage_durationOturum sayısı / toplam süre—
eventOlay sayısı (user_event_counts)name, days, where ({ key, value } özellik filtresi)
messageMesaj davranışı: sent, delivered, failed, bounced, opened, clickedevent, within_days, message_id, campaign_id, journey_id, channel
in_appIn-app davranışı: impression, clicked, dismissedevent, within_days, in_app_message_id
segmentBaşka segmentin üyeliğivalue (segment id)
locationYarıçap içinde (konum)lat, lng, radius_km, days

Operatörler

GrupOperatörler
Karşılaştırmaeq, neq, exists, not_exists, contains, starts_with, gt, lt, gte, lte, in, not_in, between
Zamanwithin_days (son N gün içinde), before_days (N günden eski)
Sürümsemver_gte, semver_lt (app_version)
Olay sayısıcount_gte, count_lte, not_performed (event)
Davranışhas, has_not (message, in_app)
Konumwithin_radius (location)

Alan × operatör geçerliliği derleyicide denetlenir; uyumsuz birleşim 400 HS_VALIDATION_ERROR döner. Şema: API → şemalar.

API

İşlemUçKapsam
ListeGET /v1/apps/{app_id}/segments?q=&cursor=segments:read
Oluştur / güncelle / silPOST, PATCH …/{id}, DELETE …/{id} (kullanımda olan segment 409)admin
Önizleme (kaydetmeden)POST …/segments/preview { definition } → sayım + örnek kullanıcılarsegments:read
TahminPOST …/segments/{id}/estimate → önbellekli sayı (kanal kırılımı)segments:read
Statik yenilemePOST …/segments/{id}/refreshadmin
Kullanıldığı kampanyalarGET …/segments/{id}/campaignssegments:read

Örnekler: API → Segmentler. Kampanya ve bildirimde included_segments / excluded_segments; segment sayımı e-posta/SMS kanalları için kanal bazında gösterilir.

Performans ve davranış

  • Koşullar parametrik SQL'e derlenir; olay sayıları user_event_counts (kullanıcı × olay × gün) tablosundan okunur, ham olay taraması yapılmaz.
  • Tahminler kısa süre önbelleklenir (dashboard sayacı); kesin kitle gönderim anında hesaplanır ve recipients_estimate olarak döner.
  • Segment koşulu abonelik durumuna bakmaz; gönderimde yalnızca active abonelikler ve kanal/tercih/suppression filtreleri uygulanır.
  • Dashboard Kitle → Segmentler görsel builder, canlı sayım ve kampanya kullanımını gösterir; Kullanıcılar sayfasında aynı builder ile ad-hoc filtre uygulanır.

Bu sayfada