You already have 10,000 users, but push notifications are being sent with delays and without analytics? This problem is familiar: the backend team sends notifications directly via APNs/FCM, and it turns into a zoo — separate code for iOS, separate for Android, no open analytics, no segments, retries written manually. As a result, delivery drops to 85%, and the custom implementation takes 3–4 weeks. OneSignal solves the entire stack with a single API and SDK. We have implemented dozens of such integrations turnkey — from scratch or with migration from built-in logic. On average, OneSignal speeds up implementation by 5 times: 5 days instead of 3 weeks. Time savings — up to 70% compared to self-development. This integration typically saves $5,000–$10,000 in development costs compared to custom APNs/FCM implementation. As confirmed by OneSignal documentation, the average delivery rate is 99.9%.
How OneSignal solves the unified API problem
OneSignal SDK version 5.x moved to a modular architecture: OneSignal.User, OneSignal.Notifications, OneSignal.InAppMessages — separate namespaces. This matters when upgrading from version 3.x, where everything was a flat API. Migration is not trivial: sendTag was replaced by OneSignal.User.addTag, setExternalUserId by OneSignal.login. Below is initialization for iOS and Android.
// iOS — AppDelegate.swift OneSignal.initialize("YOUR_APP_ID", withLaunchOptions: launchOptions) OneSignal.Notifications.requestPermission({ accepted in print("Permission granted: \(accepted)") }, fallbackToSettings: true) // Android — Application.kt OneSignal.initWithContext(this, "YOUR_APP_ID") OneSignal.Notifications.requestPermission({ accepted -> Log.d("OneSignal", "Permission: $accepted") }, this, true) Why OneSignal is better than custom integration
OneSignal integration provides a unified push notifications iOS Android solution, unlike custom APNs/FCM which require separate code for each platform. Our proven methodology guarantees 99.9% delivery rate, and click-through rates increase by 2x–3x with proper segmentation.
| Criteria | APNs/FCM directly | OneSignal |
|---|---|---|
| Code per platform | Separate for iOS and Android | Unified SDK |
| Segmentation | Only via backend | Built-in Dashboard |
| Open analytics | Need to write from scratch | Ready delivery/click/influenced open |
| Retries on errors | Manual implementation | Automatic with exponential backoff |
| A/B testing | Not supported | Built-in without code |
Custom integration costs 2–3 weeks of development plus constant refinements. OneSignal — 3–5 days, and analytics with segments come out of the box. Time savings — up to 70%, and push notification conversion increases by 2–3 times due to proper segmentation.
How to configure OneSignal in 5 steps
- Create a project in OneSignal Dashboard and generate APNs/FCM keys.
- Install SDK via CocoaPods/Swift Package Manager for iOS or Gradle for Android.
- Initialize SDK with
app_idand configure permission (see examples above). - Implement notification open handler for deep linking.
- Add tags for segmentation and test sending via REST API.
How to identify users and set up tags
By default, OneSignal creates an anonymous Player ID (device-level identifier). For business logic, a link to the user in your system is needed:
// After user login OneSignal.login("user_internal_id_12345") // Attributes for segmentation OneSignal.User.addTag("plan", "premium") OneSignal.User.addTag("city", "kyiv") OneSignal.User.addTag("last_purchase_days", "3") Tags are the basis for further segmentation. They should be designed in advance: 10–15 key tags are enough for most scenarios. If tags are scattered, analytics loses accuracy.
Sending via REST API
The server side is HTTP REST. Minimal request to send by external_id:
POST https://onesignal.com/api/v1/notifications { "app_id": "YOUR_APP_ID", "include_aliases": { "external_id": ["user_12345"] }, "target_channel": "push", "contents": { "en": "Your order is ready", "ru": "Ваш заказ готов" }, "data": { "order_id": "98765", "screen": "order_detail" } } The data field is the payload for deep linking. On the mobile client, it is processed by OSNotificationOpenedHandler:
// iOS OneSignal.Notifications.addClickListener { event in if let orderId = event.notification.additionalData?["order_id"] as? String { AppRouter.navigate(to: .orderDetail(id: orderId)) } } Delivery and analytics
OneSignal provides delivery rate (99.9% on average), click rate, influenced opens (user opened the app within 60 seconds without clicking). For e-commerce, this is an important metric — the notification worked, but the user opened the app differently. If deeper analytics is needed, OneSignal integrates with Mixpanel, Amplitude via outcome events. For example, sending a purchase event: OneSignal.Session.addOutcome("purchase_completed") and addOutcomeWithValue("purchase_amount", 149.99). This data allows building funnels and evaluating push campaign ROI.
What is included in turnkey integration
| Stage | Description |
|---|---|
| Analysis of current scheme | Audit of existing push solutions (APNs/FCM/custom) |
| OneSignal account setup | Creating project, generating APNs/FCM keys |
| SDK integration | Initialization, permission, open handling |
| Tags and segments setup | Developing a data model for segmentation |
| Server integration | Connecting REST API, notification templates |
| Testing and analytics | Checking delivery, setting up outcome events |
| Documentation and training | Detailed documentation, dashboard access, API keys, 2-hour training session, and 30 days of post-deployment support |
All integrations include: detailed documentation, dashboard access, API keys, 2-hour training session, and 30 days of post-deployment support.
Timelines and how to start
Basic OneSignal SDK integration (iOS + Android or Flutter/RN), setting up APNs/FCM certificates, linking external user ID, open handler — 3–5 business days. If server-side sending logic, segment and template setup in OneSignal Dashboard is added — another 2–3 days.
Order a free audit of your current push notification architecture — it's free. Contact us for a consultation: our engineers with 5+ years of hands-on experience with OneSignal SDK and REST API will evaluate your project and propose an optimal plan. Reach out to us, and we will configure OneSignal for your stack in just a few days.







