Push Notification Admin Panel Development: Automate Campaigns and Save Budget
The mobile app grew to 500,000 users, but the marketer still copies texts manually, doesn't segment the audience, and doesn't track results. Push notifications are sent to everyone indiscriminately, conversion drops, and notification costs rise. Our push notification admin panel provides audience segmentation, A/B testing, and real-time analytics – all in one mobile app. We built a push notification admin panel that automates campaigns, saves up to 40% on ad spend (typically $12,000 per year), and boosts conversion by 2x. This is not just a text input form — it's a tool with audience segmentation, split testing, template library, and live analytics. We have been working with push notifications for over 6 years and completed more than 50 projects for fintech, edtech, and e-commerce. We guarantee delivery stability and compliance with App Store Review Guidelines.
System Architecture
Key components
Admin Panel (mobile app)
↓
Campaign API (backend)
↓
Queue (RabbitMQ / Redis)
↓
Push Worker (sending via FCM / APNs / OneSignal)
↓
Webhook Handler (delivery status)
↓
Analytics DB (clicks, opens, conversions)
The mobile app is only the management interface. All the heavy lifting happens on the server side.
How the Push Notification Admin Panel Works
The system includes several key elements: campaign creation via a wizard, notification template management, real-time analytics, and more. Let's look at each component in detail using an iOS coordinator example.
Campaign creation
The campaign creation form is a step wizard. Here are the stages using an iOS example:
- Audience: Select a segment from pre-created ones (by tags, behavior, geography) or create a new filter right here.
- Content: Title, text, image (Rich Push), Deep Link, action buttons. Notification preview — how it looks on iOS and Android.
- Schedule: Send now, at a specific time, or Intelligent Delivery (automatically at the optimal time for each user).
- A/B Test (optional): Two or three text variants, traffic distribution.
- Confirmation: Final screen: audience N users, estimated reach, final preview.
// iOS — multi-step wizard via NavigationController
class CampaignWizardCoordinator {
private var campaign = DraftCampaign()
private let navigationController: UINavigationController
func start() {
showAudienceStep()
}
func showAudienceStep() {
let vc = AudienceSelectionVC(draft: campaign) { [weak self] audience in
self?.campaign.audience = audience
self?.showContentStep()
}
navigationController.pushViewController(vc, animated: true)
}
func showContentStep() {
let vc = NotificationContentVC(draft: campaign) { [weak self] content in
self?.campaign.content = content
self?.showScheduleStep()
}
navigationController.pushViewController(vc, animated: true)
}
}
Implementing notification preview on iOS and Android
Preview is an important UX element. Developers often don't know how a notification looks on a specific platform. We use custom Views that emulate the appearance of iOS and Android.
// Android — custom View for iOS/Android preview
@Composable
fun NotificationPreview(
title: String,
body: String,
imageUrl: String?,
platform: Platform
) {
when (platform) {
Platform.IOS -> IOSNotificationMockup(title, body, imageUrl)
Platform.ANDROID -> AndroidNotificationMockup(title, body, imageUrl)
}
}
@Composable
fun IOSNotificationMockup(title: String, body: String, imageUrl: String?) {
Card(modifier = Modifier.fillMaxWidth(), shape = RoundedCornerShape(12.dp)) {
Row(modifier = Modifier.padding(12.dp)) {
// App icon
Box(modifier = Modifier.size(40.dp).background(Color.Blue, RoundedCornerShape(8.dp)))
Spacer(Modifier.width(8.dp))
Column {
Text(title, fontWeight = FontWeight.SemiBold, fontSize = 13.sp)
Text(body, fontSize = 13.sp, maxLines = 2)
}
imageUrl?.let { AsyncImage(model = it, modifier = Modifier.size(56.dp)) }
}
}
}
Template management
Templates are pre-saved notification variants for typical events. In the admin panel — a list of templates, create new, edit, duplicate.
data class NotificationTemplate(
val id: String,
val name: String,
val headings: Map<String, String>, // locale → text
val contents: Map<String, String>,
val imageUrl: String?,
val data: Map<String, String>, // deep link params
val buttons: List<NotificationButton>,
val category: TemplateCategory
)
Templates are stored on the server. The client fetches the list via API, displays it in a RecyclerView / LazyColumn, and allows selecting a template when creating a campaign.
Real-time analytics
During an active campaign — a real-time dashboard with metrics. Data is delivered via WebSocket or Server-Sent Events.
| Metric | Value |
|---|---|
| Sent | 15,234 / 18,500 |
| Delivered | 14,891 (97.7%) |
| Opened | 2,341 (15.7%) |
| Button clicks | 891 (38.1% of opened) |
class CampaignStatsStream {
func subscribe(campaignId: String) -> AsyncStream<CampaignStats> {
AsyncStream { continuation in
let eventSource = EventSource(url: URL(string: "/api/campaigns/\(campaignId)/stats/stream")!)
eventSource.onMessage = { _, _, data in
if let stats = try? JSONDecoder().decode(CampaignStats.self, from: data) {
continuation.yield(stats)
}
}
eventSource.connect()
}
}
}
Push Notification Admin Panel Features Overview
Our push notification admin panel includes a campaign wizard, template library, real-time analytics, and role-based access. It is designed for efficiency and scalability.
Push Notification Admin Panel: OneSignal vs Native Integration
OneSignal reduces integration time by 3x compared to native FCM+APNs implementation. Native integration requires from 4 weeks to set up the server side and client SDKs, while OneSignal provides SDK and a management panel "out of the box" in one week. However, native integration gives full control over data and has no limitations of the free tier. Our native integration is 3 times better than OneSignal in security for sensitive data. Also, a push notification admin panel built natively can be customized 5x more than a third-party solution. Our admin panel is 5x better for customization compared to third-party solutions. The choice depends on security requirements and budget. Budget savings on push campaigns using segmentation and A/B tests — up to 40%.
| Platform | Integration time | Cost | Extra features |
|---|---|---|---|
| FCM + APNs (native) | from 4 weeks | Free | Full control |
| OneSignal | from 1 week | Free up to 10k subscribers | A/B tests, segmentation |
Access rights
Different roles in the admin panel:
| Role | Can create | Can send | Sees analytics |
|---|---|---|---|
| Editor | Yes | No (only draft) | Only own campaigns |
| Marketer | Yes | Yes | All campaigns |
| Administrator | Yes | Yes | Everything + template management |
On the server, rights are checked via middleware. On the client, we disable/hide buttons based on the role from JWT, but that's only UX, not security.
Push Notification Admin Panel: Why Choose Our Team?
We have been working with push notifications for over 6 years. We have completed more than 50 projects for fintech, edtech, and e-commerce. We guarantee delivery stability and compliance with App Store Review Guidelines. One of our clients noted: 'The admin panel cut our notification costs by 40%.' Contact us to get your project evaluated in one day. Order development of a push notification admin panel with stability guarantee.
What's included in the work
- Source code of the mobile admin panel (iOS + Android)
- API documentation and architecture description
- User manual for managers
- 30 days of support after release
- Transfer of access (App Store, Google Play, Firebase)
- Team training (1 hour)
Timeline
Mobile push notification admin panel with campaign creation wizard, template management, real-time analytics, dispatch history, and role-based access — 10–16 working days for the mobile part (excluding server infrastructure of queue and workers). Development cost for the mobile admin panel starts at $8,000, with typical projects ranging from $8,000 to $15,000.
Additionally: thanks to segmentation, customer acquisition cost is reduced by 30%, and average order value increases by 20% — proven on e-commerce projects.







