OneSignal vs Firebase: Which One Fits Your Retention Strategy
Every time a team asks us why pay for OneSignal when Firebase is free, it's the same conversation. Firebase sends messages. OneSignal is built to retain. Here's the real difference, axis by axis.
Every time we evaluate a retention stack with a team, the same question comes up: "why pay for OneSignal if Firebase is free?"
It's a fair question. And the short answer is: it depends on what you're actually trying to solve.
Firebase Cloud Messaging isn't a competitor to OneSignal. It's a piece of infrastructure.
FCM sends push notifications to mobile apps and websites, for free, with no volume limit. That's where it stops. It delivers messages. It doesn't run an engagement strategy.
There's no visual campaign builder. Segmentation is limited to basic topics, with no behavioral layers. There's no personalization based on user activity. And if you want to build automated journeys or measure conversion against a business goal, you have to build it yourself, usually combining Cloud Functions, BigQuery, and some internal dashboard. Firebase doesn't charge you for that. But someone on your team has to maintain it.
OneSignal is built for the opposite: retention, not just sending
OneSignal centralizes mobile push, web push, in-app, email, SMS, RCS, and Live Activities in a single account.
That changes the problem you're solving. Instead of sending one-off notifications, you're orchestrating a conversation with a user across multiple channels.
Three things we see over and over when a team migrates from FCM to OneSignal:
1) Segmentation stops being static
→ it's built with data tags based on real behavior, not fixed topics loaded once
2) Personalization triggers on activity
→ intelligent delivery sends each message at the moment that specific user is most likely to open it, not at a fixed time for the whole base
3) A/B testing stops being a workaround
→ it's native, not two audiences built by hand to compare
And the biggest difference is in how you measure success. FCM tells you if the message was sent, and with extra setup, if it was opened. OneSignal measures custom outcomes: you define a business event (a purchase, an activation, an upgrade) and see which campaign, journey, or copy actually moved that number.
That's the difference between sending messages and running a retention strategy.
Journeys: the biggest differentiator
Of everything that separates the two tools, this is what matters most.
A journey in OneSignal is an automated flow that reacts to what a user does (or doesn't do), and moves them through multiple steps and channels without anyone having to hit "send" each time.
Here's how it works in practice:
1) You define the trigger
→ an event (opened the app, added something to cart, hasn't opened in 3 days), not a fixed schedule
2) You define the condition
→ if it meets a certain attribute or action, it goes down one branch. If not, another
3) You add a delay if needed
→ wait 2 hours before the second message, for example, with nobody triggering it by hand
4) You pick the channel per step
→ push first, if not opened within 24h, email. If still not, SMS. All inside the same journey
5) You set a goal
→ you define which conversion event closes the journey, and that's where you see if the whole flow worked, not just whether each single message got opened
All of this is built with a visual builder. Someone in marketing or product can build it without filing a ticket to engineering.
None of this exists in Firebase. FCM has no concept of a journey. If you want that same flow (trigger → condition → delay → channel → goal) you have to build it yourself: a Cloud Function listening for the event, state stored in Firestore to track which step each user is on, another function checking the delay, and custom logic to decide the channel and track whether the goal was met. It's entirely possible. But it's an engineering project, not a configuration.
And that's the real problem underneath: in OneSignal, iterating on a journey (adding a step, changing a delay, adding a branch) is a change you make in minutes. In Firebase, every iteration goes through the same development cycle again. When your retention operation depends on testing and adjusting fast, that speed difference is the business.
The comparison, axis by axis
Channels. FCM covers mobile and web push, with limited in-app. OneSignal adds email, SMS, RCS, and Live Activities on top of the same channels, all from the same segmentation.
Segmentation and personalization. FCM segments by topics and needs custom development for anything more granular. OneSignal builds dynamic audiences by behavior, without touching code.
Experimentation and analytics. FCM gives you send, open, and click. You build the rest yourself. OneSignal brings native A/B testing and outcome tracking toward whatever conversion event you define.
Pricing. FCM is free to send, but data storage and analytics sit on other Google Cloud services that do charge by usage. If your campaign sends images, hosting on Firebase runs $0.15 per GB, which adds up at scale. OneSignal has a free plan with unlimited mobile push, up to 10,000 web subscribers, and 10,000 emails a month, with paid plans starting at $9/month that already include advanced segmentation, journeys, and A/B testing.
Implementation effort. With FCM, any segmentation change or new test goes through engineering. With OneSignal, marketing and product run the tool without asking development for anything day to day. And on the technical side, support isn't lacking either: OneSignal has server-side SDKs (C++, Go, Java, Node, PHP, Python, Ruby, Rust), cross-platform (Cordova, Flutter, Unity, Xamarin, React Native), and web (Angular, React, Rails, WordPress, Vue), so integrating it doesn't depend on the stack you already have.
Scale and reliability. This isn't a minor detail if you're considering moving your whole retention operation to one tool. OneSignal hit a throughput of over 850,000 notifications per second, roughly 4 billion pushes a day, with its database scaled to 75 terabytes across nearly 40 servers. It's a G2 Leader for ease of implementation, with over 2 million active accounts on the platform. It's not a small tool playing at being big.
What Firebase does better (and why it doesn't matter here)
To be fair: if you compare feature by feature on realtime infrastructure, Firebase wins several categories. It has native pub/sub, you can build chat with typing indicators and read receipts, state sync across devices, online presence, all running on Google's Realtime Database. OneSignal does none of that. It's not pub/sub, it's not chat, it doesn't sync state.
The reason is simple: OneSignal never set out to be a generic realtime backend. It's a multichannel customer engagement platform. If you need to build a live chat or sync a shopping cart's state across tabs, Firebase (or something like Ably) is the right tool. If you need to retain users with messages that land on the right channel at the right time, it isn't.
Comparing both tools on those axes is like comparing a CRM to a database. Technically, both "store customer information." They solve different problems.
Security and compliance. For teams working with fintech or any regulated vertical (fairly common across the projects we see in LatAm), this matters: OneSignal has SOC 2 Type II, HIPAA, GDPR, CCPA, and Data Privacy Framework. Firebase covers GDPR, CCPA, ISO 27001, and SOC 1/2/3. Neither guarantees exactly-once delivery or guaranteed message ordering, so that's not a real differentiator between the two.
When Firebase is still a valid option
If your app sends simple pushes, with no retention strategy behind them, and you have someone in engineering with time to maintain everything by hand inside Google Cloud, FCM does the job. It's free and doesn't need to justify itself to anyone.
The problem shows up when the operation grows: more journeys, more copies to test, more channels, more need for someone outside engineering to make decisions without waiting on a sprint.
The question that actually matters
It's not which tool is better in the abstract. It's what you're trying to build.
If you need a multichannel retention strategy, centralizing every channel in one place, and using that tool not just to send messages but to run experiments and move the business's core metrics, there isn't much to debate: you need OneSignal. It's built to personalize messages based on activity and send them when they'll get the highest open rate and conversion, and to measure that conversion against a real event.
Just like almost every tech team has an acquisition team, serious teams also have a retention team.
Do you already have one, or are you still sending one-off pushes?
If you want to evaluate OneSignal, email me at guido@bildungdata.com and we'll help you set it up.

