Mobil uygulamalarda bildirim (push) nasıl çalışır, nelere dikkat etmeli?
Bildirimler kullanıcıyı uygulamaya geri getirmenin en etkili yolu, ama yanlış kullanıldığında uygulamanın silinme sebebi de olabiliyor. Önce işin teknik tarafına, sonra iyi kullanım kurallarına bakalım.
Arka planda ne oluyor?
Uygulaman bildirimi doğrudan telefona göndermez; arada işletim sisteminin bildirim servisi vardır:
- Android: Firebase Cloud Messaging (FCM)
- iOS: Apple Push Notification service (APNs)
Akış şöyle:
- Uygulama açıldığında servisten bir cihaz jetonu (token) alır.
- Bu jetonu kendi sunucuna gönderip kullanıcıyla eşleştirirsin.
- Bildirim göndermek istediğinde sunucun, jetonla birlikte FCM'e veya APNs'e istek atar.
- Servis bildirimi cihaza ulaştırır.
FCM, iOS cihazlara da APNs üzerinden gönderebildiği için çoğu proje iki platformda da FCM kullanır. iOS için Apple geliştirici hesabında APNs anahtarı oluşturup Firebase'e eklemen gerekir.
İzin almak
- iOS: Bildirim göstermek için her zaman kullanıcıdan izin istenir.
- Android 13 ve sonrası:
POST_NOTIFICATIONSizni çalışma anında istenir. Daha eski sürümlerde izin varsayılan olarak açıktır.
İzni uygulama ilk açılır açılmaz istemek yerine, kullanıcı bildirimin işe yarayacağı bir an yaşadığında iste. Örneğin "Sipariş durumunu bildirimle takip etmek ister misin?" Reddedilen izni tekrar almak zordur; kullanıcının ayarlara gitmesi gerekir.
Jetonlarla ilgili dikkat edilecekler
- Jeton değişebilir (uygulama yeniden yüklenince, veriler silinince). Uygulama her açıldığında güncel jetonu sunucuya bildir.
- Servis "geçersiz jeton" hatası döndürürse o jetonu veritabanından sil.
- Bir kullanıcının birden fazla cihazı olabilir; jetonları kullanıcıya bire çok bağla.
Bildirim mi, veri mesajı mı?
FCM'de iki tür mesaj var:
- Bildirim mesajı: Sistem doğrudan gösterir. Basit duyurular için yeterli.
- Veri mesajı: Uygulamana gelir, ne yapacağına sen karar verirsin. Arka planda senkronizasyon veya özel görünüm için kullanılır.
İyi kullanım kuralları
- Az ve kişisel gönder. Herkese aynı reklam bildirimini atmak kapatılma oranını artırır.
- Kategorilere ayır. Android'de bildirim kanalları (sipariş, kampanya, mesaj) kullan; kullanıcı sadece istemediğini kapatabilsin.
- Saatine dikkat et. Gece yarısı gelen kampanya bildirimi kimseyi mutlu etmez; kullanıcının saat dilimine göre gönder.
- Tıklayınca doğru yere götür. Bildirim ilgili ekranı açmalı (deep link), ana sayfaya atmamalı.
- Bildirimde hassas bilgi gösterme. Kilit ekranında herkes görebilir.