Segmentler API
POST /v1/segments/preview
Sunucu anahtarı, kapsam subscriptions:read.
{ "segment": { "and": [ { "field": "tags.plan", "op": "in", "value": ["premium", "platinum"] }, { "field": "lastActiveAt", "op": "gt", "value": "-14d" } ] } }
Herkesi saymak için segment'i atlayın (ya da {} gönderin).
Yanıt
{ "count": 661, "byPlatform": { "ios": 275, "android": 264, "web": 122 } }
Yalnızca anahtarın uygulamasındaki bildirime açık, geçersiz olmayan abonelikleri sayar — fan-out'un kullandığı temel filtrenin aynısı; sayı, bu segmentli bir kampanyanın kuyruğa alacağıdır.
Hatalar: bozuk istek için 422 invalid_body; DSL derlenmediğinde (bilinmeyen operatör, skaler gereken yerde nesne, $ ile başlayan alan) hatalı düğümün yoluyla 422 invalid_segment.
DSL'in kendisi — alanlar, operatörler, göreli tarihler, iç içelik — Özellikler › Segmentler'de belgelidir.
Kayıtlı segmentler
Sunucu anahtarı. Listeleme, okuma ve sayım subscriptions:read; oluşturma, değiştirme ve silme campaigns:write. Bkz. Özellikler › Segmentler.
GET /v1/segments
{ "segments": [ { "id": "66f2…", "name": "turkey-premium", "description": null, "definition": { … }, "lastCount": 512, "lastCountedAt": "…", "createdAt": "…", "updatedAt": "…" } ] }
POST /v1/segments
{ "name": "turkey-premium", "description": "Premium plan, TR", "definition": { "and": [ … ] } }
Segmentle 201; 409 duplicate_name; tanım doğrulanmazsa 422 invalid_body.
GET /v1/segments/:id · PUT /v1/segments/:id · DELETE /v1/segments/:id
PUT ad, açıklama ve tanımı değiştirir, saklanan sayımı siler. DELETE 204 döner; gönderilmiş kampanyalar kopyaladıkları tanımı korur, hâlâ id'ye işaret eden taslaklar gönderimde 404 alır.
POST /v1/segments/:id/count
Ulaşılabilir cihazları şimdi sayar (önizlemeyle aynı temel filtre), sayıyı lastCount olarak saklar ve { "count", "byPlatform" } döner. Saklanan tanım artık derlenmiyorsa 422 invalid_segment.
Hedefleme
POST /v1/notifications target.segmentId alır; POST /v1/campaigns segmentId alır (segment ile birlikte değil). Tanım kampanya gönderilirken kopyalanır.