All articles
Developer Guide8 min read·

The Firebase Trap: Why building push campaigns on FCM takes longer than you think

FCM is a solid delivery pipe, not a marketing platform. What it really takes to add scheduling, analytics, and a usable campaign layer on Firebase—and why teams connect PushPilot on top of FCM or OneSignal instead.

The Firebase Trap — building marketing push campaigns on FCM versus adding a PushPilot campaign layer

If you are a full-stack developer, you've likely received this exact Jira ticket from the marketing team: "We need to send web push notifications to users for our upcoming flash sale."

At first glance, it sounds like a fun afternoon project. You set up Firebase Cloud Messaging (FCM), grab your server keys, write a quick function, and think, "Easy. I'll just blast out the messages."

But there is a massive, often overlooked difference between sending a transactional alert (like a system error) and running a promotional marketing campaign.

When marketing asks for "push notifications," what they actually want is audience segmentation, scheduled delivery, A/B testing, and open-rate analytics. Suddenly, your free FCM setup morphs into a three-week infrastructure nightmare.

Here is what it takes to build a scalable push campaign architecture on top of FCM—and why you should probably just skip that step.

Paste your app and see AI-generated push notifications in seconds.

Open the campaign builder

The Hard Way: Building the "Marketing Layer"

Firebase is fantastic for delivering messages to devices. But FCM is not a marketing platform. It has no real dashboard for non-technical users to design and schedule campaigns.

If you use raw FCM, you still have to build the entire marketing engine from scratch:

1. The Scheduling System

Marketing wants to send the Black Friday promo at exactly 9:00 AM. You now have to build:

  • A database schema to store drafted campaigns.
  • CRON jobs (using something like BullMQ or Google Cloud Scheduler) to trigger the FCM API at the exact right time.
  • Timezone handling so users in London don't get woken up at 3:00 AM by a push notification meant for Tokyo.

2. The Analytics Engine

Marketing needs to know the Click-Through Rate (CTR). FCM doesn't track this out of the box. You have to intercept the notification click in your service worker, send a ping back to your own analytics API, and build a custom dashboard to display the results.

3. The Marketing Bottleneck

Because you haven't built a full UI for them yet, the marketing team will have to ask you to run database queries or edit JSON payloads every time they want to send a new campaign. You are now officially a blocker.

Paste your app and see AI-generated push notifications in seconds.

Open the campaign builder

The Smart Way: The "One-Line" Integration

Engineers shouldn't be spending weeks building marketing dashboards and scheduling queues. Your time is better spent building your actual core product.

This is exactly why we built PushPilot.

PushPilot sits entirely on top of your existing FCM (or OneSignal) infrastructure. It acts as the missing "marketing layer." You don't need to install heavy SDKs or rebuild your notification pipe.

Here is how you integrate it into your frontend (using a standard Next.js or React setup):

Step 1: Subscribe users to a general topic

When a user opts-in on your frontend, you simply use the standard Firebase SDK to subscribe them to a broad topic, like all.

JavaScript
// standard Firebase client SDK
import { getMessaging, subscribeToTopic } from "firebase/messaging";

const messaging = getMessaging();

// When user accepts push permissions:
subscribeToTopic(messaging, 'all')
  .then(() => {
    console.log('User ready for marketing campaigns!');
  });

Step 2: Hand over the keys

Instead of building a massive backend, you simply paste your FCM Server Keys into the PushPilot dashboard.

Step 3: Get out of the way

PushPilot takes over completely. Your marketing team gets a dedicated, AI-driven dashboard where they can:

  • Write and generate campaign copy.
  • Schedule deliveries based on precise timezones.
  • View real-time CTR analytics.

You write one line of code (subscribeToTopic), and the marketing team gets a complete campaign manager.

Connect pushpilot.ai to your existing Firebase or OneSignal project, then open the campaign builder once your credentials are saved.

Paste your app and see AI-generated push notifications in seconds.

Open the campaign builder

Build vs. Connect

If you are building an internal transactional alert system (like "Here is your OTP"), raw Firebase is perfectly fine.

But if you are running marketing and promotional campaigns where delivery speed, scheduling, and analytics dictate your revenue, building that UI from scratch is an expensive trap.

Keep your FCM pipe, but offload the campaign management. Give your marketing team the tools they need, and get back to building your core product.

Want to stop building marketing tools and get back to coding? Plug your FCM keys into PushPilot.ai and start running campaigns in minutes.

Paste your app and see AI-generated push notifications in seconds.

Open the campaign builder

Try it free

Ready to automate your push notifications?

Connect Firebase or OneSignal in clicks. Describe a campaign. Wake up to fresh notifications, sent.

Start for free

More from the desk

All articles