Neden yedek yöntem kullanılır?
Bir mesaj belirli bir kanal üzerinden her zaman gönderilemeyebilir veya alınamayabilir. Yaygın nedenler şunlardır:- Kullanıcının o kanalı mevcut değil (örneğin, e-posta adresi veya telefon numarası yok veya push’a abone olmamış)
- Teslimat hataları veya geçersiz token’lar nedeniyle mesaj gönderilemedi
- Kullanıcıların izinleri devre dışı bırakması veya iptal etmesi
- Cihazların çevrimdışı olması veya kısıtlı durumlarda olması (örneğin, iOS Focus Modu)
- Kaldırılan uygulamalar veya süresi dolmuş push token’ları
Yedek strateji genel bakış
1
Birincil mesaj gönder
Mesajı tercih ettiğiniz kanal (örneğin, Push, E-posta veya SMS) üzerinden teslim etmeye çalışın.
2
Teslimat onayı veya etkileşimi bekle
Mesajın başarıyla teslim edilip edilmediğini, tıklanıp tıklanmadığını veya açılıp açılmadığını belirlemek için teslimat verilerini veya olay tabanlı mantığı kullanın. Journeys’de, bu Wait Until node’ları kullanılarak otomatik olarak gerçekleşir.
3
Yedek kanalı tetikle
Mesaj onaylanmış teslimat bildirmediyse veya tıklanmadı/açılmadı ise, aynı mesajı başka bir kullanılabilir kanal (örneğin, E-posta, SMS veya Push) üzerinden gönderin.
Gereksinimler
- External ID
- Kullanıcıların her kanal (e-posta, telefon, push token) için en az bir geçerli aboneliği olmalıdır
Örnek kurulumlar
Seçenek 1: OneSignal Journeys
Kod yazmadan yedek mantığı görsel olarak otomatikleştirmek için OneSignal Journeys’i kullanın.- Sürükle ve bırak arayüzü
- Teslimat onayını destekler (Onaylanmış Teslimat ile)
- Push, Uygulama İçi, E-posta ve SMS’i birleştirir
- API entegrasyonu olmadan yedeği otomatikleştirir
Önerilen kurulum
Evet/hayır dallanması yerine, bir Wait Until node’u kullanın: Mesaj teslim edilene kadar bekleme (onaylanmış teslimat yalnızca push için geçerlidir), tıklanana kadar veya açılana kadar (yalnızca e-posta) yapılandırın.- Belirsiz beklemelerden kaçınmak için bir son kullanma süresi ayarlayın
- Süre dolduktan sonra, yedek mesajı başka bir kanal üzerinden gönderin

Yedek journey örneğini gösterir.
Onaylanmış Teslimat platform başına etkinleştirilmelidir. Bkz. Onaylanmış Teslimat.
Seçenek 2: Özel yedek iş akışı (Gelişmiş)
OneSignal REST API ve View Message API’yi kullanarak bir yedek sistem oluşturabilirsiniz, ancak dikkatli bir uygulama gerektirir.1
Bir kullanıcıya mesaj gönder
Kullanıcının
external_id ve hedef kanalını kullanarak tek bir kullanıcıya bildirim gönderin.json
2
Teslimat durumunu kontrol et
Teslim edilip edilmediğini belirlemek için Mesaj başarısız olduysa veya
notification_id kullanarak View Message API’yi sorgulayın.json
"received": 0 gösteriyorsa, başka bir kanal üzerinden yeniden göndermeye hazırlanın.3
Yedek mesaj gönder
Yeniden göndermeden önce, kullanıcının kaydını alarak (View User API aracılığıyla) kullanılabilir kanallarını kontrol edin.
Ardından mesajı bir sonraki kullanılabilir kanal (E-posta, SMS veya Push) üzerinden tekrar gönderin.
Bu yöntem karmaşıktır ve çoğu kullanım durumu için önerilmez. Mesaj düzeyinde izleme, kullanıcı aramaları ve yedek mantığı manuel olarak yönetmeyi gerektirir.
Seçenek 3: Event Streams
Mesaj olaylarını gerçek zamanlı olarak izlemek için Event Streams’i kullanın. Bu, bir mesaj başarısız olduğunda harici sistemlerin otomatik olarak tepki vermesini sağlar. Yaygın akış:- Push veya e-posta bildirimi gönder
- Event Streams aracılığıyla
notification_failedveyadelivery_failedolaylarını yakala - Kullanıcının başka bir kanal alıp alamayacağını belirleme (kullanılabilir ve kabul edilen aboneliklerini View User API aracılığıyla kontrol ederek)
- Sonraki kullanılabilir kanal üzerinden yedek mesaj gönder
Event Streams gerçek zamanlı teslimat içgörüleri sağlar ancak “gönderilmedi” için bir olay yayınlamaz, çünkü gönderilmeyen mesajların olayı yoktur. Bunu yalnızca hataları, tıklamaları, açılmaları ve abonelik iptallerini ele almak için kullanın.
Seçenek 4: Aboneliği iptal edilmiş kullanıcıları algılama ve segmentlere ayırma
Belirli kanallardan aboneliği iptal eden kullanıcıları etiketleyebilir ve manuel olarak başka bir kanal üzerinden yeniden hedefleyebilirsiniz.1
Aboneliği iptal edilmiş durumu algıla
Push izin değişikliklerini algılamak için SDK gözlemcisini
addPermissionObserver() kullanın.2
Aboneliği iptal edilen kullanıcıları etiketle
İzin iptal edildiğinde, kullanıcıyı etiketleyin (örneğin,
unsubscribed_from_push: true).3
Yedek segmenti hedefle
OneSignal dashboard’unda bir segment oluşturun:
unsubscribed_from_push = true- VE e-posta veya SMS aboneliği var Ardından bu segmenti yedek kampanyanızla hedefleyin.
Bu manuel bir seçenektir ve otomasyon için ideal değildir, ancak periyodik yedek kampanyalar için çalışır.
En iyi uygulamalar
- Yedek kanalı mesaj önceliğine göre seçin.
- Acil uyarılar için SMS kullanın (örneğin, güvenlik veya kesinti).
- Acil olmayan güncellemeler için E-posta veya Uygulama İçi kullanın.
- Journeys, yedeği yönetmek için en kolay ve en güvenilir yöntemdir.
- Belirsiz beklemelerden kaçınmak için Wait Until node’larına son kullanma süreleri ekleyin.
- Onaylanmış Teslimat, gerçek teslimat tabanlı yedeği tetiklemek için gereklidir.
- Çok kanallı kopyalardan kaçının ve yedek mesajların teslimat durumuna referans verdiğinden emin olun.
Örnek kullanım durumları
Güvenlik uyarısı
Bir güvenlik uyarısı push’u başarısız olursa, hemen bir SMS uyarısı gönderin.Sipariş teslimat güncellemesi
İzleme bilgisi içeren bir push gönderin. Teslim edilmediyse, aynı güncellemeyi E-posta ile gönderin.Ödeme hatası bildirimi
Push başarısız olursa, kullanıcıyı ödemeyi yeniden denemeye teşvik eden bir SMS gönderin.Etkinlik hatırlatıcısı
E-posta hatırlatıcısı teslim edilmediyse, bunun yerine bir Push bildirimi gönderin.Sistem kesinti uyarısı
Push başarısız olursa, SMS yedeği kullanıcıların gerçek zamanlı olarak bilgilendirilmesini sağlar.Fatura bildirimi
E-posta teslimi başarısız olursa, bir push veya SMS hatırlatıcısı gönderin.Flaş satış bildirimi
Push teslim edilmediyse, promosyon detayları ve alışveriş yapma bağlantısı içeren bir SMS gönderin.Need help?Chat with our Support team or email
support@onesignal.comPlease include:- Details of the issue you’re experiencing and steps to reproduce if available
- Your OneSignal App ID
- The External ID or Subscription ID if applicable
- The URL to the message you tested in the OneSignal Dashboard if applicable
- Any relevant logs or error messages