Send and manage mobile and web push notifications with OneSignal using the dashboard or API, with targeting, personalization, and scheduling.
Re-engage users with timely, personalized content across devices, even when they aren’t actively using your app or website.Watch how push notifications drive the highest engagement, or skip ahead to get started.
Why push notifications drive the highest engagement
OneSignal provides a complete platform to manage push notifications across mobile, web, and desktop:
Send campaigns and transactional messages from the dashboard or API.
Add internal metadata for tracking and reporting. API equivalent: name.
Select your audience
Choose which users receive the message. You can include and exclude segments to target specific groups. Defaults to all “Subscribed Users” if no segment is set.
Name, label, and audience segment selection in the dashboard.
See how timing impacts push notification performance.
Timing is everything: How to send push notifications that drive action
Choose when OneSignal evaluates audience membership and begins delivering the message.
Option
Description
API field
Send immediately
Start sending to all users in the audience now.
(none)
Scheduled
Send at a specific time, up to 30 days in advance.
send_after
The send time determines the audience cutoff. OneSignal evaluates audience membership at that moment, and anyone in the audience receives the message regardless of per-user optimization settings.
Per-user delivery time:Set when each user in the audience receives the message.
Option
Description
API field
Everyone at the same time
All recipients receive the message at once. Best for urgent messages.
(none)
Intelligent Delivery
Sends at the optimal time for each user based on their session activity.
delayed_option: last-active
Custom time per timezone
Sends at a set local time in each user’s timezone.
delayed_option: timezone, delivery_time_of_day
Delivery overrides:Override the app-level delivery defaults for this message only.
With Intelligent Delivery or Custom time per timezone, delivery spans a 24-hour period so every record in the audience can receive the message. If it is already 10 AM for a recipient when a 9 AM local-time message sends, they receive it at 9 AM the following day.
Push messages can either display user-facing content or perform background operations.
Display notifications: Require a message and may include a title, image, action buttons, and other visual elements.
Background/data-only notifications: Omit the message, set content_available (iOS) or omit headings/contents (Android), and optionally include additional data.
Anatomy of a web and mobile push notification
Legend: 1 Title, 2 Message, 3 Icon, 4 Image, 5 Action buttons, 6 App name or browser, 7 Timestamp received.
Use the AI message composer to quickly generate notification titles and body text. Adjust tone and content to match your brand in a few clicks.
Push platforms (Android, iOS, Huawei, Amazon) do not truncate titles or messages at a fixed character count. Where the text gets cut off depends on the device, orientation, and the user’s system text size (Accessibility mode). On Android, it also varies by launcher and manufacturer.OneSignal and the delivery services (APNs, FCM, and others) send the notification but don’t control how the device renders it, so no API or payload option can override truncation. The same text can show fully on one device and be cut off on another.
The message body truncates under the same operating system rendering rules, and how much shows depends on whether the notification is collapsed or expanded. See the Title note above.
Replace earlier notifications with a newer one if they share the same collapse_id. Max length: 64 characters. API: collapse_idFor example, a weather app sends three alerts. If the user opens their device after all three, only the last message displays.
Avoid replacing older web notifications by using unique web_push_topic values. Notifications with different topics remain visible independently. Max length: 64 characters. API: web_push_topic
How long to keep a message if the device is offline. Default: 3 days. Range: 0–2,419,200 seconds (28 days). API: ttlIf a user is offline and the TTL expires, the message is discarded. Set ttl: 0 for messages that should never be delivered late.
iOS limitation: APNs stores only the most recent notification while the device is offline. Earlier notifications are dropped. Learn more.
Control how OneSignal delivers push to Huawei (HMS) devices. API: huawei_msg_type
data: The OneSignal SDK renders the notification client-side, enabling the full feature set (large image, action buttons) and Confirmed delivery. Not shown if the app is force quit.
message (default): HMS Core renders server-side; title and body only, but shows even if the app is force quit.
Cancel a message if it has not been Delivered yet. OneSignal stops sending the message to all Subscriptions not already in the queue. This does not remove the message from devices that already received it.In the Message Report, select Actions > Cancel, or use the Cancel Message API.
Once delivered, you can only replace a push notification if you set a Collapse ID or Web push topic. Without one of these, the notification cannot be replaced or removed.
How do I test push notifications before sending to users?
Set up Test users to verify delivery, rendering, and deep links without affecting real users. You can also send to a single-user segment for quick testing.
Common causes include missing or expired platform credentials, users not granting permission, or device-level settings like Do Not Disturb. See Notifications not shown or delayed for a full troubleshooting checklist.
What is the maximum push notification payload size?
The total payload size is approximately 4 KB across all platforms. The data field supports up to 2048 bytes. Exceeding these limits may cause notifications to be truncated or rejected.
This is different from on-screen title/body truncation. Payload size is a hard limit enforced by APNs/FCM before delivery. Title and body display truncation happens after delivery, on-device, and depends on operating system rendering. See Title above.