Adım 0. OneSignal’da FCM yapılandırması (push göndermek için gerekli)
Bu adımı tamamlamadan OneSignal Android SDK’sını yükleyip başlatabilirsiniz. Ancak Firebase Cloud Messaging (FCM) kimlik bilgileri OneSignal uygulamanızda yapılandırılana kadar push bildirimleri teslim edilmeyecektir.OneSignal uygulamanızı yapılandırma adımları.
OneSignal uygulamanızı yapılandırma adımları.
- https://onesignal.com adresine giriş yapın ve Uygulamanızı oluşturun veya seçin.
- Settings > Push & In-App bölümüne gidin.
- Google Android (FCM) seçeneğini seçin ve kurulum sihirbazında Continue ile devam edin.
- FCM Service Account JSON dosyanızı yükleyin.
- App ID’nizi almak için kurulum sihirbazında devam edin. Bu, SDK’yı başlatmak için kullanılacaktır.
Kurulum sözleşmesi ve gereksinimler
Bu bölüm, kılavuz boyunca kullanılan araçları, sürümleri ve varsayımları özetler.- SDK sürümü:
5.6.1+(en son: sürümleri kontrol edin) - Yapay zeka kurulum talimatları:
https://raw.githubusercontent.com/OneSignal/sdk-ai-prompts/main/docs/android/ai-prompt.md - SDK deposu:
https://github.com/OneSignal/OneSignal-Android-SDK - Android Studio: Meerkat | 2024.3.1+
- Android API: Minimum 23+ (Android 6.0+), önerilen 31+ (Android 12+)
- Cihaz/emülatör: Google Play Services yüklü Android 7.0+
- Gerekli bağımlılık:
com.onesignal:OneSignal:[5.6.1, 5.99.99] - Application sınıfı: Doğru SDK başlatma için gereklidir
- App ID formatı: 36 karakterlik UUID (örnek:
12345678-1234-1234-1234-123456789012). Dashboard > Settings > Keys & IDs bölümünde bulabilirsiniz. - Başlatma:
OneSignal.initWithContext(this, "YOUR_APP_ID") - Pil optimizasyonu: Arka plan bildirimlerini etkileyebilir
- Önerilen: Cihazlar arasında kullanıcıları birleştirmek için
OneSignal.login("user_id")ile External ID atayın
Android kurulum adımları
Aşağıdaki adımların sonunda şunlara sahip olacaksınız:- Android uygulamanızda yüklenmiş ve başlatılmış OneSignal SDK
- Gerçek bir cihazda doğru şekilde görüntülenen push bildirim izni istemi
- Başarıyla teslim edilmiş bir test push ve uygulama içi mesaj
Adım 1. OneSignal SDK’sını ekleyin
- Android Studio’da
build.gradle.kts (Module: app)veyabuild.gradle (Module: app)dosyanızı açın dependenciesbölümünüze OneSignal’ı ekleyin:

Örnek, OneSignal'ı Uygulamanızın build.gradle.kts dosyasına eklemeyi göstermektedir.
- Gradle Senkronizasyonu: Görünen afişte Sync Now seçeneğine tıklayın veya File > Sync Project with Gradle Files yolunu izleyin
Adım 2. Application sınıfını oluşturun ve yapılandırın
Tüm giriş noktalarında doğru SDK kurulumunu sağlamak için OneSignal’ıApplication sınıfınızın onCreate metodunda başlatmak en iyi uygulamadır.
Henüz yoksa bir Application sınıfı oluşturun:
- File > New > Kotlin Class/File (veya Java Class)
- Ad:
ApplicationClass(veya tercih ettiğiniz ad)

Örnek, ApplicationClass adında yeni bir Kotlin sınıfı oluşturmayı göstermektedir.
YOUR_APP_ID kısmını Dashboard > Settings > Keys & IDs bölümündeki gerçek OneSignal App ID’nizle değiştirin.

Örnek ApplicationClass.kt dosyası.
- Uygulamanızın
AndroidManifest.xmldosyasını açın <application>etiketinizeandroid:name=".ApplicationClass"ekleyin (farklı bir ad belirlediyseniz.ApplicationClasskısmını gerçek sınıf adınızla değiştirin).

.ApplicationClass adıyla AndroidManifest.xml.
Adım 3. Varsayılan bildirim simgelerini yapılandırın (önerilen)
Varsayılan zil simgesiniic_stat_onesignal_default adında bir küçük simgeyle değiştirin. Şeffaf arka plan üzerinde tek renkli bir siluet kullanın, aksi takdirde Android beyaz bir kare gösterecektir.
- Android Asset Studio ile farklı yoğunlukları oluşturun.
ic_stat_onesignal_defaultdosyasını her yoğunluk klasörüne yerleştirin:res/drawable-mdpi/(24×24) ileres/drawable-xxxhdpi/(96×96) arasında.
Adım 4. Entegrasyonu test edin
Abonelik oluşturulmasını doğrulayın:- Google Play Services yüklü bir cihaz veya emülatörde uygulamayı başlatın.
- Dashboard > Audience > Subscriptions bölümünü kontrol edin. Durum Never Subscribed gösterir.
- İzin istemi göründüğünde kabul edin.
- Dashboard’u yenileyin. Durum Subscribed olarak değişir.

Android push izin istemi

'Never Subscribed' durumundaki Aboneliği gösteren Dashboard

Push izinlerini verdikten sonra, Abonelik durumunun 'Subscribed' olarak güncellendiğini görmek için dashboard'u yenileyin
Test kullanıcısı ve segment oluşturun
- Aboneliğin yanında Options > Add as test user seçeneğini seçin ve bir ad girin.
- Audience > Segments > New Segment bölümüne gidin.
- Ad:
Test Users, filtre olarak Test Users ekleyin > Create Segment.

Test kullanıcısı ekleyin

Test Users filtresiyle bir 'Test Users' segmenti oluşturun
API ile test push gönderin
- Settings > Keys & IDs bölümüne gidin.
- Sağlanan kodda, aşağıdaki koddaki
YOUR_APP_API_KEYveYOUR_APP_IDkısımlarını gerçek anahtarlarınızla değiştirin. Bu kod, daha önce oluşturduğumuzTest Userssegmentini kullanır.

Daraltılmış bildirim görünümünde görseller küçük görünür. Tam görseli görmek için bildirimi genişletin.

Onaylı teslimi gösteren teslim istatistikleri (ücretsiz planlarda kullanılamaz)
Uygulama içi mesajları test edin
- Uygulamayı 30 saniyeden fazla kapatın
- Dashboard > Messages > In-App > New In-App > Welcome şablonunu seçin
- Hedef kitle: Test Users segmenti
- Tetikleyici: On app open
- Zamanlama: Every time trigger conditions are satisfied
- Make Message Live seçeneğine tıklayın
- Uygulamayı açın

'Test Users' segmentini uygulama içi mesajla hedefleme

Uygulama içi Hoş Geldiniz mesajının örnek özelleştirmesi

Uygulama içi mesaj zamanlama seçenekleri

Cihazlarda gösterilen hoş geldiniz uygulama içi mesajı
- Abonelik toplama, Test kullanıcıları ayarlama ve Segmentler oluşturma.
- Segmentler ve Mesaj oluşturma API’mizi kullanarak görsellerle Push gönderme.
- Uygulama içi mesajlar gönderme.
Yaygın hatalar ve çözümler
Kullanıcı yönetimi
Daha önce mobil Abonelik oluşturmayı gösterdik. Şimdi OneSignal SDK’sını kullanarak tüm Abonelikleri (push, e-posta ve SMS dahil) genelinde Kullanıcıları tanımlamaya geçeceğiz.External ID atayın (önerilen)
Cihazlar, e-posta adresleri ve telefon numaraları arasında kullanıcıları tutarlı bir şekilde tanımlamak için backend’inizin kullanıcı tanımlayıcısını kullanarak bir External ID atayın. Bu, mesajlaşmanın kanallar ve üçüncü taraf sistemler arasında birleşik kalmasını sağlar.login metodu hakkında daha fazla bilgi edinin.Etiketler ve Özel Olaylar ekleyin
Etiketler ve Özel Olayların her ikisi de kullanıcılara veri ekler. Etiketler, kullanıcı özellikleri için (username, role veya status gibi) key-value dizeleridir. Özel Olaylar JSON kullanır ve genellikle eylemleri temsil eder (new_purchase veya abandoned_cart gibi). Her ikisi de Mesaj Kişiselleştirme ve Journeys’i destekleyebilir.
E-posta ve/veya SMS abonelikleri ekleyin
Push bildirimlerine ek olarak e-posta ve SMS aracılığıyla kullanıcılara ulaşabilirsiniz. E-posta adresi veya telefon numarası OneSignal uygulamasında zaten mevcutsa, SDK bunu mevcut kullanıcıya ekler ve kopya oluşturmaz. Adresin tanımlanmış kullanıcıya eklenmesi için öncelogin() çağırın.

External ID ile birleştirilmiş push, e-posta ve SMS aboneliklerine sahip bir kullanıcı profili
- E-posta veya SMS abonelikleri eklemeden önce açık onay alın.
- Her iletişim kanalının faydalarını kullanıcılara açıklayın.
- Kullanıcıların tercih ettikleri kanalları seçebilmeleri için kanal tercihleri sunun.
Gizlilik ve kullanıcı onayı
OneSignal’ın kullanıcı verilerini ne zaman topladığını kontrol etmek için SDK’nın onay kapılama yöntemlerini kullanın.consentRequired metodunu initWithContext çağrısından önce çağırın.
Push izinleri isteme
Uygulama açılışında hemenrequestPermission() çağırmak yerine daha stratejik bir yaklaşım benimseyin. İzin istemeden önce push bildirimlerinin değerini açıklamak için bir uygulama içi mesaj kullanın.
En iyi uygulamalar ve uygulama ayrıntıları için Push izinleri isteme kılavuzumuza bakın.
Push, kullanıcı ve uygulama içi olayları dinleyin
Kullanıcı eylemlerine ve durum değişikliklerine tepki vermek için SDK dinleyicilerini kullanın. Bunları Application sınıfınızdaOneSignal.initWithContext() çağrısından sonra ekleyin.
Push bildirim olayları
Kullanıcı durumu değişiklikleri
Bu örnek, push abonelik gözlemcisini kullanır. Kullanıcı durumu gözlemcisi ve bildirim izni gözlemcisi Mobil SDK referansı’nda mevcuttur.Uygulama içi mesaj olayları
Ek uygulama içi mesaj yöntemleri Mobil SDK referansı’nda mevcuttur.Gelişmiş kurulum ve özellikler
Android’e özgü özellikler
- Bildirim kanalları: Bildirimleri kategorilere ayırın (Android 8.0+)
- Service extensions: Gelişmiş bildirim özelleştirmesi
- Huawei/HMS: Google Play Services alternatifi
Evrensel özellikler
- Derin bağlantılar: Bildirimlerden kullanıcıları belirli ekranlara yönlendirin
- Eylem düğmeleri: Bildirimlere etkileşimli düğmeler ekleyin
- Kimlik doğrulama: Güvenli kullanıcı tanımlama
- Konum takibi: Konum tabanlı hedefleme
- Entegrasyonlar: Analiz ve veri platformlarıyla bağlantı kurun
- Çok dilli mesajlaşma: Yerelleştirilmiş bildirimler
SSS
Android Studio neden OneSignal sembolünü çözümleyemiyor?
SDK bağımlılığı eksik veya Gradle senkronize edilmemiş. Uygulama modülünüzün build.gradle dosyasına com.onesignal:OneSignal:[5.6.1, 5.99.99] ekleyin ve File > Sync Project with Gradle Files yolunu kullanın.
Application sınıfım neden bulunamıyor?
Sınıf manifest’te kayıtlı değil.AndroidManifest.xml dosyasındaki <application> etiketine android:name=".ApplicationClass" (veya kendi sınıf adınızı) ekleyin.
Emülatör neden Google Play Services’in kullanılamadığını söylüyor?
Emülatör imajı Play Services içermiyor. Play Store’lu bir cihaz veya Google API’leri içeren bir emülatör sistem imajı kullanın.Bildirim neden varsayılan Android simgesini gösteriyor?
Küçük simge eksik veya yanlış adlandırılmış.ic_stat_onesignal_default dosyasını her res/drawable-* yoğunluk klasörüne ekleyin. Bkz. Bildirim simgeleri.
Test cihazım neden push almadı?
FCM kimlik bilgileri yapılandırılmamış veya cihaz abone değil. Adım 0’ı tamamlayın ve Abonelik durumunun Subscribed olduğunu doğrulayın. Ardından Mobil push gösterilmiyor sayfasına bakın.Uygulama içi mesajlar neden gösterilmiyor?
Uygulama içi mesajlar yeni bir oturum gerektirir. Uygulamayı zorla kapatın veya en az 30 saniye arka plana alın, ardından yeniden açın. Cihazın hâlâ Test Users segmentinde olduğunu doğrulayın. Bkz. Oturumlar ve uygulama içi mesajlar nasıl görüntülenir.Manifest merger failed hatasına ne neden olur?
Çakışan <application> android:name değerleri veya yinelenen izinler. Birleşik manifest’inizde ikinci bir Application sınıfı arayın ve tek bir android:name tutun.
Pil optimizasyonları bildirimleri neden engelliyor?
Bazı OEM’ler arka plan çalışmasını kısıtlar. Cihaz uyku moduna geçtikten sonra bildirimler durursa, kullanıcılardan uygulamanız için pil optimizasyonunu devre dışı bırakmalarını isteyin.Daha fazla günlük çıktısını nasıl alabilirim?
OneSignal.Debug.logLevel = LogLevel.VERBOSE (Kotlin) veya OneSignal.getDebug().setLogLevel(LogLevel.VERBOSE) (Java) ayarlayın, sorunu yeniden oluşturun ve logcat çıktısını yakalayın. Bkz. Hata ayıklama günlüğü alma.
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ı