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

# Veri ve arka plan bildirimleri

> iOS ve Android'de görünür bir mesaj görüntülemeden verileri senkronize etmek veya arka plan görevlerini tetiklemek için sessiz push bildirimleri gönderin.

## Sessiz bildirimler nedir?

Sessiz bildirimler, görünür bir mesaj göstermeden veya ses çalmadan uygulamanızı uyandırmanıza ve arka plan görevlerini (senkronizasyon veya veri yenileme gibi) gerçekleştirmenize olanak tanır.

iOS'ta bunlara **Arka Plan Bildirimleri** denir ve Android'de **Veri Bildirimleri** olarak bilinir. Birlikte, genellikle sessiz push olarak anılırlar ve normal, görünür bildirimlerden farklı davranırlar.

### Sınırlamalar

* **Uygulamalar sessiz push alamaz** eğer:
  * **iOS**: Kullanıcı tarafından uygulama kapatılmışsa, örneğin uygulama değiştiriciden kaydırılarak silindiğinde. ([Apple desteği](https://support.apple.com/en-us/HT201330)'ne bakın).
  * **Android**: Uygulama cihaz ayarları üzerinden zorla kapatılmışsa veya bazı üreticiler tarafından kaydırıldığında otomatik olarak kapatılmışsa. ([Daha fazla ayrıntı burada](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped)).
* **Teslimat garanti edilmez**:
  * Hem Apple hem de Google sessiz bildirimleri *en iyi çaba* olarak ele alır. iOS, Düşük Güç Modu altında, Arka Planda Uygulama Yenileme kapalıyken veya kullanıcı uygulamayı kapatmışsa teslimatı geciktirebilir veya iptal edebilir. Android, Doze veya OEM güç tasarrufu kuralları altında teslimatı azaltabilir veya toplu işleyebilir.
  * Bu nedenle, **sessiz bildirimler asla kritik güncellemeler için kullanılmamalıdır**.
* **Yalnızca abone olan kullanıcılar**: OneSignal SDK yalnızca abone olan [Aboneliklere](./subscriptions) veri bildirimleri gönderir. Abone olmayan kullanıcılara ulaşmak için [bu geçici çözümü](https://github.com/OneSignal/OneSignal-iOS-SDK/issues/302) izleyin.
* **Çapraz platform SDK'lar için sınırlı destek**:
  * Sessiz bildirimler yerel kodda (Android için Java/Kotlin, iOS için Swift/Obj-C) işlenmelidir.
  * iOS, [`application:didReceiveRemoteNotification:fetchCompletionHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application) uygulaması gerektirir.
  * Android, bir [Bildirim Hizmeti Uzantısı](./service-extensions) uygulaması gerektirir.

***

## OneSignal'dan sessiz bildirim gönderme

OneSignal'dan sessiz bildirim göndermek için şu adımları izleyin:

<Steps>
  <Step title="Görünür içeriği çıkarın">
    Mesajdan görünür metin veya başlıkları kaldırın. Bunlar şunları içerir:

    * **API**: [Create notification](/reference/create-message) API isteğinizdeki `contents`, `headings`, `subtitle`.
    * **Dashboard**: Message, Title, Subtitle
  </Step>

  <Step title="content_available'ı ayarlayın">
    * **API**: `content_available`'ı `true` olarak ayarlayın.
    * **Dashboard**: "Send to Apple iOS" altındaki **Content available**'ı işaretleyin. Bu tüm platformlar için geçerlidir ve sadece sistemimize hiçbir mesaj gönderilmediğini söyler.
  </Step>

  <Step title="Bildirime veri ekleyin">
    * **API**: `data` parametresini kullanın.
    * **Dashboard**: **Additional Data** alanlarını kullanın.
  </Step>
</Steps>

### Örnek API yükü

```bash theme={null}
curl -X POST https://api.onesignal.com/notifications \
  -H "Authorization: Key YOUR_APP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "YOUR_APP_ID",
    "include_aliases": { "external_id": ["user-123"] },
    "target_channel": "push",
    "content_available": true,
    "data": {
      "action": "sync_data",
      "version": "2"
    }
  }'
```

***

## Platforma özgü kurulum

### iOS arka plan bildirimi kurulumu

Arka plan bildirimlerini işlemek için iOS uygulamanızın Xcode'da **Background Modes > Remote Notifications** özelliğini etkinleştirmiş olması gerekir. [Mobil SDK Kurulumu](./mobile-sdk-setup)'nu izlediyseniz bu genellikle dahil edilir.

Bildirimi işlemek için `AppDelegate` yöntemi [`application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application)'ni uygulayın.

Apple belgeleri:

* [Pushing Background Updates to Your App](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app?language=objc)
* [Generating a Remote Notification](https://developer.apple.com/documentation/usernotifications/generating-a-remote-notification)

<Warning>
  Kullanıcı uygulamayı kapattıysa (uygulama değiştiriciden kaydırılarak silinmişse), iOS bildirimi teslim etmeyecektir.

  Bu durumlarda, görünür bir `contents` mesajı ekleyin ve verileri [`UNNotificationServiceExtension.didReceive`](./service-extensions#ios-notification-service-extension)'de işleyin.
</Warning>

***

### Android veri bildirimi kurulumu

[Bildirim Hizmeti Uzantısı](./service-extensions) kullanarak Android'de veri bildirimlerini işleyin.

Bu şunları sağlar:

* Uygulama zorla kapatılmadığı sürece bildirimleri işleme
* Bildirimlerin nasıl görüntüleneceğini veya gizleneceğini özelleştirme

Android belgeleri:

* [FCM veri mesajları](https://firebase.google.com/docs/cloud-messaging/concept-options#data_messages)
* [Doze ve Uygulama Bekleme için optimize etme](https://developer.android.com/training/monitoring-device-state/doze-standby)

<Warning>
  Uygulama zorla durdurulduysa (cihaz ayarları veya bazı OEM pil optimizasyonu aracılığıyla), Android bildirimi teslim etmeyecektir. [Android zorla durdurma davranışı](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped)'na bakın.
</Warning>

***

## VoIP bildirimleri gönderme

VoIP bildirimleri desteklenir ancak standart OneSignal SDK'larının dışında ek yapılandırma gerektirir. OneSignal, VoIP token'larını otomatik olarak kaydetmez.

<Card title="VoIP Bildirimleri Kurulum Kılavuzu" icon="phone" href="./voip-notifications">
  iOS'ta gerçek zamanlı arama için VoIP push bildirimlerini yapılandırın.
</Card>

***

## SSS

### Sessiz bildirimler kaldırmaları veya abonelik iptallerini tespit etmek için kullanılabilir mi?

Teknik olarak evet, ancak güvenilir değil. Yukarıdaki [Sınırlamalar](#sınırlamalar) bölümünde açıklandığı gibi, sessiz bildirimlerin teslim edilmesi garanti edilmez.

Bunun yerine:

* Tüm kullanıcılarınıza ayda en az bir kez görünür bildirimler (içerikli) gönderin.
* İsteğe bağlı olarak tamamlayıcı bir kontrol olarak sessiz bildirimler gönderin.

Abonelik durumu değişikliklerinin nasıl ele alınacağı hakkında daha fazla bilgi için [Abonelikler](./subscriptions) kılavuzumuza bakın.

### Onaylanmış teslimatlar sessiz bildirimlerle çalışır mı?

Onaylanmış teslimatlar sessiz bildirimlerle çalışmaz.

### Sessiz bildirimleri kaç kullanıcıya ulaşılabildiğini ölçmek için kullanabilir miyim?

Hayır, güvenilir bir şekilde değil. Sessiz bildirimlerin teslimatı garanti edilmez.

1. **Teslimat garanti edilmez** — hem Apple hem de Google sessiz bildirimleri en iyi çaba olarak ele alır ve geciktirebilir veya iptal edebilir. Örneğin, uygulama kapalıysa (zorla çıkılmış) iOS bunları iptal eder ve Android ile iOS bunları güç tasarrufu kuralları altında kısıtlar.

2. **Teslimat onaylanmaz** — onaylanmış teslimatlar sessiz bildirimlerle çalışmaz, bu nedenle hangi kullanıcıların push'u gerçekten aldığını bilmenin yolu yoktur.

Ulaşılabilir kullanıcıları ölçmek için görünür bir bildirim gönderin ve [Analytics](./analytics-overview)'te teslimat metriklerini takip edin.

***

<Columns cols={2}>
  <Card title="Servis uzantıları" icon="puzzle-piece" href="./service-extensions">
    iOS ve Android'de yerel kodda bildirim işlemeyi yönetin.
  </Card>

  <Card title="Abonelikler" icon="address-book" href="./subscriptions">
    Abonelik türlerini ve kullanıcılarla nasıl bağlandıklarını anlayın.
  </Card>

  <Card title="Mesaj Oluşturma API'si" icon="code" href="/reference/create-message">
    Sessiz push'lar dahil olmak üzere bildirimleri programatik olarak gönderin.
  </Card>
</Columns>
