Notification Permission: nedir, bildirim türleri ve çalışma prensibi

Yazar: IT Sectr Yayınlanma: 2026-05-22 Okuma süresi: 8 dk

Notification Permission, bir uygulamanın kullanıcıya push bildirimleri ve yerel bildirimler göndermesi için gereken izindir. Android 13 ve iOS 12’den itibaren, uygulamalar bu izni çalışma zamanında sistem diyaloğu aracılığıyla talep etmek zorundadır. Android Developers, 2024’e göre, kullanıcının açık onayı olmadan uygulama, Android 13 ve üzeri cihazlarda bildirim gösteremez.

Önemli Noktalar

  • Notification Permission, Android 13+ ve iOS 12+’de zorunlu olan, bildirim göndermek için bir çalışma zamanı iznidir.
  • Android 13, Activity Result API aracılığıyla çalışma zamanında talep edilmesi gereken POST_NOTIFICATIONS iznini getirdi.
  • iOS, yerel ve push bildirimlerine erişim talep etmek için UNUserNotificationCenter.requestAuthorization kullanır.
  • İznin reddedilmesi, uygulamanın hem yerel hem de push bildirimleri gösterememesine neden olur.
  • Yeniden talep ilk reddetmeden sonra mümkün değildir — kullanıcının sistem ayarlarına yönlendirilmesi gerekir.

Notification Permission Nedir?

Notification Permission, bir uygulamanın kullanıcıya bildirim gönderme yeteneğini düzenleyen bir sistem iznidir. Android 13’ten önce, tüm uygulamalar talep olmaksızın bildirim gösterebiliyordu — manifestte izni bildirmek yeterliydi. Ancak spam ve rahatsız edici bildirimlerin artmasıyla Google, iOS’a benzer şekilde zorunlu bir çalışma zamanı talebi getirdi.

iOS’ta bildirim izni iOS 8’den beri zorunludur ve iOS 12’den itibaren geçici bildirimler (provisional notifications) ortaya çıktı — sessiz bir şekilde iletilen ve açık bir talep olmadan Bildirim Merkezi’nde görüntülenen bildirimler. Geçici bildirimler, geliştiricinin tam izin talep etmeden önce kullanıcıya bildirimlerin değerini göstermesine olanak tanır.

Localytics (2024)’e göre, iOS kullanıcılarının %61’i ve Android kullanıcılarının %55’i bir talep sonrasında push bildirimleri almayı kabul etmektedir. Onay dönüşümü doğrudan talebin bağlamına bağlıdır: ilk değerli etkileşimden sonra izin isteyen uygulamalar, ilk başlatmada isteyenlere göre %40 daha fazla onay alır.

Bildirim İzinlerinin Evrimi

Bildirim izinlerinin evrimi, platformların uygulamaların bu iletişim kanalına erişimini kademeli olarak nasıl kısıtladığını gösterir. Bu evrimi anlamak, geliştiricinin farklı işletim sistemi sürümlerini doğru şekilde ele almasına yardımcı olur.

Android: özgür erişimden sıkı kontrole

Android 13’ten (2022) önce, herhangi bir uygulama kullanıcının onayı olmadan bildirim gösterebiliyordu. Android 8.0 (2017) bildirim kanallarını getirdi, Android 12 (2021) rahatsız edici bildirimlerin otomatik olarak engellenmesini ekledi ve son olarak Android 13, çalışma zamanında POST_NOTIFICATIONS talep etmeyi zorunlu hale getirdi. targetSdkVersion’ı 33’ün altında olan uygulamalar için sistem izni otomatik olarak verir, ancak Google Play, Ağustos 2023’ten itibaren targetSdkVersion’ın 33+’e güncellenmesini gerektirmektedir.

iOS: kademeli kontrol güçlendirmesi

iOS 8 (2014), UIUserNotificationSettings aracılığıyla zorunlu izin talebini getirdi. iOS 10 (2016), zengin bildirimleri destekleyen UNUserNotificationCenter’ı tanıttı. iOS 12 (2018), geçici bildirimler ve gruplandırılmış bildirimler ekledi. iOS 15 (2021), uygulama izninden bağımsız olarak bildirimleri engelleyebilen Odak Modu’nu getirdi. App Tracking Transparency (iOS 14.5) bildirimlerle ilgili değildir, ancak genel izin talebi kültürünü de etkilemiştir.

Mevcut durum

Şu anda her iki platform da çalışma zamanında Notification Permission talebi gerektirmektedir. Geliştirici artık bildirimlerin otomatik olarak etkinleştirilmesine güvenemez. Kullanıcı, hangi uygulamaların kendisini bilgilendirebileceği konusunda tam kontrole sahiptir. Android’deki bildirim kanalları ve iOS’taki bildirim kategorileri, kullanıcının aldığı uyarı türlerini ince ayarlamasına olanak tanır.

Android’de Notification Permission

Android’de Notification Permission, manifestte bildirilen POST_NOTIFICATIONS izni aracılığıyla etkinleştirilir ve ardından Android 13+ için çalışma zamanı talebi gelir.

Manifestte bildirme

Android 13+ için AndroidManifest.xml’de POST_NOTIFICATIONS iznini bildirmek gerekir. Android 12 ve altıyla geriye dönük uyumluluk için izin sistem tarafından otomatik olarak verilir — ek bir işlem gerekmez.

xml
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

Kotlin’de çalışma zamanı talebi

POST_NOTIFICATIONS izin talebi Activity Result API aracılığıyla gerçekleştirilir. SDK sürümünü kontrol etmek önemlidir: Android 12 ve altında hiçbir talep gerekmez — iznin otomatik olarak verildiği kabul edilir.

kotlin
private val notificationPermissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        createNotificationChannel()
        showPushNotification()
    } else {
        logPermissionDenied()
    }
}

fun requestNotificationAccess() {
    if (Build.version.SDK_INT <= Build.VERSION_CODES.S_V2) {
        // Android 12 ve altı — izin otomatik olarak verildi
        showNotification()
        return
    }
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
        showNotification()
    } else {
        notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
    }
}

Bildirim kanalları oluşturma

Android 8.0+’da uygulama, ilk bildirimi göndermeden önce NotificationChannel aracılığıyla bir bildirim kanalı oluşturmalıdır. Kanalın IMPORTANCE_NONE’dan IMPORTANCE_HIGH’a kadar bir önem düzeyi vardır ve bu, bildirimin ses ve banner ile gösterilip gösterilmeyeceğini belirler. Kullanıcı uygulama için bildirimleri devre dışı bıraktıysa, ayarlarda yeniden etkinleştirilene kadar yeni kanallar etkili olmaz. Farklı uyarı türleri için ayrı kanallar oluşturulması önerilir: mesajlar, reklamlar, sistem olayları.

kotlin
private fun createNotificationChannel() {
    val channel = NotificationChannel(
        CHANNEL_ID_MESSAGES,
        "Mesajlar",
        NotificationManager.IMPORTANCE_HIGH
    ).apply {
        description = "Yeni mesaj bildirimleri"
        enableVibration = true
    }
    val manager = getSystemService(NotificationManager::class.java)
    manager.createNotificationChannel(channel)
}

iOS’ta Notification Permission

iOS’ta Notification Permission UNUserNotificationCenter aracılığıyla talep edilir. Apple iki adımlı bir yaklaşım önerir: önce geçici bildirimleri talep edin, ardından değeri gösterdikten sonra tam izni talep edin.

Geçici seçenekle Swift’te talep

Geçici bildirimler, Bildirim Merkezi’nde ses veya banner olmadan görünen sessiz bildirimlerdir. Kullanıcının açık onayını gerektirmezler ve uygulamanın tam talepten önce bildirimlerin değerini göstermesine olanak tanırlar. Birkaç geçici bildirim aldıktan sonra kullanıcı, bildirimin kendi içindeki menü aracılığıyla tam bildirimleri etkinleştirebilir.

swift
import UserNotifications

func requestNotificationPermission() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
        if let error = error {
            print("Notification error: \(error.localizedDescription)")
            return
        }
        if granted {
            registerForRemoteNotifications()
        } else {
            handleDeniedPermission()
        }
    }
}

func requestProvisionalOnly() {
    let center = UNUserNotificationCenter.current()
    center.requestAuthorization(options: [.provisional, .alert, .badge, .sound]) { granted, error in
        // Geçici — kullanıcı diyaloğu görmez
        // Bildirimler Bildirim Merkezi’ne sessizce gelir
        registerForRemoteNotifications()
    }
}

Durum ve sistem ayarlarını kontrol etme

iOS’ta geçerli Notification Permission durumu UNUserNotificationCenter.current().getNotificationSettings aracılığıyla alınabilir. .authorized, .denied, .provisional veya .notDetermined durumu, uygulamanın doğru davranışı seçmesine olanak tanır. İlk reddetmeden sonra sistem diyaloğu tekrar gösterilmez — kullanıcının UIApplication.openSettingsURLString aracılığıyla Ayarlar’a yönlendirilmesi gerekir. Apple ayrıca belirli senaryolar için geçici bildirimler sağlayan .ephemeral durumunun (iOS 17+) işlenmesini önerir.

Bildirim Talep Etmek İçin En İyi Uygulamalar

En iyi uygulamalar, Notification Permission talep ederken onay dönüşümünü artırmayı ve kullanıcı kaybını azaltmayı hedefler. Yanlış bir talep, yalnızca uygulamanın bildirim gönderme yeteneğini kaybetmesine neden olmakla kalmaz, aynı zamanda uygulamanın kaldırılmasına da yol açabilir.

İlk başlatmada talep etmeyin

En yaygın anti-desen, uygulamanın ilk başlatılmasında Notification Permission talep etmektir. Kullanıcı henüz uygulamanın değerini anlamamıştır ve reddetme olasılığı çok yüksektir. En uygun an, kullanıcının ilk değerli eylemini gerçekleştirdikten sonradır: sipariş verme, mesaj gönderme, güncellemelere abone olma. Bir değer sonrası istem, onay dönüşümünü %65-75’e yükseltir.

Ön izin ekranı kullanın

Sistem diyaloğundan önce, kullanıcının alacağı bildirim örnekleriyle kendi ekranınızı gösterin. Metin ve simge içeren bir gelecek bildirim maketi gösterin. Kullanıcı bildirimlerin faydalı ve rahatsız edici olmayacağını görürse, kabul etme olasılığı daha yüksektir. Ön izin ekranındaki bir bildirim önizlemesi, dönüşümü %35-50 oranında artıran etkili bir tekniktir.

iOS’ta geçici bildirimler kullanın

iOS’ta proaktif olarak Geçici Bildirimler talep etmek, kullanıcının açık onayı olmadan bildirim göndermeye olanak tanır. Kullanıcı bu bildirimlerde değer görürse, bildirimin bağlam menüsü aracılığıyla tam bildirimleri etkinleştirebilir. Apple, bildirimlerin işlemsel olmaktan ziyade bilgilendirici olduğu haber uygulamaları, hava durumu uygulamaları ve diğer hizmetler için bu yaklaşımı önerir. Apple WWDC 2024’e göre bu yaklaşım, tam onay dönüşümünü %20-30 artırır.

Sıkça Sorulan Sorular

Kullanıcı Notification Permission‑ı reddederse ne yapmalı?

Reddetmeden sonra sistem diyaloğu tekrar gösterilmez. Bildirimleri etkinleştirmenin tek yolu, Android’de Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) veya iOS’ta UIApplication.openSettingsURLString aracılığıyla kullanıcıyı sistem ayarlarına yönlendirmektir. Talimatlar ve devam etmek için bir düğme içeren bir ekran gösterin.

Android 12 ve altında Notification Permission nasıl çalışır?

Android 12 ve altında Notification Permission gerekmez — tüm uygulamalar talep olmadan bildirim gönderebilir. Ancak kullanıcı, sistem ayarları aracılığıyla istediği zaman bildirimleri devre dışı bırakabilir. Android 13’ten itibaren, targetSdkVersion 33+ için çalışma zamanı talebi zorunludur.

Android’de bildirim kanalları nedir?

NotificationChannel, Android 8.0’da tanıtılan bir bildirim kategorisidir. Her kanalın bir adı, açıklaması, önem düzeyi ve grubu vardır. Kullanıcı, uygulamanın tüm bildirimlerini devre dışı bırakmadan tek tek kanalları devre dışı bırakabilir. Örneğin, “Yeni Mesajlar” kanalı ve “Promosyon E-postaları” kanalı farklı şekilde yapılandırılabilir.

Notification Permission olmadan bildirim gönderilebilir mi?

Android 13+’da POST_NOTIFICATIONS olmadan NotificationManager.notify çağrısı sistem tarafından yok sayılır. iOS’ta UNUserNotificationCenter izni olmadan bildirimler iletilmez. İstisna: iOS’ta Provisional (ses yok, yalnızca Bildirim Merkezi) ve Android 12- (izin gerekmez).

Uygulama için bildirimlerin etkin olup olmadığı nasıl kontrol edilir?

Android’de NotificationManagerCompat.areNotificationsEnabled() kullanın. iOS’ta UNUserNotificationCenter.current().getNotificationSettings’i çağırın ve authorizationStatus özelliğini kontrol edin. Android için ek olarak kanal önemini kontrol edin: NotificationChannel.getImportance() IMPORTANCE_NONE olmamalıdır.

Özet

  • Notification Permission, Android 13+ ve iOS 12+’de bildirim göndermek için zorunlu bir çalışma zamanı iznidir.
  • Android 13, çalışma zamanı talebiyle POST_NOTIFICATIONS‑ı getirdi; Android 12 ve altında izin otomatiktir.
  • iOS, onay olmadan sessiz teslimat için geçici bildirimleri destekleyen UNUserNotificationCenter‑ı kullanır.
  • Değer sonrası istem — kullanıcının ilk değerli eyleminden sonra talep etmek, onay dönüşümünü %75’e yükseltir.
  • Ön izin ekranı bir bildirim örneğiyle sektör araştırmalarına göre dönüşümü %35-50 artırır.
  • Geçici bildirimler iOS’ta tam izin talep etmeden önce bildirimlerin değerini göstermeye olanak tanır.
  • Bildirim kanalları Android’de kullanıcıya aldığı bildirim türleri üzerinde ayrıntılı kontrol sağlar.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun