Skip to main content

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’nu gözden geçirin. Web push’un çalışmıyor gibi görünmesinin en yaygın nedenleri, tarayıcınızın 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.
¹ 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 bildirim ayarları, web push bildirimlerinin görünmemesinin en yaygın nedenidir. Başka nedenlere bakmadan önce Odak modları (Rahatsız Etmeyin, Düşük Pil, vb.) dahil aşağıdaki ayarları kontrol edin.
Aşağıdaki sekmelerden doğru işletim sistemini seçin. Windows, macOS, Android ve iOS görmeniz gerekir.
  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 bölümüne inin
Windows 11 Settings showing the Notifications from apps and other senders list

Windows 11 Uygulamalardan ve diğer gönderenlerden bildirimler

  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ı, OneSignal Web SDK ile etkileşim kurmanızı ve hataları kontrol etmek için günlüğü etkinleştirmenizi sağlar.
  • 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 incele’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 incele’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
Browser developer tools console open on a webpage

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

2

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

Geliştirici araçları Konsolunda aşağıdaki komutu çalıştırın:
  • Sonuç olarak undefined görmelisiniz.
  • Sekmeyi kapatın ve aynı sayfaya yeni bir sekme açın. Yalnızca yenilemek tüm SDK başlatma olaylarını tetiklemez.
  • Konsolda OneSignal SDK günlüklerini görmeye başlayacaksınız.
Browser console showing OneSignal SDK trace-level log output

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ı
Console error showing SDK already initialized message

Yinelenen SDK başlatma hatası

Bunun anlamı: OneSignal Web SDK init kodu birden fazla kez çağrılıyor; bu genellikle WordPress eklentisi veya Shopify entegrasyonu kurulumunun manuel kodla birleştirilmesinden ya da 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 veya Shopify entegrasyonu kullanıyorsanız, dosyalarınızdaki manuel OneSignal kodunu kaldırın.
Hata: Yalnızca şurada kullanılabilir: (OneSignal Kontrol Panelinde Ayarlanan URL)
Console error showing site origin mismatch between dashboard URL and current page

Örnek, OneSignal kontrol panelinde ayarlanan http://127.0.0.1:5501 URL'sinin şu anda ziyaret ettiğiniz site origin'i olmadığını gösterir.

Bunun anlamı: Şu anda ziyaret ettiğiniz alan adı, OneSignal kontrol panelinizde 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 kontrol panelinizin Settings > Push & In-app > 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ı’na 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 kontrol paneli yapılandırmanız arasında eşleşmelidir.
Hata: OneSignalSDK: The “My site is not fully HTTPS” option is no longer supported starting with version 16 (User Model) of the OneSignal SDK.
Console error showing HTTP site not supported in SDK v16

HTTP site desteklenmiyor hatası örneği

Bunun anlamı: OneSignal kontrol paneliniz bir HTTP sitesi kullanacak şekilde yapılandırılmış ve muhtemelen HTTPS kullanmak için güncelleme yaptınız. HTTP kullanırken veya “My site is not fully HTTPS” seçeneğiyle abone olan kullanıcılar, aslında gerçek site origin’inize değil, https://your-label.os.tc formatındaki bir alt alan adına abone olmuştur. Web push, HTTP sitelerinde veya service worker barındıramayan web sitelerinde desteklenmez. Nasıl düzeltilir: Her iki seçenek de kullanıcılarınızın yeniden abone olmasını gerektirir çünkü kullanıcılar sitenize değil, os.tc alt alan adına abonedir.
  1. Yeni bir OneSignal Uygulaması oluşturun ve init kodunuzda yeni App ID’yi ayarlayın. Bu, kullanıcıları bilgilendirmek için eski uygulamadan push göndermeye devam etmenizi sağlar. Kullanıcılara sitenin güncellendiğini ve yeniden abone olmaları gerektiğini bildiren bildirimler gönderin. Bir indirim veya teşvik sunmak yardımcı olur. “Launch URL”yi, yeniden abonelik istemi (Zil, Özel Bağlantı veya Kategori Slidedown) içeren bir açılış sayfasına ayarlayın. Ayrıntılar için İzin istemleri’ne bakın.
  2. Aynı App ID’yi koruyun: chrome_web_origin ve safari_site_origin değerlerini HTTPS origin’inize güncellemek için Bir uygulamayı güncelle API’sini kullanın. Kullanıcılar os.tc alt alan adına abone oldukları için, tarayıcılarında gerçek alan adınız için push izinleri yoktur. Tekrar istem alacaklar ve yeniden abone olurlarsa, aynı tarayıcıda iki web push Aboneliğine sahip olacaklar — bu da yinelenen bildirimlere neden olur. Yinelenenleri önlemek için, güncellemeden önce mevcut tüm web push abonelerini silin. Önce, kullanıcılara yeniden abone olmaları gerektiğini bildiren birkaç bildirim gönderin. İstem seçenekleri için İzin istemleri’ne bakın.

Service worker kurulum hataları

Yerel izin istemi size gösterilir ve “İzin Ver”e tıklarsanız, aşağıdaki service worker kurulum hatalarıyla karşılaşabilirsiniz:
Y: Registration of a Service Worker failed.
[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/...’): A bad HTTP response code (404) was received when fetching the script.
[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘https://www.yoursite.com/’) with script (‘https://www.yoursite.com/...’): A bad HTTP response code (403) was received when fetching the script.
Console error showing service worker registration failure with 404 or 403 response

Service worker kurulum hatası örneği

The script has an unsupported MIME type (‘current MIME type’). [Service Worker Installation] Installing service worker failed SecurityError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/…’): The script has an unsupported MIME type (‘current MIME type’).
Console error showing unsupported MIME type for service worker script

Service worker'da MIME türü hatası

[Service Worker Installation] Installing service worker failed SecurityError: Failed to register a ServiceWorker for scope (‘https://your-site.com/’) with script (‘https://your-site.com/…’): The script resource is behind a redirect, which is disallowed.
Console error showing service worker script blocked by a redirect

Konsolda yönlendirme hatası

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

Service worker yolunuzu bulun

Typical Site ve Özel Kod: Özel bir yol ayarlamadığınız sürece SDK, sitenizin kök dizininde OneSignalSDKWorker.js dosyasını arar. OneSignal service worker’a bakın.WordPress: Site kök dizinine bir worker yüklemeyin veya özel bir yol ayarlamayın. Eklenti, dosyayı sdk_files içinde barındırır. Bir sonraki adımda bu URL’yi açın. WordPress kurulumu’na bakın.
2

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

Dosya URL’sini tarayıcınızda açın.
  • Typical Site varsayılanı (kök dizin): https://yoursite.com/OneSignalSDKWorker.js
  • WordPress eklentisi (v3): https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js (WordPress.org klasör adı; zip kurulumları farklı olabilir)
  • Özel yol (yalnızca Typical Site kontrol paneli veya Özel Kod init): 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
  • 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).
Typical Site ve Özel Kod: yükleme ve yol kurulumu için OneSignal service worker’a bakın. WordPress eklentisi kullanıcıları bu kılavuzu izlememelidir. WordPress kurulumu’na bakın.

Bildirimler gösterilmiyor

Bu bölüm şunları varsayar:
  1. Bildirimlerin cihazınızda görünmemesinin yaygın nedenleri için Bildirimler gösterilmiyor: 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
Bu size şunları söyleyecektir:
  • Herhangi bir karışıklık varsa, bulunduğunuz sayfanın URL’si.
  • 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 opt-in durumunuz.
    • 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.
    Console output showing push support status, subscription state, and Subscription ID

    Konsolda kullanıcı bilgisi çıktısı örneği

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

Kendinize bir bildirim gönderin

Bildirimlere aboneyseniz, OneSignal ile opt-in yaptıysanız ve bir Abonelik Kimliğiniz varsa, kendinize bir bildirim gönderebilirsiniz.Kendinizi test kullanıcısı olarak ayarlamak ve kendinize bir bildirim göndermek için Test Kullanıcıları 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.
Chrome GCM internals page showing Receive Message Log with a received data message

GCM internals günlüğü

  • “Data msg received” görmüyorsanız, Chrome tarayıcınız bildirimi hiç almıyor demektir. GCM internals günlükleriyle birlikte OneSignal Destek ile iletişime geçin.
  • “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.
Chrome service worker internals page showing the Inspect button for a registered service worker

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ürmelidir. 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 support@onesignal.com 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!

SSS

Neden “SDK already initialized” görüyorum?

OneSignal Web SDK init kodu sayfada birden fazla kez çağrılıyor. Bu genellikle WordPress eklentisinin manuel kodla birleştirilmesi veya init etiketinin birden fazla sayfa şablonuna eklenmesi durumunda olur. Çözmek için yinelenen init çağrılarını kaldırın.

HTTP sitelerinde web push kullanabilir miyim?

Hayır. Web push HTTPS gerektirir çünkü push teslimatını yöneten service worker’lar yalnızca güvenli kaynaklarda çalışır. Daha önce “My site is not fully HTTPS” seçeneğini kullandıysanız, HTTPS’e geçmeniz gerekir. Geçiş adımları için Yapılandırma hataları’na bakın.

Localhost’ta web push’u nasıl test ederim?

Geliştirme sırasında localhost üzerinde test yapabilirsiniz. Kurulum talimatları için Localhost yapılandırması’na bakın. localhost testinin yalnızca Chromium tabanlı tarayıcılarda çalıştığını unutmayın.

İlgili sayfalar

Web SDK kurulumu

İlk OneSignal Web SDK kurulumunu ve yapılandırmasını tamamlayın.

Service worker kurulumu

Siteniz için OneSignal service worker dosyasını yapılandırın.

İzin istemleri

Ziyaretçilere web push izni için nasıl ve ne zaman istem gösterileceğini yapılandırın.

Bildirimler gösterilmiyor

Web push bildirimlerinin cihazınızda görünmemesinin yaygın nedenleri.