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

# OSNotification payload

> Tüm payload alanları, Android ve iOS'a özel özellikler, özel veri ve tıklama eylemleri dahil olmak üzere OneSignal'in OSNotification nesnesi için referans.

`OSNotification` sınıfı, OneSignal SDK'larında push bildirim payload'unu temsil eder. Uygulamanızda bildirimleri işlerken bildirim başlığına, gövdesine, özel veriye ve platforma özgü özelliklere erişmek için kullanın.

<Info>
  Push bildirim payload'ları `4096` bayt ile sınırlıdır. Kesmeyi önlemek için payload'ları `3500` bayt altında tutun. `additionalData` alanı `2048` bayt ile sınırlıdır.
</Info>

***

## Uygulamanızda `OSNotification`'a erişim

Tüm OneSignal SDK'ları, bir `OSNotification` nesnesi döndüren bir bildirim olay dinleyicisi sağlar:

* **Android**: [Bildirim yaşam döngüsü dinleyicisini](./mobile-sdk-reference#addforegroundlifecyclelistener-push) kullanın
* **iOS**: [Bildirim yaşam döngüsü dinleyicisini](./mobile-sdk-reference#addforegroundlifecyclelistener-push) veya bir `UNNotificationServiceExtension` kullanın

### Android alanları

| Property                     |           Type          | Description                                                                               |
| ---------------------------- | :---------------------: | ----------------------------------------------------------------------------------------- |
| `getBody()`                  |         `String`        | Bildirimin gövde metni.                                                                   |
| `getTitle()`                 |         `String`        | Bildirimin başlığı.                                                                       |
| `getLaunchURL()`             |         `String`        | Bildirime tıklandığında açılan URL.                                                       |
| `getNotificationId()`        |         `String`        | OneSignal bildirim UUID'si.                                                               |
| `getAdditionalData()`        |       `JSONObject`      | Dashboard veya REST API aracılığıyla ayarlanan özel anahtar-değer verisi. Maks 2048 bayt. |
| `getTemplateId()`            |         `String`        | Şablonlar kullanılarak gönderildiyse, şablon UUID'si.                                     |
| `getAndroidNotificationId()` |          `int`          | Android yerel bildirim ID'si.                                                             |
| `getLargeIcon()`             |         `String`        | Büyük simgenin URL'si veya kaynak adı.                                                    |
| `getSmallIcon()`             |         `String`        | Küçük simge kaynak adı.                                                                   |
| `getSmallIconAccentColor()`  |         `String`        | ARGB formatında simge vurgu rengi.                                                        |
| `getSound()`                 |         `String`        | Çalınan ses kaynak adı.                                                                   |
| `getCollapseId()`            |         `String`        | Bildirim değiştirme için collapse anahtarı.                                               |
| `getPriority()`              |          `int`          | Android önceliği (-2 ile 2 arası).                                                        |
| `getLedColor()`              |         `String`        | ARGB formatında LED rengi.                                                                |
| `getLockScreenVisibility()`  |          `int`          | Kilit ekranı görünürlüğü: `1 = public`, `0 = private`, `-1 = secret`.                     |
| `getFromProjectNumber()`     |         `String`        | Gönderen proje numarası.                                                                  |
| `getGroupedNotifications()`  |  `List<OSNotification>` | Bir özette dahil edilen bildirimler.                                                      |
| `getGroupKey()`              |         `String`        | Özetlerde kullanılan grup anahtarı.                                                       |
| `getGroupMessage()`          |         `String`        | Özet metni.                                                                               |
| `getBackgroundImageLayout()` | `BackgroundImageLayout` | Arka plan resmi düzeni ve metin renkleri için nesne.                                      |
| `getActionButtons()`         |   `List<ActionButton>`  | Simge, metin ve ID içeren eylem düğmeleri.                                                |
| `getRawPayload()`            |         `String`        | Payload'un tam ham JSON dizesi.                                                           |

### iOS alanları

| Property           |      Type      | Description                                                                               |
| ------------------ | :------------: | ----------------------------------------------------------------------------------------- |
| `body`             |   `NSString`   | Bildirimin gövde metni.                                                                   |
| `title`            |   `NSString`   | Bildirimin başlığı.                                                                       |
| `launchURL`        |   `NSString`   | Bildirime tıklandığında açılan URL.                                                       |
| `notificationId`   |   `NSString`   | OneSignal bildirim UUID'si.                                                               |
| `additionalData`   |  `Dictionary`  | Dashboard veya REST API aracılığıyla ayarlanan özel anahtar-değer `data`. Maks 2048 bayt. |
| `templateId`       |   `NSString`   | Şablonlar kullanılarak gönderildiyse, şablon UUID'si.                                     |
| `subtitle`         |   `NSString`   | Alt başlık metni.                                                                         |
| `category`         |   `NSString`   | iOS kategori tanımlayıcısı.                                                               |
| `threadId`         |   `NSString`   | Bildirimleri thread'lere gruplamak için kullanılır (iOS 10+).                             |
| `badge`            |   `NSInteger`  | Mutlak rozet değeri.                                                                      |
| `badgeIncrement`   |   `NSInteger`  | Rozeti artırma miktarı.                                                                   |
| `contentAvailable` |     `BOOL`     | `content-available=1` ise, arka plan fetch'i tetikler.                                    |
| `mutableContent`   |     `BOOL`     | `mutable-content=1` ise, bir Notification Service Extension tetikler.                     |
| `actionButtons`    |    `NSArray`   | iOS eylem düğmeleri.                                                                      |
| `rawPayload`       | `NSDictionary` | Payload'un tam ham JSON'u.                                                                |
| `parseWithApns`    |    *Method*    | Ham APNS payload'unu bir OSNotification'a dönüştürür. Servis uzantılarında kullanın.      |

***

## `OSNotificationAction` (tıklama olayları)

Kullanıcının bildirimle etkileşimini açıklar.

| Property   |   Type   | Description                                                         |
| ---------- | :------: | ------------------------------------------------------------------- |
| `actionId` | `String` | Tıklanan eylem düğmesinin ID'si.                                    |
| `type`     |  `enum`  | `Opened` (varsayılan dokunma) veya `ActionTaken` (düğme dokunması). |

***

## Özel OneSignal payload yapısı

Tüm OneSignal bildirimleri payload'da özel bir `"custom"` nesnesi içerir:

```json theme={null}
{
  "custom": {
    "i": "the-notification-id"
  }
}
```

<Info>
  Bu anahtar, OneSignal SDK'larının bildirimi işlemesi için gereklidir. Eksikse, bildirimler tıklama olaylarını veya analitikleri tetiklemeyecektir. OneSignal kullanan cihazlara başka bir servisten de push gönderiyorsanız, yinelenen işlemeyi önlemek için bu anahtarı filtreleyebilirsiniz. Ayrıntılar için [Push payload handling](./migrating-to-onesignal#push-payload-handling) sayfasına bakın.
</Info>

***

## additionalData'yı APNS root'a taşı

iOS uygulamaları için, `additionalData` alanlarını `custom` sözlüğünün içine yerleştirmek yerine APNS payload'unun root'unda kullanılabilir hale getirebilirsiniz. Bu, özel bildirim işleyicilerinde erişimi kolaylaştırır.

**1. API aracılığıyla etkinleştirin**

[Update an app API](/reference/update-an-app)'yi kullanın ve şunu ayarlayın:

```json theme={null}
{
  "additional_data_is_root_payload": true
}
```

**2. `data` ile push gönderin**

`data` alanları APNS root payload'unda görünür:

```json theme={null}
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
```

Artık `custom` sözlüğünü kontrol etmeden `promo_code`'a doğrudan erişebilirsiniz.

***

## Geri yüklenen bildirimler (Android)

Android SDK, cihaz yeniden başlatıldıktan veya uygulama yeniden başlatıldıktan sonra bildirimleri geri yükler.

| Property    |    Type   | Description                                                                   |
| ----------- | :-------: | ----------------------------------------------------------------------------- |
| `restoring` | `boolean` | Bildirim cihaz/uygulama yeniden başlatmasından sonra geri yüklendiyse `true`. |

<Tip>
  Geri yüklenen bildirimleri atlamak için `restoring` bayrağını kontrol edin. Eski bildirimlerin tamamen geri yüklenmesini önlemek için, gönderirken kısa veya `0` TTL (time-to-live) ayarlayın.
</Tip>

***

## Push token formatları

* **iOS Push (APNS)**: 64 karakter, yalnızca onaltılık (0-9, a-f). `deviceToken.map {String(format: "%02x", $0)}.joined()`
* **Android Push (FCM)**: Genellikle 163 karakter, alfanümerik; tire, iki nokta üst üste ve alt çizgi içerebilir.

***

## SSS

### Maksimum payload boyutu nedir?

Push bildirim payload'ları toplam 4096 bayt ile sınırlıdır. `additionalData` alanı 2048 bayt ile sınırlıdır. Kesmeyi önlemek için toplam payload'unuzu 3500 bayt altında tutun.

### Ham payload'da OneSignal bildirimini nasıl tanımlayabilirim?

Tüm OneSignal bildirimleri, bildirim ID'sini içeren `"i"` anahtarına sahip bir `"custom"` nesnesi içerir. OneSignal bildirimlerini diğer sağlayıcılar tarafından gönderilenlerden ayırt etmek için bu anahtarı kontrol edin.

### additionalData'ya APNS root payload'unda erişebilir miyim?

Evet. `additionalData` alanlarını `custom` sözlüğünün içi yerine APNS root'una yerleştirmek için [Update an app API](/reference/update-an-app) aracılığıyla `additional_data_is_root_payload`'u etkinleştirin. Ayrıntılar için [additionalData'yı APNS root'a taşı](#move-additionaldata-to-apns-root) bölümüne bakın.

***

<Columns cols={3}>
  <Card title="Android bildirim kategorileri" icon="android" href="./android-notification-categories">
    Android 8.0+ cihazlar için bildirim kanallarını yapılandırın.
  </Card>

  <Card title="Mobil Service Extensions" icon="puzzle-piece" href="./service-extensions">
    Zengin medya, rozetler ve onaylı teslimat takibi ekleyin.
  </Card>

  <Card title="Mobil SDK referansı" icon="code" href="./mobile-sdk-reference">
    OneSignal'in mobil SDK yöntemleri ve dinleyicileri için tam referans.
  </Card>
</Columns>
