If you want to notify users on their device or in their browser, you’ll need a push notification provider. These are platforms or services designed to facilitate the delivery and management of real-time alerts to users across various devices and platforms.
Here, we’re looking at the top push notification providers you may want to use to integrate this functionality into your product, evaluating their features, pros, cons, and pricing.
A note on APNs and FCM
Apple Push Notification service (APNs) and Google Firebase Cloud Messaging (FCM) are the native services that Apple and Google provide third parties to send push notifications to iOS and Android devices.
In this post, we’re reviewing the services that abstract away the complexities of dealing directly with these native services. For that reason, we won’t be covering APNs directly. But FCM on the other hand is a funny service from Google, yes, it acts as the interface to send Android push notifications, but it also has abstractions for web push and APNs, so we’ve kept it in our review.
The top five push notification providers in 2023
- Amazon SNS. Amazon SNS offers a reliable and scalable solution to send notifications across mobile devices and distributed systems within the AWS ecosystem.
- Expo. Expo streamlines the push notification process for React Native developers, offering a unified approach for both iOS and Android.
- Pusher Beams. Pusher Beams delivers transactional notifications with a developer-friendly approach, ensuring individual users receive timely and relevant alerts.
- PubNub. Beyond real-time messaging, PubNub provides a platform for push notifications, catering to many use cases, from chat apps to IoT device alerts.
- FCM (Firebase Cloud Messaging). FCM, a free offering from Google, allows developers to send rich, targeted notifications to Android, iOS, and web applications.
What Features Push Notification Providers Need
A great transactional push notification provider will need several essential qualities.
- Reliability. They need to ensure that notifications are delivered consistently without delays or failures.
- Scalability. Can handle both small and large volumes of notifications without performance degradation.
- Rich content support. Allows for including images or custom data payloads to make notifications more engaging.
- Platform support. Offers cross-platform support for various devices and operating systems.
- Customizability. Allows developers to customize notification appearance, behavior, and user interactions.
- Cost. Offers competitive pricing, with plans that can scale with the needs of the business.
A provider that has these features will deliver a positive experience for both developers and end-users. Let’s go through each provider to see how they stack up.
Amazon SNS (Simple Notification Service) is a notification service offered by AWS. Designed to provide developers with a mechanism to send messages and notifications to distributed systems, applications, and users, SNS isn’t just for push notifications, it also supports SMS, email, and application endpoints.
Users include NASA, FC Barcelona, and PlayOn! Sports.
Amazon SNS Features
- Cross-platform support. Amazon SNS integrates with all major platforms so that you can send notifications to iOS, Android, Windows, and Baidu.
- Topic-based publishing. Allows grouping of multiple recipients using topics. This means you can send push notifications easily to just a subset of users to increase efficiency.
- High throughput. As the AWS system supports it, SNS is designed to deliver a high number of messages with low latency.
- Highly scalable. Built on AWS infrastructure, it's designed to scale automatically.
- Reliability. Offers a high durability rate, given the robustness of Amazon's infrastructure.
- Tight integration with AWS. SNS is deeply integrated with other AWS services, offering a seamless experience.
- Secure. Supports AWS Identity and Access Management (IAM) for access control and AWS Key Management Service (KMS) for message encryption.
- Complex setup. New users to the AWS ecosystem might find the setup process involved.
- Overhead. If you only use SNS for push notifications, it offers more features than necessary, introducing potential overhead.
Amazon SNS Pricing
The Amazon SNS pricing for push notifications gives you 1 million notifications for free before you start paying $0.50 per million notifications. However, if you use push notifications via SNS, you are likely using other service components, all of which are charged separately. So, you must consider the total cost of using the entire Amazon SNS ecosystem.
Expo is a framework and platform for building React Native applications. One of Expo’s standout features is the ability to send push notifications with minimal setup, but it is much more than a notification provider. It offers tools and services that eliminate the need for developers to deal with natively coding iOS or Android applications, enabling faster prototyping and deployment.
Users include Brex, Front, and Cameo.
- Simplified integration. It is directly integrated with the Expo SDK, requiring minimal setup for basic notifications.
- Cross-platform. Handles APNs (for iOS) and FCM (for Android) under the hood and supports both iOS and Android with a single, unified API.
- Payload. You send a simple JSON format with fields for title, body, data, and so on for each notification.
- Rich content. The Expo JSON format supports sounds, badges, and other notification options.
- Receipts. Expo provides push receipts to check the status of sent notifications.
- Linking. As part of the Expo tooling, you can take advantage of the ability to deep link into specific parts of the application from the notification.
- Ease of use. One of the simplest ways to set up push notifications for React Native developers.
- No native code. Removes the need to write or maintain any platform-specific code.
- Unified API. A single API for both iOS and Android simplifies development and maintenance.
- Free. Expo's push notification service is free to use (if you are using Expo).
- Expo dependency. Relying on Expo's servers means if they have downtime, your push capability might be affected.
- Limited customization. Advanced customization possible with platform-specific APIs (like FCM for Android or APNS for iOS) might be restricted.
- Migrating complexity. If you decide to move on from Expo for more flexibility, integrating push notifications will require a different approach.
- Scalability concerns. For very high volumes, developers might want more control or have concerns about relying entirely on Expo's infrastructure.
- No web support. Expo's push notification system is geared towards mobile applications and does not support web notifications.
- Only works with React Native. You’ll need to be building a React Native application for Expo and it’s dependencies to work, as their service is tied to that ecosystem.
Push notifications are free as part of Expo’s pricing model. Instead, developers pay either per build or to use the entire platform. You can sign up for the Production level pricing at $99/month or the Enterprise level pricing at $999/month.
If you are using Knock, here’s how to send push notifications with Expo.
Pusher Beams is the Pusher product focused on delivering push notifications (we covered Pusher Channels when talking about real-time messaging services). Designed to ensure that individual users receive timely and contextually relevant notifications, Pusher Beams emphasizes developer experience and user-centricity.
Users include Buffer, DataDog, and GitHub.
Pusher Beams Features
- Cross-platform support. Delivers notifications to iOS, Android, and web platforms.
- SDK integration. Pusher Beams provides several SDKs for different languages and client SDKs for iOS and Android.
- Interest-based filtering. Using device interests, developers can group users based on interests for targeted notifications.
- End-to-end encryption. Ensures data privacy from the server to the device.
- Detailed delivery and open tracking. Insights allow developers to see delivery and acknowledgment rates and user interactions.
- Scalable Infrastructure. They are designed to handle large volumes of notifications.
- User privacy. By design, Beams does not require you to share private user data.
- Easy integration. With its SDKs and clear documentation, integrating Beams is relatively straightforward.
- Reliability. Leveraging Pusher's infrastructure ensures a high rate of message delivery.
- Rich insights. The tracking features provide actionable insights into user engagement and notification performance.
- Cost. While there's a free tier, higher volumes of notifications come with associated costs.
- Reliance on other platforms. Beams still relies on underlying platforms like APNS and FCM for final message delivery.
Pusher Beams Pricing
Pusher Beams has the most complicated pricing model out of all the options on this list.
- The free Sandbox tier allows you to send push notifications to 1,000 subscribers.
- The $29/month Startup tier allows you to send push notifications to 10,000 subscribers.
- The $99/month Pro tier allows you to send push notifications to 50,000 subscribers.
- The $199/month Business tier allows you to send push notifications to 115,000 subscribers.
- The $23999/month Premium tier allows you to send push notifications to 250,000 subscribers.
PubNub, like Pusher, offers more than just push notifications. It is a comprehensive real-time messaging platform. It uses a globally distributed edge network to ensure low-latency, reliable messaging regardless of scale or user location. It also comes with robust SDKs for numerous platforms and languages.
Users include RingCentral, Niantic, and Kustomer.
- Cross-platform support. Delivers push notifications to iOS, Android, and web platforms.
- Real-time messaging integration. Integrates push notifications with PubNub’s core real-time messaging service.
- Topic & channel-based. Leverages PubNub channels to send push notifications to specific topic subscribers.
- Payload customization. Flexible message payloads that can include custom data.
- Platform integrations. Directly integrates with APNS and FCM for delivering notifications.
- Analytics. Provides insights into message delivery and user engagement.
- Integrated solution. Combines the power of real-time messaging with push notifications.
- Reliable. It is built on a globally distributed network, ensuring low latency and consistent delivery.
- Ease of use. With SDKs in various languages, integrating PubNub is straightforward.
- Scalability. Capable of handling vast numbers of messages and notifications without degradation in performance.
- High customizability. Offers flexibility in message content, user targeting, and delivery options.
- Cost. Unlike some other providers that offer free push notifications, PubNub's services will eventually cost as you scale.
- Overhead. If you’re only looking for push notifications and not real-time messaging, PubNub might offer more features than needed.
- Learning curve. For developers new to PubNub, understanding channels and other concepts might take some time.
- Documentation. While extensive, some users need help navigating the documentation.
PubNub pricing includes push notification transactions in PubNub’s Monthly Active Users (MAU) pricing model. This makes push notifications free when you have up to either 200 MAUs or 1M total transactions per month.
Beyond that, you move to the $49/month tier with up to 1000 MAUs and 3000 transactions per MAU. If you scale beyond those numbers, you can contact them for custom pricing. Note that on the free tier, push notifications are rate-limited.
Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) is Google's solution for sending push notifications and in-app messages to users. A successor to Google Cloud Messaging (GCM), FCM offers a way to deliver messages to Android, iOS, and web applications at no cost.
- Cross-Platform Support. Delivers notifications to Android, iOS, and web applications.
- Topic subscription. Topic messaging allows users to subscribe to specific topics, facilitating easier segmentation.
- Upstream messaging. Mobile apps can send messages back to the server with upstream messaging.
- Rich media support. Ability to send images in notifications.
- High priority and normal priority options. Developers can prioritize messages based on importance, where high priority messages can even wake a sleeping device.
- Analytics integration. Integrates with Firebase Analytics to provide detailed insights.
- A/B testing. Allows developers to test different notification strategies on subsets of users.
- Free. There is no additional cost for using FCM's push notification capabilities.
- Scalable. Can handle both small and large volumes of notifications without performance degradation.
- Reliability. It is built on Google's infrastructure, ensuring consistent message delivery.
- Easy integration. Simplified SDKs and extensive documentation make integration straightforward.
- Advanced targeting. Supports user segmentation, topic-based, and conditional targeting.
- Server SDKs. Offers server SDKs in multiple languages, facilitating backend integration.
- Limited customization for iOS. While FCM supports iOS, some features and customizations might be more limited than native APNS.
- Payload limitations. It has a limited 4kb payload size, which can be restrictive for some use cases.
- Complex console UI. Some users find the Firebase Console UI and Notifications composer complex, especially when managing multiple features or apps.
It is free, though if you are using other parts of the Google ecosystem, you might have to pay for those.
If you are using Knock, here’s how to send push notifications with FCM.
Adding Push Notifications Using Knock
The best option depends on your specific requirements. For instance, if you're building a React Native app with Expo, the built-in Expo notifications might be the most seamless. On the other hand, if you're looking for more advanced features or integrations with other services, Amazon SNS or Firebase Cloud Messaging might be better suited.
However, adding push notifications is an excellent opportunity to enhance user engagement, provide timely updates, and drive retention within your application. You can integrate APNS or FCM yourself, but you end up mired in certificates as multiple SDKs to send just your push notifications without even considering how they integrate with your other notification channels. Knock can help by managing all your notification infrastructure in a single place.
Knock is a developer tool for building cross-channel notification systems. With Knock, you can create complex cross-channel notifications for your product without writing complex notification code yourself. You call Knock's API, and you can send notifications to in-app and out-of-app channels such as email, push, SMS, and Slack.
Knock integrates seamlessly with Expo, FCM, and APNS. Knock takes care of all retry and delivery logic, batching (collapsing multiple notifications about a single topic into one), and managing per-user notification preferences.