OneSignal vs Firebase Cloud Messaging (Push Notification)

Yine her zaman ki gibi yeni bir projede bildirimler için hangi servis sağlayıcının kullanılacağı noktasında karar vermek gerekti, işte herşey böyle başladı…
 
Değerlendirmelerimi daha önce iki sağlayıcınında Mobile Notification hizmetlerini kullandığımdan ve Android vs Ios tartışmalarına mahal vermemek adına Browser Notification üzerinden gerçekleştirdim. Günün sonunda ana hedef bildirim olduğundan mobil ya da browser olmasının pek bir anlamı kalmıyor.

İnceledikten sonra ihtiyaçlarınız ve projenizin dinamikleri kapsamında kazananı kendiniz belirliyor olmalısınız. Bu durumu biraz daha açıklamak gerekirse; eğer bildirimlerin gönderimi noktasında kendi geliştirmiş olduğunuz bir uygulamayı kullanıyorsanız (satış-pazarlama/iş geliştirme biriminiz bildirimleri göndermek için servis sağlayıcıların ekranlarına girmesi gerekmiyorsa) UI’dan sunulan özellikleri dikkate almanız anlamsız olur zira o özellik UI tarafında yoksa bile siz bunu kendi uygulamanız içerisinde ilgili servisin API katmanını kullanarak mümkünse sağlayabilirsiniz.

Segmentasyon

Firebase: Analytics yeteneklerinin bir kısmını kullandığından güzel segmentasyon yapılabiliyor. Hatta Event özelliği ile belirli eventları tetiklemiş kullanıcıları hedefleyebiliyorsunuz.

OneSignal: Firebase’e göre daha az filtre seçeneğine sahip fakat altın değerinde bir filtre var; Tag filtresi ile dilediğiniz gibi key=value formatında aboneler için veriler kaydedebiliyorsunuz. Bu tagleri ==,!=,<,> vb şekilde filtrelemeyede imkan veriyor olması çok daha güzel. Bu sayede ihtiyaç duyduğunuz fakat platformda bulunmayan filtreleri oluşturabiliyorsunuz.
 
Eğer size özel segmentasyonlara ihtiyacınız olacak ise OneSignal tercih edilebilir.

Gönderim Zamanlaması

Firebase: Yalnızca tarih seçimi yaptırmakta ya da tekrarlanan bildirimler oluşturabiliyorunuz.
OneSignal: Bu konuda daha yetenekli, tarih saat seçimi yapabiliyorsunuz. Bildirimlerin gönderimini otomatik olacak şekilde optimize ettirebiliyorsunuz ve hatta abonelerin zaman dilimine göre optimize edilmesini isteyebiliyorsunuz.

Dikkat! Bildirimlerin zamana vs. yayılarak gönderimi çok önemlidir. Hiç birimiz uygulamamıza binlerce insanı aynı anda davet edip DDOS olsun istemeyiz 😊 Bu yeteneği kendini yazılımınız ile bu servis sağlayıcıların API özelliklerini kullanarak sunabilirsiniz fakat bu durumda unutmayın ki yazılım geliştirmesine ihtiyacınız olacaktır.

Bildirim Yetenekleri
 
— Test Edilebilirlik

Her iki sağlayıcıda da deneme mesajı gönderebiliyorsunuz fakat Firebase’de test edeceğiniz tokenları elle toplayıp girmeniz gerekiyor. OneSignal’da bunu UI üzerinden bu aboneleri test userlarına ekle diyebiliyorsunuz.

— Platform Yetenekleri

OneSignal: Her platforma özel yetenekleri kullanabiliyorsunuz (Örn: Chrome için Large Image gibi).

Firebase: Maalesef bu konuda bir feature göremedim.
 
— Çoklu Dil Desteği

OneSignal: Mevcut
Firebase: Yok

Taslak Oluşturma

OneSignal’da oluşturulabiliyor. Firebase’de klonlama özelliği mevcut. Attığınız mesajı bulup klonlayıp tekrar gönderebiliyorsunuz.

Otomatik Bildirim

OneSignal’da Automated feature ile belirli bir segmente giren abonelere otomatik bildirim gönderebiliyorsunuz. Firebase’de otomatik yapılabildiğine dair UI’da bir alan görmedim ama bildiğim kadarıyla Firebase Function’lar ile bu mümkün olabiliyor.

Abone Listesi

OneSignal’da abonelerinizin detaylı listesine erişebiliyorken, Firebase’de böyle bir imkan bulunmuyor.

Ortak Özellikler

Önizleme özelliği, expire time belirlenebiliyor. OneSignal’da Additional Data, Firebase’de Custom Data featureları ile notification’a ihtiyacınız olan üst bilgileri ekleyebiliyorsunuz.

Entegrasyon
 Her iki sağlayıcı için SDK’lar ve örnek kodlar mevcut o nedenle teknik bakımından ortalama aynı maliyete geldiklerini söyleyebilirim. API yetenekleri sundukları özelliklerle hemen hemen aynı imkanları sunuyor. O nedenle bu konu üzerinde çok fazla durmuyorum 😊

Ücretlendirme

Bildirim gönderme noktasında her iki sağlayıcıda da Free planlarında bir kısıtlama bulunmuyor.
 
Ayrıntılı Bilgi: onesignal.com/pricing, firebase.google.com/pricing