Skip to main content
Push notifications re-engage Users when they’re not actively using your app. They can display text and rich content like images, buttons, and sounds.
iOS and Android mobile push notification examples showing rich content
For push to work on mobile:
  • Users must have your mobile app installed
  • You must configure the correct platform credentials (FCM for Android, APNs for iOS, HMS for Huawei, ADM for Amazon)
  • Users must grant permission to receive notifications
This guide walks through every step from SDK setup to sending personalized push messages.

SDK setup and migration

Integrate the OneSignal SDK into your app to register devices and enable push messaging. If you’re migrating from another provider, OneSignal supports migration from Firebase, Airship, Braze, and others.

Mobile SDK setup

Integrate the OneSignal SDK into your app to register devices and enable push messaging.

Migration from another provider

Migrate from Firebase, Airship, Braze, or other push providers.

Push permission prompts

Mobile platforms require Users to opt in before they can receive push notifications. Apple’s Human Interface Guidelines recommend describing what types of information you want to send and giving Users a clear way to opt in or out. You can build a pre-permission prompt using OneSignal’s in-app messages to explain the value before triggering the system prompt.
OneSignal in-app message used as a pre-permission prompt for push notifications

Prompt for push permissions

Build a custom pre-permission prompt using in-app messages.

Mobile SDK reference

Programmatically trigger permission requests in the SDK.

iOS provisional push

Show silent notifications in the notification center before prompting.

Users and Subscriptions

Once the SDK is active, OneSignal automatically creates User and Subscription records as people open your app. Mobile Subscriptions are created when Users:
  • Open the app for the first time on a device
  • Uninstall and reinstall the app, then open it again
Each device creates a separate Subscription. Subscriptions remain anonymous until you assign them an External ID via OneSignal.login.
OneSignal dashboard Users page showing a list of Users with Subscription details

Users

Manage Users, assign External IDs, and understand anonymous vs. identified Users.

Subscriptions

How Subscriptions are created and managed across devices and channels.

Segments

Group Users into dynamic segments for targeted messaging.

Design push notifications

Crafting effective push notifications involves more than text. Watch how to make every push notification count, then explore the design elements below.
Annotated diagram showing the anatomy of iOS and Android push notifications
  1. Title: Attention-grabbing headline (recommended: under 50 characters)
  2. Message: Main notification content (recommended: under 120 characters)
  3. Icons: Your brand icon or notification-specific image
  4. Large image: Eye-catching visual content
  5. Action buttons: Call-to-action buttons
  6. Timestamp when push was received
  7. App name: The name of your app

Push overview

Full overview of push notification creation, options, and delivery behavior.

Templates

Save time with reusable templates for consistent messaging.

Personalization and localization

Watch how to turn generic push notifications into high-performing messages, then explore the personalization options below.

Message personalization

Insert dynamic variables like name or preferences to tailor messages.

Multi-language messaging

Automatically deliver messages in each User’s preferred language.

Configure push behavior

Control how notifications behave after delivery, including timing, display settings, and User interactions.

Delivery, display, and dismiss settings

Throttling

Control notification delivery speed for large audiences.

Frequency capping

Set limits to prevent over-sending notifications to the same User.

Time to live (TTL)

Define how long push services retain messages when the device is offline.

Collapse ID

Replace previous messages with newer ones to reduce notification clutter.

Android notification categories

Control importance level (banner, silent) and other display aspects.

iOS focus modes and interruption levels

Control priority level (passive, time-sensitive) for iOS.

Notification sounds

Configure notification audio for each platform.

Badges

Manage app icon badge count behavior on iOS.

Data and background notifications

Include custom data in push payloads that your app can handle without displaying a visible notification.

Data and background notifications

Send custom payloads without a visual notification.

Additional data

Attach key-value data to push payloads for in-app handling.

Click behavior and deep linking

Control what happens when a User taps a notification.

URLs, links, and deep linking

Route Users to relevant content or pages using deep links and tracking URLs.

Deep linking

Platform-specific deep linking implementation details.

Action buttons

Let Users take immediate actions from your notification.

Notification event observers

Listen for click events and trigger in-app behavior with custom code.

Analytics and troubleshooting

Measure notification performance and resolve common delivery issues.

Push message reports

View delivery, open rate, and click-through metrics for each message.

Analytics overview

Explore engagement and User behavior metrics across channels.

Notifications not shown or delayed

Troubleshooting checklist if messages aren’t appearing on devices.

Notification images not showing

Fix image rendering issues across platforms.

Duplicate notifications

Troubleshoot why duplicate notifications are being displayed.

Next steps

A/B testing

Optimize messages with experiments to find what drives engagement.

Journeys

Build automated, multi-step messaging flows triggered by User behavior.

Tags

Add User-level data for personalization and targeting.

In-app messages

Reach Users with rich, interactive messages inside your app.

FAQ

Do Users need to opt in for push notifications?

Yes. Both iOS and Android require Users to grant permission before they can receive push notifications. On iOS, you must show the system prompt. On Android 13+, the POST_NOTIFICATIONS permission is required. Use a pre-permission prompt to explain the value before triggering the system dialog.

What are FCM, APNs, HMS, and ADM?

These are platform-specific push delivery services. FCM (Firebase Cloud Messaging) delivers to Android and web. APNs (Apple Push Notification service) delivers to iOS and macOS. HMS (Huawei Mobile Services) delivers to Huawei devices. ADM (Amazon Device Messaging) delivers to Amazon Fire devices. You configure credentials for each in the OneSignal dashboard during SDK setup.

Why aren’t my push notifications showing?

Common causes include missing or expired platform credentials, Users not granting permission, or device-level settings like Do Not Disturb or Focus modes. See Notifications not shown or delayed for a full troubleshooting checklist.

Can I send push notifications without a visible notification?

Yes. Use data and background notifications to send custom payloads that your app handles silently. These are useful for triggering background syncs, updating local data, or refreshing content without interrupting the User.