Ana içeriğe geç

Teslimat kuralları

Aboneleri çok fazla ya da kötü zamanlı push'tan koruyan uygulama geneli kurallar. Panel › Teslimat kuralları'nda yapılandırılır ve uygulamada şöyle saklanır:

{
"frequencyCap": { "max": 3, "windowHours": 24 },
"quietHours": { "start": "22:00", "end": "08:00", "behavior": "delay" },
"defaultTimezone": "Europe/Istanbul"
}

Nerede çalışır

Worker'da, her push için, gönderilmek üzereyken. Fan-out'ta değil. Yani:

  • 21:59'da fan-out edilip push'ları worker'a 22:00'de ulaşan kampanya sessiz saatlere uyar.
  • Kampanya uçuştayken değiştirdiğiniz kural, kuyrukta kalan push'lara uygulanır.
  • Frekans sınırı her kampanya ve transactional gönderim boyunca, gönderim sırasına göre sayılır.

Frekans sınırı

Kayan windowHours penceresinde kullanıcı başına max push; kullanıcının tüm cihazları birlikte sayılır.

Uygulama: Redis sayacı fc:<appId>:<userId>INCR, ilk vuruşta EXPIRE. max'ı aşacak push gönderilmez; worker meta.reason = "frequency_cap" ile skipped olayı yazar, stats.skipped'ı artırır ve webhook'lara notification.skipped atar.

İki cihaz, bir kullanıcı, sınır 3/24s: herhangi bir cihaza üç push'tan sonra pencere dönene kadar ikisi de sessizdir.

Sessiz saatler

Abonenin saat diliminde → uygulamanın defaultTimezone'unda → UTC'de değerlendirilen yerel bir pencere. start > end gece yarısını aşar.

behaviorEtki
delayPush, pencere (o kullanıcının diliminde) bitene kadar gecikmeyle yeniden kuyruğa alınır. İşte bir deferrals sayacı gider; 3 ertelemeden sonra atlanır — kötü bir saat diliminde takılı cihaz sonsuza dek iş biriktirmemeli.
skipDüşürülür; meta.reason = "quiet_hours" ile skipped olayı.

Ertelenen push'lar atlanma değildir: sonra sent olarak görünür ve saatlik grafik sabah tümseğini gösterir.

Atlama

Kampanya ya da transactional gönderim başına:

{ "bypass": { "frequencyCap": true, "quietHours": true } }

Sihirbazın Gelişmiş bölümünde iki kutu var. Kullanıcının istediği ya da şimdi ihtiyacı olan push'lar için kullanın — 2FA kodu, şifre sıfırlama, "aracınız geldi" — promosyon için asla. Atlayan push'lar sonraki push'lar için frekans sınırına yine sayılır.

Kontrol sırası

Her push işi için worker sırayla değerlendirir:

  1. abonelik hâlâ açık ve geçersiz değil (değilse sessizce düşür),
  2. frekans sınırı (atlanmadıysa),
  3. sessiz saatler (atlanmadıysa),
  4. yerel saat zamanlamasından gelen notBefore zaten işin gecikmesi olarak uygulandı,
  5. kişiselleştir, transport, olay.

Raporlama

Kampanya raporunun Atlanma nedenleri tablosu quiet_hours ve frequency_cap'i sayar. Gönderildi kutusunun alt yazısı toplam kaçının tutulduğunu söyler.