Skip to main content
Yapay zeka kodlama asistanı mı kullanıyorsunuz? Yapay zeka destekli kurulum için şu istemi kullanın:
Expo Go sınırlaması: Push bildirimleri Expo Go’da çalışmaz. OneSignal özelliklerini test etmek için bir development build oluşturmalısınız.

Gereksinimler

iOS Gereksinimleri
  • Xcode 14+ ile macOS (kurulum talimatları Xcode 16.2 kullanır)
  • iOS 12+, iPadOS 12+ ile cihaz veya iOS 16.2+ çalıştıran Xcode simülatörü
  • CocoaPods 1.16.2+
Android Gereksinimleri
  • Google Play Store (Services) yüklü Android 7.0+ cihaz veya emülatör

OneSignal uygulamanızı ve platformunuzu yapılandırın

OneSignal uygulamanızı desteklediğiniz platformlarla yapılandırın — Apple (APNs), Google (FCM), Huawei (HMS) ve/veya Amazon (ADM).
Kuruluşunuzun zaten bir OneSignal hesabı varsa, Kuruluşa davet edilmeyi isteyin. Aksi takdirde, başlamak için ücretsiz bir hesaba kaydolun.
1

Uygulamanızı oluşturun veya seçin

New App/Website’e tıklayarak yeni bir uygulama oluşturun veya Ayarlar > Push & Uygulama İçi’nde mevcut bir uygulamaya platform ekleyin. Yapılandırmak istediğiniz platform(ları) seçin ve İleri: Platformunuzu Yapılandırın’a tıklayın.
Kuruluş adı, uygulama adı ve kanal seçimini içeren yeni uygulama kurulum akışını gösteren OneSignal panosu

İlk OneSignal uygulamanızı, Kuruluşunuzu ve kanalınızı kurma.

2

Platform kimlik bilgilerini yapılandırın

Platformunuz için kimlik bilgilerini girin:Kimlik bilgilerinizi girdikten sonra Kaydet ve Devam Et’e tıklayın.
3

Uygulama ID'nizi kaydedin ve SDK'yı yükleyin

Uygulama ID’niz son ekranda görüntülenir. Kopyalayıp kaydedin — SDK’yı başlatırken ihtiyacınız olacak. SDK platformunuzu seçin, ardından kurulum kılavuzunu izleyin.
Kurulum sonrasında Uygulama ID'sini ve ekip davet seçeneğini gösteren OneSignal panosu

Uygulama ID'nizi kaydedin ve ek ekip üyelerini davet edin.


SDK kurulumu

1. SDK’yı ekleyin

Expo CLI kullanarak OneSignal Expo plugin’ini yükleyin.
npm
react-native-onesignal paketini projenize ekleyin.

2. Plugin’i yapılandırın

app.json (veya app.config.js / app.config.ts) dosyanızı açın. Aşağıdaki ayarları eklemelisiniz. Gerekli ayarlar
string
gerekli
Uygulamanızın bundle identifier’ı. OneSignal uygulamanızda yapılandırılan p8 veya p12 kimlik doğrulamasıyla eşleşmelidir.
object
gerekli
UIBackgroundModes anahtarını ["remote-notification"] olarak ayarlanmış şekilde içermelidir.
object
gerekli
Push bildirimleri için gerekli iOS entitlement’ları.
  • aps-environment değerini test için "development", TestFlight ve App Store build’leri için "production" olarak ayarlayın.
Plugin’i [onesignal-expo-plugin] plugin’ler dizisinin önüne eklediğinizden emin olun. Dizideki ilk plugin olmalıdır. Bunu yapmak OneSignal/OneSignal.h file not found hatasını önleyecektir.

İsteğe bağlı: Konum modülünü devre dışı bırakın

Uygulamanız OneSignal.Location kullanmıyorsa OneSignal Expo plugin props içinde disableLocation değerini true olarak ayarlayın. Bu seçenek react-native-onesignal 5.5.1 veya üzerini gerektirir. Plugin, react-native-onesignal konum modülünü hariç tutsun diye yerel bağımlılık çözümlemeyi yapılandırır. iOS’ta plugin, CocoaPods çözümlemesi sırasında kullanılan Podfile ortam ayarını yazar. Android’de plugin, oluşturulan Gradle properties içine onesignal.disableLocation=true yazar.
Oluşturulan iOS Podfile dosyanız Notification Service Extension veya Live Activity widget hedefinde açıkça OneSignalXCFramework bildiriyorsa, OneSignalXCFramework/OneSignal veya OneSignalXCFramework/OneSignalLiveActivities gibi modüler bir alt spesifikasyon kullanın. Toplu pod 'OneSignalXCFramework' bildirimi OneSignalComplete olarak çözümlenir ve konum içerir. Temiz bir prebuild sonrasında ios/Podfile.lock dosyasında ne OneSignalComplete ne de OneSignalLocation göründüğünü doğrulayın.
onesignal-expo-plugin 2.6.0’dan itibaren, eklenti props’larında tam TypeScript desteği ve otomatik tamamlama için withOneSignal’i içe aktarabilirsiniz.
app.config.ts

3. SDK’yı başlatın

Expo yapınıza bağlı olarak (Geleneksel Uygulama girişi veya Expo Router), bu seçenekleri takip ederek OneSignal’i başlatın.
App.tsx veya App.js dosyanızda OneSignal’i sağlanan yöntemlerle başlatın.YOUR_APP_ID’yi OneSignal dashboard’unuzda Settings > Keys & IDs altında bulunan OneSignal Uygulama ID’nizle değiştirin.
OneSignal uygulamasına erişiminiz yoksa, Ekip Üyelerinizden sizi davet etmelerini isteyin.
App.tsx
useCallback ile yeniden kullanılabilir dinleyiciler Dinleyicinizin props veya state’e erişmesi gerekiyorsa, useEffect dışında useCallback ile tanımlayarak ekleme ve kaldırma için aynı referansın kullanılmasını sağlayın. addEventListener ve removeEventListener’a farklı fonksiyon referansları iletmek hiçbir etki yapmaz — dinleyici kaldırılmaz ve bileşen unmount edildikten sonra bile tetiklenebilir.
Ek yapılandırma seçenekleri, daha karmaşık kurulum talimatları için OneSignal Expo Plugin GitHub repo’muzu inceleyin veya bir issue açın. SDK’larımız açık kaynaklıdır ve PR’lara açığız!

Android kurulumu

OneSignal uygulamanızın Firebase kimlik bilgileriniz kullanılarak Android platformu için yapılandırıldığından emin olun. Uygulamanızın markasıyla eşleşmesi için bildirim simgelerinizi ayarlayın. Küçük simge gereklidir. Bu adımı atlarsanız, bildirimler varsayılan bir çan simgesi gösterir. Android için derleyin Bu noktada, uygulamanızı fiziksel bir Android cihazda veya emülatörde sorunsuz bir şekilde derleyebilmeli ve çalıştırabilmelisiniz.
Android derlemenizin çalıştığını onayladıktan sonra:

iOS kurulumu

OneSignal uygulamanızın p8 Token (Önerilir) veya p12 Sertifikası kullanarak iOS platformu için yapılandırıldığından emin olun.
Bu, EAS yapılandırmanızda ayarlanan aynı kimlik bilgilerini kullanmalıdır.

iOS için build

Artık uygulamanızı gerçek bir iOS cihazında veya iOS simülatöründe (16.2+) oluşturabilmeli ve çalıştırabilmelisiniz.

Yaygın iOS build hataları

Xcode 15+ ile build yaparken bu hatayı görebilirsiniz, çünkü çapraz platform sistemlerini etkileyen varsayılan bir yapılandırma değişikliği vardır.
  1. .xcworkspace klasörünüzü Xcode’da açın ve your app target > Build Phases’e gidin.
  2. “Embed Foundation Extensions” veya “Embed App Extensions” adlı bir aşamanız olmalıdır.
  3. Bu build aşamasını “Run Script“‘in üzerine sürükleyin ve taşıyın.
  4. Uygulamanızı oluşturun ve çalıştırın. Hata çözülmüş olmalıdır.

Xcode'da Build Phases'in doğru sırası.

Copy only when installing işaretini kaldırın.

RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa"=>"...", "exceptions"=>["//", "..."], "explicitFileTypes"=>{}, "explicitFolders"=>[], "path"=>"OneSignalNotificationServiceExtension", "sourceTree"=>"<group>"}
Çözüm:
  1. Hatadaki “path” altında listelenen klasörü bulun
  2. Xcode proje kenar çubuğunda, klasöre sağ tıklayın
  3. Convert to Group’u seçin

PBXGroup için yol hatası.


Klasörü gruba dönüştürün.

iOS build’inizin çalıştığını onayladıktan sonra, OneSignal SDK entegrasyonunu test etme ile devam edin.

OneSignal SDK entegrasyonunu test etme

Bu kılavuz, push bildirimleri, abonelik kaydı ve uygulama içi mesajlaşma test ederek OneSignal SDK entegrasyonunuzun düzgün çalıştığını doğrulamanıza yardımcı olur.
Android emülatörü ile test ediyorsanız, soğuk önyükleme ile başlamalıdır.
  1. Android Studio’da Device Manager’a gidin.
  2. Emülatör cihazınızı seçin ve Edit’e tıklayın.
  3. Additional Settings veya More’a gidin.
  4. Boot option’ı Cold Boot olarak ayarlayın.
  5. Değişiklikleri kaydedin ve emülatörü yeniden başlatın.

Mobil abonelikleri kontrol edin

1

Uygulamanızı test cihazında başlatın.

Başlatma sırasında requestPermission metodunu eklediyseniz, yerel push izin istemi otomatik olarak görünmelidir.

iOS ve Android push izin istemleri

2

OneSignal panonuzu kontrol edin

İstemi kabul etmeden önce OneSignal panosunu kontrol edin:
  • Kitle > Abonelikler’e gidin.
  • “Never Subscribed” durumuna sahip yeni bir girdi görmelisiniz.

'Never Subscribed' durumuna sahip aboneliği gösteren pano

3

Uygulamaya dönün ve istemde İzin Ver'e dokunun.

4

OneSignal panosu Abonelik sayfasını yenileyin.

Aboneliğin durumu artık Abone olarak görünmelidir.

'Subscribed' durumuna sahip aboneliği gösteren pano

Başarıyla bir mobil abonelik oluşturdunuz. Mobil abonelikler, kullanıcılar uygulamanızı bir cihazda ilk kez açtığında veya uygulamanızı aynı cihazda kaldırıp yeniden yüklediklerinde oluşturulur.

Test aboneliklerini ayarlayın

Test abonelikleri, bir mesaj göndermeden önce push bildirimi test etmek için yararlıdır.
1

Test Aboneliklerine ekleyin.

Panoda, aboneliğin yanında Seçenekler (üç nokta) düğmesine tıklayın ve Test Aboneliklerine Ekle’yi seçin.

Test Aboneliklerine cihaz ekleme

2

Aboneliğinizi adlandırın.

Cihazınızı daha sonra Test Abonelikleri sekmesinde kolayca tanımlayabilmeniz için aboneliği adlandırın.
3

Test kullanıcıları segmenti oluşturun.

Kitle > Segmentler > Yeni Segment’e gidin.
4

Segmenti adlandırın.

Segmenti Test Users olarak adlandırın (ad önemlidir çünkü daha sonra kullanılacaktır).
5

Test Users filtresini ekleyin ve Create Segment'e tıklayın.

Test Users filtresi ile 'Test Users' segmenti oluşturma

Başarıyla test kullanıcıları segmenti oluşturdunuz. Artık bu bireysel cihaza ve test kullanıcı gruplarına mesaj göndermeyi test edebiliriz.

API aracılığıyla test push gönderin

1

Uygulama API Anahtarınızı ve Uygulama ID'nizi alın.

OneSignal panonuzda Ayarlar > Anahtarlar & ID’ler’e gidin.
2

Sağlanan kodu güncelleyin.

Aşağıdaki koddaki YOUR_APP_API_KEY ve YOUR_APP_ID değerlerini gerçek anahtarlarınızla değiştirin. Bu kod, daha önce oluşturduğumuz Test Users segmentini kullanır.
3

Kodu çalıştırın.

Kodu terminalinizde çalıştırın.
4

Görselleri ve onaylanmış teslimatı kontrol edin.

Tüm kurulum adımları başarıyla tamamlandıysa, test abonelikleri görsel içeren bir bildirim almalıdır:

iOS ve Android'de görsel içeren push bildirimi

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

Onaylanmış teslimatı kontrol edin.

Panonuzda Teslimat > Gönderilen Mesajlar’a gidin, ardından istatistikleri görüntülemek için mesaja tıklayın.Cihazın push’u aldığını gösteren onaylandı istatistiğini görmelisiniz.
API’miz aracılığıyla bir segmente başarıyla bildirim gönderdiniz.
  • Görsel alınamadı mı? Notification Service Extension’ınız eksik olabilir.
  • Onaylanmış teslimat yok mu? Sorun giderme kılavuzunu buradan inceleyin.
  • Sorun mu yaşıyorsunuz? API isteğini ve uygulama başlatmanın başından sonuna kadar olan günlüğü bir .txt dosyasına kopyalayıp yapıştırın. Ardından ikisini de support@onesignal.com ile paylaşın.

Uygulama içi mesaj gönderin

Uygulama içi mesajlar, kullanıcılar uygulamanızı kullanırken onlarla iletişim kurmanızı sağlar.
1

Cihazda uygulamanızı kapatın veya arka plana alın.

Bunun nedeni, kullanıcıların yeni bir oturum başlamadan önce uygulama içi kitle kriterlerini karşılaması gerektiğidir. OneSignal’da, kullanıcı uygulamanızı arka planda veya kapalı olarak en az 30 saniye geçirdikten sonra açtığında yeni bir oturum başlar. Daha fazla ayrıntı için uygulama içi mesajların nasıl görüntülendiği kılavuzumuza bakın.
2

Uygulama içi mesaj oluşturun.

  • OneSignal panonuzda Mesajlar > Uygulama İçi > Yeni Uygulama İçi’ye gidin.
  • Hoş Geldiniz mesajını bulun ve seçin.
  • Kitlenizi daha önce kullandığımız Test Users segmenti olarak ayarlayın.

Uygulama içi mesajla 'Test Users' segmentini hedefleme

3

İsterseniz mesaj içeriğini özelleştirin.

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

4

Tetikleyiciyi 'Uygulama açıldığında' olarak ayarlayın.

5

Sıklığı planlayın.

Zamanlama > Bu mesajı ne sıklıkla göstermek istiyorsunuz? altında Tetikleyici koşullar her karşılandığında’yı seçin.

Uygulama içi mesaj zamanlama seçenekleri

6

Mesajı yayınlayın.

Test Kullanıcılarınıza uygulam her açtıklarında erişilebilir olması için Mesajı Yayınla’ya tıklayın.
7

Uygulamayı açın ve mesajı görün.

Uygulama içi mesaj yayındayken, uygulamanızı açın. Şunu görmelisiniz:

Cihazlarda gösterilen Hoş Geldiniz uygulama içi mesajı

Mesajı görmüyor musunuz?
  • Yeni bir oturum başlatın
  • Hala Test Users segmentinde misiniz?
    • Uygulamayı yeniden yüklediyseniz veya cihaz değiştirdiyseniz, cihazı Test Aboneliklerine yeniden ekleyin ve Test Users segmentinin bir parçası olduğunu onaylayın.
  • Sorun mu yaşıyorsunuz?
    • Yukarıdaki adımları yeniden üretirken Hata Ayıklama Günlüğü Alma kılavuzunu izleyin. Bu, support@onesignal.com ile paylaşabileceğiniz ek günlükler oluşturacak ve ne olduğunu araştırmamıza yardımcı olacağız.
OneSignal SDK’yı başarıyla kurdunuz ve şunlar gibi önemli kavramları öğrendiniz:Uygulamanızdaki kullanıcıları tanımlamak ve ek özellikleri kurmak için bu kılavuza devam edin.

Kullanıcı tanımlama

Daha önce, mobil Abonelikler oluşturmayı gösterdik. Şimdi OneSignal SDK’yı kullanarak Kullanıcıları tüm abonelikleri (push, e-posta ve SMS dahil) üzerinden tanımlamaya genişleteceğiz. Kullanıcıları platformlar arasında birleştirmenize ve etkileşime geçirmenize yardımcı olmak için Harici ID’ler, etiketler, çok kanallı abonelikler, gizlilik ve etkinlik izleme konularını ele alacağız.

Harici ID ata

Arka ucunuzun kullanıcı tanımlayıcısını kullanarak kullanıcıları cihazlar, e-posta adresleri ve telefon numaraları arasında tutarlı bir şekilde tanımlamak için Harici ID kullanın. Bu, mesajlaşmanızın kanallar ve 3. taraf sistemler arasında birleşik kalmasını sağlar (özellikle Entegrasyonlar için önemlidir). Kullanıcılar uygulamanız tarafından her tanımlandığında SDK’mızın login metodu ile Harici ID’yi ayarlayın.
OneSignal, abonelikler (Abonelik ID) ve kullanıcılar (OneSignal ID) için benzersiz salt okunur ID’ler oluşturur.Kullanıcılar uygulamanızı farklı cihazlara indirdikçe, web sitenize abone oldukça ve/veya uygulamanızın dışında size e-posta adresleri ve telefon numaraları sağladıkça yeni abonelikler oluşturulacaktır.Nasıl oluşturulduklarına bakılmaksızın kullanıcıları tüm abonelikleri üzerinden tanımlamak için SDK’mız aracılığıyla Harici ID’yi ayarlamak şiddetle önerilir.

Veri etiketleri ekleyin

Etiketler, kullanıcı özelliklerini (username, role veya tercihler gibi) ve etkinlikleri (purchase_date, game_level veya kullanıcı etkileşimleri gibi) depolamak için kullanabileceğiniz anahtar-değer çiftleri dizgisi verisidir. Etiketler, daha gelişmiş kullanım durumlarına olanak tanıyan gelişmiş Mesaj Kişiselleştirme ve Segmentasyonu destekler. Uygulamanızda etkinlikler gerçekleştikçe SDK’mızın addTag ve addTags metotları ile etiketleri ayarlayın. Bu örnekte, kullanıcı current_level adlı etiket tarafından 6 değerine ayarlanarak tanımlanabilen 6. seviyeye ulaştı.

OneSignal'da "current_level" adlı etiketi "6" olarak ayarlanmış bir kullanıcı profili

5 ile 10 arasında seviyeye sahip kullanıcılardan oluşan bir segment oluşturabilir ve bunu hedefli ve kişiselleştirilmiş mesajlar göndermek için kullanabiliriz:

4'ten büyük ve 10'dan küçük current_level değerine sahip kullanıcıları hedefleyen bir segmenti gösteren segment editörü


Kişiselleştirilmiş mesajla Seviye 5-10 segmentini hedefleyen bir push bildirimini gösteren ekran görüntüsü


Kişiselleştirilmiş içerikle iOS ve Android cihazda alınan push bildirimi

E-posta ve/veya SMS abonelikleri ekleyin

Daha önce SDK’mızın push ve uygulama içi mesajlar göndermek için mobil abonelikler oluşturduğunu gördük. İlgili abonelikleri oluşturarak kullanıcılara e-posta ve SMS kanalları aracılığıyla da ulaşabilirsiniz. E-posta adresi ve/veya telefon numarası OneSignal uygulamasında zaten mevcutsa, SDK bunu mevcut kullanıcıya ekleyecektir, kopyalar oluşturmayacaktır. Birleştirilmiş kullanıcıları panoda Kitle > Kullanıcılar aracılığıyla veya Kullanıcıyı görüntüle API’si ile görüntüleyebilirsiniz.

Harici ID tarafından birleştirilmiş push, e-posta ve SMS aboneliklerine sahip bir kullanıcı profili

Çok kanallı iletişim için en iyi uygulamalar
  • E-posta veya SMS abonelikleri eklemeden önce açık onay alın.
  • Kullanıcılara her iletişim kanalının faydalarını açıklayın.
  • Kullanıcıların hangi kanalları tercih ettiklerini seçebilmeleri için kanal tercihleri sağlayın.

Gizlilik ve kullanıcı onayı

OneSignal’ın kullanıcı verilerini ne zaman topladığını kontrol etmek için SDK’nın onay kapısı metotlarını kullanın: Daha fazla bilgi için Gizlilik ve güvenlik dokümanlarımıza bakın:

Push izinleri için istem

Uygulama açıldığında hemen requestPermission() ç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 için istem kılavuzumuza bakın.

Push, kullanıcı ve uygulama içi etkinlikleri dinleyin

Kullanıcı eylemlerine ve durum değişikliklerine tepki vermek için SDK dinleyicilerini kullanın. SDK, bağlanabileceğiniz birkaç etkinlik dinleyicisi sağlar. Daha fazla ayrıntı için SDK referans kılavuzumuza bakın.

Push bildirimi etkinlikleri

Tam özelleştirme için Mobil Servis Uzantıları’na bakın.

Kullanıcı durumu değişiklikleri

Uygulama içi mesaj etkinlikleri

  • addClickListener(): Uygulama içi tıklama eylemlerini işleyin. Derin bağlantı veya etkinlik izleme için idealdir.
  • addLifecycleListener(): Uygulama içi mesajların tam yaşam döngüsünü izleyin (gösterildi, tıklandı, reddedildi, vb.).

Gelişmiş kurulum ve yetenekler

Entegrasyonunuzu geliştirmek için daha fazla yeteneği keşfedin:

Mobil SDK kurulumu ve referansı

Mobil push kurulumu kılavuzunu inceleyerek tüm temel özellikleri etkinleştirdiğinizden emin olun. Mevcut metotlar ve yapılandırma seçenekleri hakkında tam ayrıntılar için Mobil SDK referansı’nı ziyaret edin.
Tebrikler! Mobil SDK kurulum kılavuzunu başarıyla tamamladınız.


Gizlilik ve kullanıcı onayı

Uygulamanız veri toplamadan önce kullanıcı onayı gerektiriyorsa (ör. GDPR uyumluluğu için), onay verilene kadar OneSignal’ın veri toplamasını geciktirebilirsiniz. setConsentRequired metodunu initialize çağrısından önce çağırın.
Onay gerekli olduğunda ancak henüz verilmediğinde, SDK başlatılır ancak OneSignal’a herhangi bir veri göndermez. Kullanıcı kabul ettiğinde setConsentGiven(true) çağırın. Daha fazla ayrıntı için Kişisel Verilerin İşlenmesi sayfasına bakın.

Sorun giderme

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!