Kampanyalar
Kampanyalar uygulamanın her gönderimini listeler ve yenilerini oluşturan sihirbazı barındırır. API'den gönderilen anlık bildirimler de aynı listede kendi raporlarıyla görünür.

Sütunlar: ad, durum rozeti, Zamanlama, Gönderildi, Açılma. Raporu için satıra tıklayın. Taslak ve zamanlanmış kampanyalarda İptal et düğmesi vardır; başka hiçbiri iptal edilemez, çünkü fan-out başladığında işler zaten kuyruklara dağılmıştır.
| Rozet | Durum | Anlamı |
|---|---|---|
| taslak | draft | Sihirbaz başladı; her şey dolu değil. Devam etmek için açın. |
| zamanlandı | scheduled | Redis'te gecikmeli iş olarak saatini bekliyor. İptal edilebilir. |
| gönderiliyor | sending | Fan-out / push'lar uçuşta. Rapor kendini yeniler. |
| gönderildi | sent | Fan-out bitti; her push denendi. |
| iptal edildi | cancelled | Fan-out'tan önce iptal edildi. |
| başarısız | failed | Fan-out'un kendisi başarısız oldu (örn. kitlede kimlik bilgisi olmayan bir platform). |
| tekrarlayan · aktif | active | Takvimi canlı olan tekrarlayan kampanya. Kendisi asla göndermez; her tetiklenme rapor sayfasında listelenen bir gönderim üretir. |
Sihirbaz
+ Yeni kampanya'ya tıklayın. Dört adım, her biri URL'de (?step=segment|content|preview|schedule), böylece tarayıcının geri düğmesi sihirbazda gezer ve yeniden yüklenen sekme kaldığınız yere düşer.
İlk değişiklik taslak durumunda bir kampanya satırı oluşturur ve kimliğini URL'e koyar (?draft=…). Her adım değişimi kaydeder; yazarken durduktan 1,5 sn sonra kaydeder. Sekmeyi kapatın; listede olacaktır.
1 Kitle

- Ad — kampanyanın adı. İçseldir; kullanıcıya gösterilmez.
- Segment oluşturucu. Bir grup Tümü doğruysa (AND) ya da Herhangi biri (OR)'dur. + Koşul koşul ekler, + Grup iç içe grup açar. Her koşul bir alan, bir operatör ve bir değerdir; DEĞİL tersine çevirir.
- Sunulan alanlar: platform, ülke, dil, saat dilimi, abonelik durumu, Son görülme, Son oturum / Oturum sayısı, Son bildirim açma, Son bildirim, Kayıt tarihi, uygulama / OS sürümü, cihaz modeli, tarayıcı — ve kitlede gerçekten olan her tag anahtarı (
tag: plan,tag: streak…), gerçek değerlerden önerilerle. - + Etkileşim davranışsal koşul ekler: X kampanyası açıldı / butona basıldı / teslim edildi / gönderildi (isteğe bağlı
-30diçinde); DEĞİL "yapmadı"ya çevirir. Yalnızca gönderilmiş kampanyalar sunulur. - Kayıtlı segment… bir kayıtlı segmenti yükler; Segment olarak kaydet mevcut ağacı bir adla saklar. Yüklenmiş segmenti düzenlemek bağı koparır — kampanya kendi kopyasını tutar.
- Tarihler mutlak (
2026-08-01) ya da göreli (-7d,-12h) değer alır. - Sağdaki Eşleşen abone, bildirime açık ve token'ı geçerli cihazların platforma göre canlı sayısıdır. Siz düzenledikçe yeniden sorgular.
- Üretilen DSL saklanacak JSON'u açar — API'nin kabul ettiği segment DSL'in aynısı;
POST /v1/campaignsgövdesine kopyalayabilirsiniz.

Herkesi hedeflemek için oluşturucuyu boş bırakın.
2 İçerik

İçerik dil başınadır. Üstte sekmeler: en ★, tr, + Dil ekle. Yıldızlı olan _default — dili hiçbir sürümle eşleşmeyen abonenin aldığı.
| Alan | Notlar |
|---|---|
| Başlık / Gövde | Başlık (≤ 200) ve gövde (≤ 1000). `{{firstName |
| Görsel URL | Büyük görsel. Android ve web gösterir; iOS Notification Service Extension ile gösterir; iOS kilit ekranında görünmez. |
| Tıklama hedefi | Dokununca açılan derin bağlantı ya da URL. Yer tutucu kullanılabilir. |
| Butonlar | En çok üç aksiyon butonu: id, başlık, isteğe bağlı URL (boşsa bildiriminki). Chrome ikisini, Android üçünü, iOS dördüne kadar gösterir. |
| Bayt ölçer | Web push yükü 4 KB ile sınırlıdır; çubuk seçili dilin şifreli boyutunu gösterir. |
Metnin üstünde bir şerit: Sessiz push (arka plan push'u — hiçbir şey çizilmez, uygulama Veri yükünü alır; web atlanır; metin alanları soluklaşır), Şablondan yükle… ve Şablon olarak kaydet (bkz. Şablonlar).

Metnin altında:
- Veri — push ile giden
dataanahtar/değer çiftleri (SDK'lardamessage.data). Sessiz push için mesajın tamamı budur. - Görünüm — ses (Varsayılan / Sessiz / özel dosya adı), rozet sayısı, grup (iOS
thread-id, Android grup anahtarı), web simge URL'i, iOS kesinti düzeyi (passive / active / time-sensitive / critical), iOS ilgililik puanı, Android kanalı (uygulamanın kanallarından biri). Desteklemeyen platform yok sayar. - Değişkenler — yerleşikler (
{{externalId}},{{country}},{{language}},{{platform}}) ve kitlede görülen her tag anahtarı için çipler. Tıklayınca imlecin olduğu yere eklenir. - A/B testi — içeriği 2–4 varyantlı bir deneye çevirir; bkz. A/B testi.

3 Önizleme

iOS, Android ve tarayıcı için cihaz maketleri, dil başına (Önizleme dili). Metin worker'ın kullandığı yer tutucu fonksiyonunun aynısından (core/personalize.ts) geçer; gördüğünüz, cihazın alacağıyla bayt bayt aynıdır. Örnek değerler yalnızca önizleme için örnek tag değerleri yazmanızı sağlar; gönderimde her abonenin kendi tag'leri kullanılır. Eksik diller ve boş başlıklar devam edemeden burada işaretlenir.
4 Zamanlama

| Seçenek | Davranış |
|---|---|
| Şimdi gönder | Onaylar onaylamaz kuyruğa girer. |
| Belirli tarih ve saat | Sizin (tarayıcı) saat diliminizde yorumlanır, UTC saklanır, Redis'te gecikmeli iş olarak tutulur. |
| Kullanıcının yerel saati | Bir duvar saati girin (19:30). Her abone kendi saat diliminde 19:30'da alır; saat dilimi olmayanlar uygulamanın varsayılanını, o da yoksa UTC'yi kullanır. Fan-out'ta push başına çözülür; saat dilimi başına kampanya kopyası yok. Bkz. Zamanlama. |
| Tekrarlayan | Her gün ya da seçili günlerde, tek bir saat diliminde (tarayıcınızınkiyle başlar), isteğe bağlı bir tarihe kadar. Başlat kampanyayı aktif yapar; her tetiklenme o anda eşleşenlere bir gönderim yollar. Listeden ya da rapor sayfasından durdurulur. Bkz. Tekrarlayan. |

Gelişmiş açılır:

- TTL — cihaz çevrimdışıyken push servisinin ne kadar deneyeceği (varsayılan 3 gün; 1 saatten 4 haftaya hazır değerler).
- Teslimat kuralları — bu kampanya için uygulamanın frekans sınırını ve/veya sessiz saatlerini atlamak için işaretleyin (şifre sıfırlama sabahı beklememeli).
- collapseId — aynı kimlikli yeni push, teslim edilmemiş eskisini değiştirir (
apns-collapse-id, FCMcollapse_key, webtag).
Test gönder mevcut taslağı tek bir externalId'nin — sizinkinin — her cihazına, kampanyanın durumuna ya da sayaçlarına dokunmadan yollar. Test ayrı bir transactional gönderimdir ve listede öyle görünür.
Sağdaki özet kartı her şeyi toparlar. Gönder / Zamanla taslağı katı içerik şemasıyla doğrular (tüm diller tam, URL'ler düzgün), nihai content'i yazar ve kuyruğa atar ya da zamanlar. Bundan sonra taslak düzenlenemez.
Düzenleme ve kopyalama
Taslak gönderilene kadar listeden yeniden açılabilir. Gönderilmiş kampanyalar değişmezdir — raporlarını güvenilir kılan budur. Yeniden göndermek için metni şablon olarak kaydedip ondan yeni kampanya açın ya da DSL'i / metni rapor sayfasından yapıştırın.