Bildirim İzni Açık Olduğu Hâlde Bildirim Gelmiyor

Telefon arızaları, çözüm rehberleri, teknik destek ve güncel bilgiler. Sorununuzu paylaşın, uzman topluluktan adım adım çözüm alın.

CoralCrescendo

Kayıtlı Kullanıcı
Puan 0
Çözümler 0
Katılım
26 Tem 2026
Mesajlar
533
Tepkime puanı
0
CoralCrescendo
Günümüz dijital iletişim ortamında, kullanıcı deneyimini artırmak için push bildirimleri kritik bir rol oynar. Ancak, bildirim izni verildiğinde bile bildirimlerin görünmemesi, kullanıcı güvenini sarsar ve uygulama performansını olumsuz etkiler. Bu durum, teknik yapılandırmalardan kullanıcı tercihine, tarayıcı uyumluluğundan hizmet sağlayıcılarının altyapısına kadar birçok faktörün bir araya gelmesiyle ortaya çıkar. Bildirimlerinizin neden gelmediğini anlamak, sorunu çözmek için ilk adımdır.

Temel Kavramlar ve Tanım​

Push bildirimleri, bir web sitesinin veya uygulamanın, kullanıcının izniyle gerçek zamanlı olarak mesaj göndermesine olanak tanır. Bu mesajlar, tarayıcı penceresinde veya mobil cihazın sistem çubuğunda görünür. İzin mekanizması, kullanıcıların bildirim almayı kabul edip etmediklerini belirler; izin verildiğinde, sunucu push servisleri (Web Push API, Firebase Cloud Messaging, Apple Push Notification Service) ile cihaz arasında bir kanal kurulur. Bildirimlerin gelmemesi, bu kanalın açığa çıkması, sunucu tarafındaki gönderme hataları veya istemci tarafındaki engeller nedeniyle meydana gelebilir.

İzinlerin açılması, yalnızca gönderim için gerekli olan en temel adımdır. Gerçek gönderim, üç ana bileşenle gerçekleşir:
1. İstemci Tarafı – Tarayıcı veya uygulama, izin verildiğinde bir “subscription” nesnesi oluşturur ve bu nesneyi sunucuya gönderir.
2. Sunucu Tarafı – Sunucu, subscription bilgilerini depolar ve hedefe yönelik bildirimleri oluşturur.
3. Push Aracı – Web Push API, FCM veya APNs gibi servisler, sunucu mesajını alır ve cihazın bildirime dönüştürmesini sağlar.

Her bir bileşen hatalı çalışırsa, bildirim görünmez.

İzin Sonrası Bildirim Yolculuğu​

İzin verildiği anda, tarayıcı bir “endpoint” URL’i ile birlikte “p256dh” ve “auth” anahtarlarını sunucuya gönderir. Sunucu bu bilgileri güvenli bir şekilde saklar ve bildirim göndermeye hazırdır. Bildirim gönderildiğinde, push aracına bir HTTP POST isteği yapılır. Push aracı, isteği alır, şifreli mesajı çözer ve cihazın işletim sistemine iletir. İşletim sistemi, bildirim penceresini oluşturur.

Bu yolculuk sırasında oluşabilecek hatalar:
- Yanlış endpoint – Tarayıcı güncel endpoint’i sunucuya göndermezse, push aracı mesajı iletemez.
- Şifreleme hatası – İstemci tarafında p256dh algoritması uyumsuzsa, mesaj çözülemez.
- Sunucu hatası – 500 hatalı yanıt, mesajın iletilmesini engeller.
- Tarayıcı engelleme – AdBlocker, güvenlik duvarı veya gizlilik uzantıları, push isteklerini engelleyebilir.

Tarayıcı Destek ve Uyum​

Chrome, Firefox, Edge ve Safari gibi modern tarayıcılar push bildirimlerini destekler, ancak sürüm farkları ve politika güncellemeleri farklı davranışlara yol açar. Örneğin, Safari’de “Allow” seçeneği verilse bile, “Show notifications” seçeneği kapalıysa bildirimler görünmez. Chrome’da ise “Sites can ask for permission” ayarı kapalıysa, izin veremezsiniz.

Tarayıcı güncellemeleri, Web Push API’sinde yeni şifreleme standartlarını zorunlu kılar. IE ve Edge 18 sürümünden önceki sürümler, eski algoritmaları desteklemediği için bildirim almaz. Bu nedenle, kullanıcıların tarayıcı güncel tutması şarttır.

Sunucu Tarafı Yapılandırması​

Sunucu, bildirim gönderirken HTTP/2 ve TLS 1.2 veya üstü kullanmalıdır. Ayrıca, push aracına gönderilen başlıklar (TTL, urgency) doğru ayarlanmalıdır. TTL 0 ise mesaj anında iletilir; TTL yüksekse, mesajı cihaz bekleyecektir. Yanlış TTL, mesajın zamanında gelmemesine sebep olabilir.

Sunucu tarafında kullanılan kütüphanelerde, CORS politikaları doğru yapılandırılmalı. Örneğin, “Access-Control-Allow-Origin” başlığı “*” olarak ayarlanırsa, tarayıcı güvenlik hatası verir.

İstemci Tarafı Güncellemeleri​

İstemci tarafında, service worker’ın doğru kayıt edilmesi gerekir. Service worker, “push” etkinliğini dinlemeli ve “displayNotification” fonksiyonunu çağırmalıdır. Service worker’ın güncel olmaması, bildirimlerin UI tarafında görünmemesine yol açar.

Ayrıca, “pushsubscriptionchange” olayının yakalanması, aboneliğin güncellenmesini sağlar. Bu olay, tarayıcı güncellemeleri sırasında subscription değiştiğinde tetiklenir.

Algoritma Uyumluluğu ve Şifreleme​

Web Push API, VAPID (Voluntary Application Server Identification) ile kimlik doğrulama yapar. VAPID anahtarları, JSON Web Token (JWT) ile imzalanır. Sunucu tarafında VAPID anahtarları doğru şekilde oluşturulmalı ve push aracına gönderilen “Authorization” başlığına eklenmelidir.

Algoritma uyumsuzluğu, özellikle eski tarayıcılarda görülür. Örneğin, “ECDH” yerine “RSA-OAEP” kullanıldığında, mesaj çözülemez.

Güvenlik Duvarı ve Genişletmeler​

Çoğu güvenlik duvarı, push isteklerini şüpheli olarak işaret eder ve engeller. Aynı şekilde, reklam engelleyici uzantılar ("AdBlock Plus", "uBlock Origin") push isteklerini kısmen engelleyebilir; bu durum, özellikle mobil cihazda sıkça görülür. Kullanıcıya, uzantıları geçici olarak devre dışı bırakması veya tarayıcı ayarlarında push bildirimlerine izin vermesi önerilir.

Uzman Önerileri ve İpuçları​

1. İzin Onayını Doğrudan Kontrol Edin
İzin verildikten sonra, `navigator.permissions.query({name:"notifications"})` ile izin durumunu kontrol ederek “granted” olduğundan emin olun.

2. Endpoint Güncellemelerini İzleyin
`pushsubscriptionchange` olayını dinleyin ve yeni subscription’ı sunucuya gönderin; eski endpoint’ler geçersizdir.

3. VAPID Anahtarlarını Doğru Oluşturun
`node-vapid` veya `web-push` kütüphanelerini kullanarak 2048 bit RSA anahtarları oluşturun; e-posta alanını “[email protected]” gibi geçerli biçimde ayarlayın.

4. Push Başlıklarını Optimize Edin
TTL değerini 3600 saniye (1 saat) olarak belirleyin ve “urgency” başlığını “normal” olarak ayarlayın; bu, mesajın zamanında iletilmesini sağlar.

5. Service Worker Güncellemelerini Otomatikleştirin
`self.addEventListener("push", …)` içinde `self.registration.showNotification` kullanın; ayrıca `skipWaiting()` ile yeni service worker’ı mutlaka etkinleştirin.

6. Tarayıcı Uyumluluğunu Test Edin
Chrome, Firefox, Safari ve Edge için ayrı test senaryoları oluşturun; `chrome://flags` ve `about:config` ayarlarını kontrol edin.

7. İzin Sorgulama Loglarını Tutun
Kullanıcı izin durum değişikliklerini loglayarak, bildirimlerin neden gelmediğini izleyin; `console.log` yerine sunucu tarafında merkezi loglama sistemi kullanın.

8. İstemci Tarafında Farklı Algoritmalar Deneyin
`ECDH` yerine `RSA-OAEP` kullanarak şifreleme uyumluluğunu test edin; bazı eski cihazlar RSA’yı daha iyi destekler.

9. Güvenlik Duvarı ve Yönlendirici Ayarlarını Kontrol Edin
443 (TLS) portunun açık olduğundan ve push servislerinin IP aralıklarının whitelist’e eklendiğinden emin olun.

10. Kullanıcıya Bildirim Ayarları Hakkında Bilgilendirme Yapın
Uygulama içinde “Bildirim Ayarları” sayfası oluşturun; kullanıcıların bildirimleri kapatıp açmasını, ses seçeneklerini değiştirip değiştirilebileceğini gösterin.

Sıkça Sorulan Sorular​

Bildirim izni verildiğinde bile bildirim gelmiyor, nedir sorunu?​

İzin verildiği halde bildirim gelmiyorsa, tarayıcıda “Do Not Disturb” modu aktif olabilir, push servislerine erişim engellenmiş olabilir veya service worker güncel değil.

Tarayıcı güncellemesi yapmalı mıyım?​

Evet. Web Push API, yeni şifreleme standartlarını ve HTTP/2 desteğini gerektirir; eski tarayıcı sürümleri bu standartları desteklemez ve bildirimler alınmaz.

Sunucu tarafında hangi başlıkları göndermeliyim?​

`TTL` (time-to-live), `urgency` ve `content-encoding` başlıkları önemlidir. TTL 3600, urgency “normal”, content-encoding “aes128gcm” ile gönderim yapın.

Push bildirimleri sadece mobilde mi çalışır?​

Hayır. Modern masaüstü tarayıcılar da push bildirimlerini destekler; ancak masaüstü kullanıcıları genellikle “Bildirimi göster” seçeneğini kapatır.

İzin verildiğinde bildirimler neden sıklıkla “Gizli” olarak görünür?​

Tarayıcı, “Bildirimler gizli” seçeneğiyle bildirimleri sadece bildirim çubuğunda tutar. Kullanıcı, ayarları değiştirerek tam ekran gösterim alabilir.

VAPID anahtarları ne işe yarar?​

VAPID, sunucunun kimliğini doğrular, push servislerine güvenli bir şekilde bağlanmasını sağlar; e-posta alanı, servis sağlayıcının kimlik doğrulamasını kolaylaştırır.

Güvenlik duvarı push isteklerini engelliyorsa ne yapmalı?​

Push servislerinin IP’lerini whitelist’e eklemek veya 443 portunu açık bırakmak gerekir. Ayrıca, CDN üzerinden push istekleri göndermek yardımcı olabilir.

Sonuç​

Bildirim izni verilmesi, push bildirimlerinin yolculuğunun ilk adımıdır; ancak bu izin tek başına yeterli değildir. İstemci, sunucu ve push servisleri arasındaki her adımın doğru yapılandırılması gerekir. Tarayıcı uyumluluğu, VAPID kimlik doğrulaması, service worker güncellemeleri, güvenlik duvarı ayarları ve kullanıcı tercihlerinin bütünleşik bir yönetimi, bildirimlerin sorunsuz görünmesini sağlar. Uzman önerileriyle, bu süreçte karşılaşılabilecek hataları önceden tespit edip, kullanıcı deneyimini maksimize edebilir ve uygulamanızın etkileşim oranını artırabilirsiniz.
 
Geri