Ana içeriğe atla

Genel Bakış

Bu kılavuz, OneSignal Web SDK kurulumunuzda sorun giderme konusunda size yol gösterir. Devam etmeden önce, tüm adımları tamamladığınızdan emin olmak için Web SDK Kurulumu bölümünü gözden geçirin. Web push’un çalışmıyor gibi göründüğünün en yaygın nedenleri aslında tarayıcınız ve cihazınızın bildirim ayarlarıyla ilgilidir:

Tarayıcı uyumluluğu

Kullanıcılar web izin istemlerini görebilir, ancak gizli, özel veya misafir tarayıcı modlarında anlık bildirimlere abone olamaz.
BrowserWindowsmacOSAndroidiOS
Chrome✅ ¹
Firefox✅ ¹
Safari 10+✅ ¹
Microsoft Edge✅ ¹
Opera ²✅ ¹
Samsung Internet ²✅ ¹
Yandex ²✅ ¹
UC Browser ²✅ ¹
Internet Explorer
DuckDuckGo
¹ iOS web uygulaması kurulumu gerektirir (bkz. iOS web push kurulumu)² Chromium tabanlı tarayıcılar OneSignal analizlerinde “Chrome” olarak görünür

Cihaz bildirim ayarları

Cihazınızın Bildirim Ayarları ve Odak modları (Rahatsız Etmeyin, Düşük pil, vb.) bildirimlerin görünmesini engelliyor olabilir. Tarayıcılarınız gibi belirli uygulamalar için bildirimleri de kapatmış olabilirsiniz. Cihazınızın bildirim alacak şekilde yapılandırıldığından emin olmak için aşağıdakileri kontrol edin.
  • Windows
  • macOS
  • Android
  • iOS
  1. Başlat > Ayarlar > Bildirimler ve Eylemler > Uygulamalardan ve diğer gönderenlerden bildirim al seçeneğini seçin
  2. Sitenizin ve tarayıcınızın da etkinleştirildiğinden emin olun.

Windows 10 Bildirim Ayarları

Windows 11 Bildirim Ayarları:
  1. Başlat > Ayarlar > Sistem > Bildirimler seçeneğini seçin

Windows 11 Bildirim Ayarları

  1. Bildirimleri Açın
  2. Rahatsız etmeyin seçeneğini Kapatın (test sırasında, bu devre dışı bırakıldığında push gösterilecektir)
  3. Uygulamalardan ve diğer gönderenlerden bildirimler altına gidin
  1. Tarayıcılarınızın Açık olduğundan emin olun.

Windows 11 Bildirim Ayarları Tarayıcı Listesi

İstem görüntüleme sorunları

Web push bildirimi isteminin beklendiği gibi görüntülenmemesinin yaygın nedenleri aşağıda verilmiştir.
1

Bir istemin yapılandırıldığını onaylayın

Bir istem yapılandırdığınızdan ve farklı tarayıcı davranışlarını anladığınızdan emin olmak için Web izin istemi kurulumunuzu gözden geçirin.Örneğin, Safari gibi bazı tarayıcılar yerel istemin görünmeden önce bir kullanıcı hareketi (bir düğmeye tıklama) gerektirir. Her tarayıcı için ayrıntılar Web izin istemi > Yerel izin istemi bölümümüzde bulunabilir.
2

Tarayıcı uyumluluğunu, gizli, özel tarayıcı veya misafir tarayıcı modlarını kontrol edin

Tarayıcılar, kullanıcıların bu modlarda bildirimlere abone olmasına izin vermez. Bu nedenle Kaydırma İstemi gösterilebilir ancak yerel İzin İstemi görüntülenmez.Web push destekleyen bir tarayıcı ve cihaz kullandığınızdan emin olun.
3

Tarayıcınızın Bildirim Ayarlarını kontrol edin

Tarayıcınızın ayarlarına gidin ve “Bildirimler” izin ayarını kontrol edin. Chrome örneği: chrome://settings/content/notifications

Chrome Bildirim ayarları

Bu örnekte:
  • Kullanıcı “Sitelerin bildirim göndermesine izin verme” seçeneğini seçmiştir, bu da yerel izin isteminin gösterilmesini engelleyecektir. Yerel izin isteminin gösterilmesine izin vermek için “Siteler bildirim göndermek için istekte bulunabilir” gösterilmelidir.
  • Kullanıcı https://yoursite.com adresini “Bildirim göndermeye izin verilmeyen” listesine eklemiştir, bu da yerel izin isteminin gösterilmesini engelleyecektir. Yerel izin isteminin gösterilmesine izin vermek için bunun listeden kaldırılması gerekir.
Tarayıcıya özel belgeler:
  • Chrome - Bu sayfa, Ayarlar > Gizlilik ve güvenlik > Site Ayarları > Bildirimler’e giderek Chrome’da bildirimleri nasıl yöneteceğinizi açıklar; burada varsayılan davranışı kontrol edebilir ve tek tek web siteleri için izinleri yönetebilirsiniz.
  • Firefox - Bu kılavuz, Firefox’un Web Push bildirimlerini kapsar ve Ayarlar > Gizlilik ve Güvenlik > Bildirimler aracılığıyla bildirim izinlerinin nasıl yönetileceğini ve adres çubuğundaki site bilgileri simgesi aracılığıyla belirli siteler için izinlerin nasıl kontrol edileceğini açıklar.
  • Safari - Bu Apple kılavuzu, Safari > Tercihler > Web Siteleri > Bildirimler aracılığıyla Mac’te Safari bildirimlerinin nasıl özelleştirileceğini açıklar; burada hangi sitelerin bildirim gönderebileceğini yönetebilir ve Sistem Tercihleri aracılığıyla bildirim davranışını kontrol edebilirsiniz.
  • Edge - Bu makale, Ayarlar > Gizlilik, arama ve hizmetler > Site izinleri > Bildirimler’e giderek veya adres çubuğundaki site bilgileri simgesine tıklayarak Edge bildirimlerinin nasıl yönetileceğini ayrıntılı olarak açıklar.
4

iOS/iPadOS gereksinimleri karşılanmıyor

iOS için kullanıcılardan abonelik istemek için bazı ek gereksinimler vardır. Daha fazla bilgi iOS/iPadOS için Mobil Web Push kılavuzunda görülebilir.

Sorun giderme adımları

Yukarıdakileri kontrol ettikten sonra, OneSignal Web SDK kurulumunuzda sorun gidermek için bu adımları izleyin.
1

Tarayıcı geliştirici araçları konsolunu açın

Tarayıcının geliştirici araçları, web sayfanızdaki web SDK’mızla etkileşim kurmak ve hataları kontrol etmek için günlüğü etkinleştirmek için kullanılabilir.
  • Masaüstü
  • Android
  • iOS
  • Chrome: Sayfaya sağ tıklayın, İncele’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
  • Firefox: Sayfaya sağ tıklayın, Öğeyi İncele’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
  • Safari: Safari → Tercihler → Gelişmiş bölümüne gidin ve Menü çubuğunda Geliştir menüsünü göster seçeneğinin işaretli olduğundan emin olun. Ardından, web sayfanızda sağ tıklayın, Öğeyi İncele’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.

Masaüstü Geliştirici Araçları Konsolu

2

OneSignal'ın sayfanızda yüklendiğini ve başlatıldığını doğrulayın

Konsolda şunu çalıştırın:
JavaScript
  OneSignal.initialized
Sonucun anlamı:
  • true ✅ - OneSignal başlatıldı ve hazır. Bir sonraki adıma geçin.
  • false ⚠️ - OneSignal yüklendi ancak başlatmayı henüz tamamlamadı. Bir süre bekleyin ve tekrar deneyin.
  • Uncaught ReferenceError: OneSignal is not defined ❌ - OneSignal JavaScript kod parçacığının sitenizin <head> bölümünde olduğunu doğrulayın, OneSignal yöntemlerini kullanmayı denemeden önce betiğin yüklendiğini kontrol edin. Web SDK Kurulum kılavuzunu gözden geçirin
  • OneSignal is already defined SDK aynı sayfada birden fazla kez başlatılıyor. Bir başlatma yöntemini kaldırın. WordPress eklentisi kullanıyorsanız, tema dosyalarınızdan manuel OneSignal kodunu kaldırın.
3

Web SDK günlüğünü etkinleştirin

Artık geliştirici araçları Konsolunda komutlar çalıştırabilirsiniz. Aşağıdaki kodu çalıştırın:
JavaScript
  OneSignal.Debug.setLogLevel('trace');
  • Sonuç olarak undefined görmelisiniz.
  • Sekmeyi kapatın ve aynı sayfaya yeni bir sekme açın. Yalnızca yenileme yapmanız tüm SDK başlatma olaylarını tetiklemez.
  • Konsolda OneSignal SDK günlüklerini görmeye başlayacaksınız.

Ayrıntılı SDK günlükleriyle konsol

Yapılandırma hataları

OneSignal başlatıldıktan sonra aşağıdaki hatalarla karşılaşabilirsiniz:
Hata: SDK zaten başlatıldı

Yinelenen SDK başlatma hatası

Bunun anlamı: OneSignal Web SDK init kodu birden fazla kez çağrılıyor, genellikle WordPress eklenti kurulumunun manuel kodla birleştirilmesinden veya OneSignal init kodunun yanlışlıkla birden fazla kez eklenmesinden kaynaklanır. Nasıl düzeltilir: Yinelenen init çağrılarını kaldırın. WordPress eklentisi kullanıyorsanız, tema dosyalarınızdan manuel OneSignal kodunu kaldırın.
Hata: Yalnızca şurada kullanılabilir: (OneSignal Panosu’nda Ayarlanan URL)

Örnek, OneSignal panosunda ayarlanan URL'nin `http://127.0.0.1:5501` olduğunu ve ziyaret ettiğiniz mevcut site origin'i olmadığını gösterir.

Bunun anlamı: Şu anda ziyaret ettiğiniz alan adı, OneSignal panonuzda yapılandırılmış site URL’si ile eşleşmiyor. Nasıl düzeltilir: Tarayıcınızdaki site URL’sini kopyalayın ve OneSignal panonuzun Ayarlar > Push ve Uygulama İçi > Web > Site URL yapılandırmasına yapıştırın. Aşağıdaki formatı kullanarak site origin olduğundan emin olun:
  • Protokol: https:// olmalıdır (yerel test için, Localhost yapılandırması bölümüne bakın)
  • Alan adı: example.com ile www.example.com karşılaştırması
  • Alt alan adı: app.example.com ile example.com karşılaştırması
Her üç bileşen de gerçek site URL’niz ile pano yapılandırmanız arasında eşleşmelidir.

Service worker kurulum hataları

Yerel izin istemi ile karşılaştıysanız ve “İzin Ver”e tıkladıysanız, aşağıdaki service worker kurulum hatalarıyla karşılaşabilirsiniz:
Y: Service Worker kaydı başarısız oldu.
[Service Worker Kurulumu] Service worker kurulumu başarısız oldu TypeError: (‘https://your-site.com/’) kapsamı için (‘https://your-site.com/...’) betiğiyle ServiceWorker kaydedilemedi: Betik getirilirken hatalı bir HTTP yanıt kodu (404) alındı.
[Service Worker Kurulumu] Service worker kurulumu başarısız oldu TypeError: (‘https://www.yoursite.com/’) kapsamı için (‘https://www.yoursite.com/...’) betiğiyle ServiceWorker kaydedilemedi: Betik getirilirken hatalı bir HTTP yanıt kodu (403) alındı.

Service worker kurulum hatası örneği

Betiğin desteklenmeyen bir MIME türü var (‘mevcut MIME türü’). [Service Worker Kurulumu] Service worker kurulumu başarısız oldu SecurityError: (‘https://your-site.com/’) kapsamı için (‘https://your-site.com/…’) betiğiyle ServiceWorker kaydedilemedi: Betiğin desteklenmeyen bir MIME türü var (‘mevcut MIME türü’).

Service worker'da MIME türü hatası

[Service Worker Kurulumu] Service worker kurulumu başarısız oldu SecurityError: (‘https://your-site.com/’) kapsamı için (‘https://your-site.com/…’) betiğiyle ServiceWorker kaydedilemedi: Betik kaynağı izin verilmeyen bir yönlendirmenin arkasında.

Konsolda yönlendirme hatası

Bunun anlamı: Service worker dosyanız yanlış yapılandırılmış. Nasıl düzeltilir:
1

Service worker yolunuzu bulun

SDK’mız, Service Worker Kurulum Kılavuzu’nda açıklandığı gibi özel bir dosya adı veya konum belirtmediğiniz sürece sitenizin kök dizininde OneSignalSDKWorker.js service worker dosyasını arar.SDK’mızın service worker dosyasını bulması için doğru dosya adını, konumu ve kapsamı yapılandırdığınızdan emin olun.
2

Service worker dosyasını doğrudan tarayıcınızda ziyaret edin

Yapılandırmanıza göre dosyayı doğrudan tarayıcınızda açın.
  • Özel bir konum yapılandırmadıysanız, sitenizin kök dizininde service worker dosyası için JavaScript kodunu görmelisiniz: https://yoursite.com/OneSignalSDKWorker.js
  • WordPress kullanıyorsanız, burada görmelisiniz: https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
  • Özel bir konum kullanıyorsanız, burada görmelisiniz: https://yoursite.com/your-custom-location/OneSignalSDKWorker.js
Dosya adları büyük/küçük harfe duyarlıdır. OneSignalSDKWorker.js veya yapılandırdığınız dosya adını kullandığınızdan emin olun.Bazı sunucular dosya adını otomatik olarak küçük harfe çevirir. Dosyayı bulamıyorsanız bunu göz önünde bulundurun.
3

Dosyanın yüklendiğini doğrulayın

  • Aşağıdaki JavaScript kodunu görmelisiniz:
    JavaScript
    importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");
    
  • Bu dosya application/javascript content-type ile sunulmalıdır.
  • Bu dosyaya yönlendirme olmamalıdır. Dosyalar sitenizle aynı alan adında barındırılmalıdır (CDN veya proxy alan adları yok)
Daha ayrıntılı kurulum talimatları için Service Worker Kurulum Kılavuzu’nu gözden geçirin.

Bildirimler gösterilmiyor

Bu bölüm şunları varsayar:
  1. Bildirimlerin cihazınızda görünmemesinin yaygın nedenleri için Gösterilmeyen Bildirimler: Web Push kılavuzunu gözden geçirdiniz.
  2. Size Yerel izin istemi gösterildi ve “İzin Ver”e tıkladınız. Yerel izin istemi aracılığıyla abone olmadıysanız yukarıdaki İstem Görüntüleme Sorunları bölümüne bakın.
Yukarıdakiler doğruysa, Abonelik Kimliğinizi kontrol etmek ve kendinize bir push bildirimi göndermek için şu adımları izleyin:
1

Abonelik Kimliğinizi alın

Tarayıcı geliştirici araçları konsolunda aşağıdaki kodu çalıştırın:
JavaScript
  function getUserInfo() {
  	console.log('getUserInfo()');
  	Promise.all([
      OneSignal.Notifications.isPushSupported(),
  		OneSignal.Notifications.permission,
      OneSignal.User.PushSubscription.optedIn,
      OneSignal.User.PushSubscription.id
  	]).then(([
      isPushSupported,
      isSubscribed,
      isOptedIn,
      subscriptionId
    ]) => {
      console.log('The current URL of this page: ', location.href);
      console.log('Push is supported on this browser: ', isPushSupported);
      console.log('You are subscribed to notifications in the browser: ', isSubscribed);
      console.log('You are opted-in with OneSignal: ' , isOptedIn);
      console.log('Your OneSignal Subscription ID: ', subscriptionId);
    }).catch(e => {
      console.error('Error getting user info:', e);
    });
  }
  getUserInfo();
Bu size şunları söyleyecektir:
  • Herhangi bir karışıklık varsa, bulunduğunuz sayfanın URL’si.
  • Kullandığınız mevcut tarayıcının push bildirimlerini destekleyip desteklemediği.
    • true tarayıcının push bildirimlerini desteklediği anlamına gelir.
    • false tarayıcının push bildirimlerini desteklemediği anlamına gelir.
  • Tarayıcıda bildirimlere abone olup olmadığınız.
    • true bu URL için push izinlerine izin verdiğiniz anlamına gelir.
    • false bu URL için push izinlerine izin vermediğiniz veya reddettiğiniz anlamına gelir.
  • OneSignal ile abone olup olmadığınız.
    • true Aboneliğinizin OneSignal’da push bildirimlerine abone olduğu anlamına gelir.
    • false Aboneliğinizin OneSignal’da push bildirimlerine abone olmadığı anlamına gelir. Sitenizde optOut() yöntemi’nin çağrılıp çağrılmadığını kontrol edin.
  • OneSignal Abonelik Kimliğiniz.
    • Bunu bir sonraki adım için kaydedin. Kendinize push bildirimi göndermek için kullanacağınız kimlik budur.

    Kullanıcı bilgisi örneği

    Daha fazla yardıma ihtiyacınız olursa bu konsol verilerini bir metin dosyasına kaydedin ve Destek ekibimizle paylaşın.
2

Kendinize bir bildirim gönderin

Bildirimlere abone değilseniz, OneSignal ile abone değilseniz ve bir Abonelik Kimliğiniz varsa, kendinize bir bildirim gönderebilirsiniz.Kendinizi bir test kullanıcısı olarak ayarlamak ve kendinize bir bildirim göndermek için Test Aboneliklerini Bulma ve Ayarlama bölümündeki adımları izleyin.
3

Chrome ile test edin

Chrome’da bildirim almıyorsanız, sorunu belirlemek için bu Chrome’a özgü tanılama araçlarını kullanın.
  1. Yeni bir sekmede chrome://gcm-internals açın.
  2. Sol üstteki “Start Recording” düğmesine tıklayın. “Connection State: CONNECTED” gördüğünüzden emin olun.
  3. Bunu açık bırakın ve Chrome web push Aboneliğinize kendinize başka bir push bildirimi gönderin.
  4. Aldıysanız “Receive Message Log”da bir şeyler görmelisiniz.

GCM internals günlüğü

  • “Data msg received” görmüyorsanız, Chrome tarayıcınız bildirimi hiç almıyor demektir. Lütfen destek ekibimize bu konuda bildirin.
  • “Data msg received” görüyorsanız ancak yine de bildirim almadıysanız, bir sonraki adıma geçin.
  1. chrome://serviceworker-internals için yeni bir sekme açın
  2. Scope: https://your-site.com arayın (your-site.com’u gerçek site alan adınızla değiştirin).
  3. Inspect veya Start -> Inspect seçeneğine tıklayın. Bir Chrome Developer Tools popup’ı görünecektir.

Service worker'ı inceleme

  1. Service worker’ımıza yönelik Chrome Developer Tools popup’ında Console sekmesine tıklayın ve OneSignalWorker.log.trace(); çalıştırın. undefined döndürmeli. Service worker’ımızdan gelen tüm mesajlar artık bu popup’ta görünmelidir.
Yardıma mı ihtiyacınız var?Destek ekibimizle sohbet edin veya [email protected] adresine e-posta gönderinLütfen şunları ekleyin:
  • Yaşadığınız sorunun ayrıntıları ve varsa yeniden üretme adımları
  • OneSignal Uygulama Kimliğiniz
  • Varsa Harici ID veya Abonelik ID
  • Varsa OneSignal Panosunda test ettiğiniz mesajın URL’si
  • İlgili günlükler veya hata mesajları
Size yardımcı olmaktan mutluluk duyarız!