> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Yedek mesajlar: Kanallar arasında teslimati sağlama

> Push bildirimleri başarısız olduğunda kritik mesajların e-posta veya SMS ile teslim edilmesini sağlamak için OneSignal ile bir yedek strateji uygulayın. Güvenilir kullanıcı etkileşimi için Journeys, API'ler ve segmentasyon kullanarak çapraz kanal mesajlaşması kurulumunu öğrenin.

## 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ı

OneSignal, **tüm kanallar** arasında yedeği destekler—Push, Uygulama İçi, E-posta ve SMS—böylece orijinal kanaldan bağımsız olarak kritik iletişimlerin kullanıcılara ulaşmasını sağlayabilirsiniz.

***

## Yedek strateji genel bakış

<Steps>
  <Step title="Birincil mesaj gönder">
    Mesajı tercih ettiğiniz kanal (örneğin, Push, E-posta veya SMS) üzerinden teslim etmeye çalışın.
  </Step>

  <Step title="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ı](./journeys-actions#wait-until) kullanılarak otomatik olarak gerçekleşir.
  </Step>

  <Step title="Yedek kanalı tetikle">
    Mesaj [onaylanmış teslimat](./confirmed-delivery) 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.
  </Step>
</Steps>

***

## Gereksinimler

* [External ID](./users#external-id)
* Kullanıcıların her kanal (e-posta, telefon, push token) için en az bir geçerli [aboneliği](./subscriptions) olmalıdır

***

## Örnek kurulumlar

### Seçenek 1: OneSignal Journeys

Kod yazmadan yedek mantığı görsel olarak otomatikleştirmek için [OneSignal Journeys](./journeys-overview)'i kullanın.

* Sürükle ve bırak arayüzü
* Teslimat onayını destekler ([Onaylanmış Teslimat](./confirmed-delivery) 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**](docs/en/journeys-actions#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

<Frame caption="Yedek journey örneğini gösterir.">
  <img src="https://mintcdn.com/onesignal/gdr6jv21nTHUt4_t/images/journeys/fallback-journey.png?fit=max&auto=format&n=gdr6jv21nTHUt4_t&q=85&s=d488ae23cd10df4e5ac9979d477d08a4" width="600" data-path="images/journeys/fallback-journey.png" />
</Frame>

<Note> Onaylanmış Teslimat platform başına etkinleştirilmelidir. Bkz. [Onaylanmış Teslimat](docs/en/confirmed-delivery). </Note>

***

### Seçenek 2: Özel yedek iş akışı (Gelişmiş)

[OneSignal REST API](/reference/create-message) ve [View Message API](/reference/view-message)'yi kullanarak bir yedek sistem oluşturabilirsiniz, ancak dikkatli bir uygulama gerektirir.

<Steps>
  <Step title="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 json theme={null}
    POST https://onesignal.com/api/v1/notifications
    {
      "include_aliases": {
        "external_id": ["user123"]
      },
      "target_channel": "push",
      "contents": { "en": "Your order has shipped!" }
    }
    ```
  </Step>

  <Step title="Teslimat durumunu kontrol et">
    Teslim edilip edilmediğini belirlemek için `notification_id` kullanarak [View Message API](/reference/view-message)'yi sorgulayın.

    ```json json theme={null}
    GET https://onesignal.com/api/v1/notifications/{notification_id}
    ```

    Mesaj başarısız olduysa veya `"received": 0` gösteriyorsa, başka bir kanal üzerinden yeniden göndermeye hazırlanın.
  </Step>

  <Step title="Yedek mesaj gönder">
    Yeniden göndermeden önce, kullanıcının kaydını alarak ([View User API](/reference/view-user) 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.
  </Step>
</Steps>

<Warning>
  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.
</Warning>

***

### Seçenek 3: Event Streams

Mesaj olaylarını gerçek zamanlı olarak izlemek için [Event Streams](./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ış:

1. Push veya e-posta bildirimi gönder
2. Event Streams aracılığıyla `notification_failed` veya `delivery_failed` olaylarını yakala
3. Kullanıcının başka bir kanal alıp alamayacağını belirleme (kullanılabilir ve kabul edilen aboneliklerini [View User API](/reference/view-user) aracılığıyla kontrol ederek)
4. 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.

<Steps>
  <Step title="Aboneliği iptal edilmiş durumu algıla">
    Push izin değişikliklerini algılamak için SDK gözlemcisini [`addPermissionObserver()`](./mobile-sdk-reference#addpermissionobserver-push) kullanın.
  </Step>

  <Step title="Aboneliği iptal edilen kullanıcıları etiketle">
    İzin iptal edildiğinde, kullanıcıyı etiketleyin (örneğin, `unsubscribed_from_push: true`).
  </Step>

  <Step title="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.
  </Step>
</Steps>

> 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.

<Info>
  Need help?

  Chat with our Support team or email `support@onesignal.com`

  Please 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](/docs/en/capturing-a-debug-log)

  We're happy to help!
</Info>

***
