Overview
Confirmed delivery tracks whether a device has actually received a push notification sent via OneSignal. This information appears in the notification’s Message Report under the status “Confirmed” or “Received.”
Confirmed Deliveries Flow
- Apple Push Notification Services (APNs) for iOS and Safari
- Google Firebase Cloud Messaging (FCM) for Android and Chrome
- Huawei Messaging Service (HMS) for Huawei devices
- Amazon Device Messaging (ADM) for Amazon devices
- Microsoft Push Notification Service (MPNS) for Windows devices
Requirements
- Confirmed Delivery is only available on paid plans. Compare plans and pricing.
- Complete all steps in our Mobile SDK Setup, especially the iOS Notification Service Extension and App Group setup.
- The push Subscription must have our device-side SDK installed (cannot be an API-created subscription).
Platform-specific limitations
iOS
- Requires both the Notification Service Extension (NSE) and correct App Group configuration to confirm receipt. Make sure to follow our Mobile SDK Setup guide for directions on setup and testing.
- APNs keeps only 1 message per app if device is offline. If the iOS device is offline and 2 or more push is sent to it, only the last push will be received.
Huawei
- Only available for
data
Huawei message type. However, Huawei provides the confirmed delivery data for themessage
type directly in their dashboard.
Web
- Safari is not supported.
Handling inactive devices
Devices that are offline will not receive push notifications. This is common when users change or abandon devices. Tips for re-engagement:- Use Audience Activity to try resending messages to users who “Did not Confirm Delivery.”
- Create Segments based on Last Session to identify users inactive for 6 months, 1 year, or longer.
- Periodically target inactive users with push notifications to identify unsubscribed or unreachable devices.
FAQ
Why are my confirmed delivery numbers low or not showing?
There are several reasons why your confirmed delivery numbers may be low or not showing:- You may have a lot of inactive/older subscriptions. See above Handling inactive devices for more details.
- You may have platform-specific limitations if using Huawei or Safari.
- There may be a setup issue. This is most common with iOS but can happen with other platforms. See Troubleshooting Confirmed Delivery for more details.
Why does it say confirmed but not shown on my device?
The confirmed delivery event means the device received the push notification. This event is generated by the OneSignal SDK in your app for that specific user’s subscription ID and push notification ID. It would be rare for the device to not show the push notification. Things to check:-
The push is overlooked by mistake.
- Especially common on iPhones with Focus modes enabled like “Do not disturb”, “Sleep”, or a custom setup. Push notifications received outside of this state are grouped differently than those received while in this state. All push notifications received while in a Focus mode are grouped together until the Focus mode is over. At which point, the push notifications will re-group with others for the app. If you swiped away all the grouped notifications while in Focus mode, you may miss them.
-
You may have custom code in your app suppressing notification display. Check for the following code in your app:
event.preventDefault();
- This can be found in the foreground lifecycle listener and Notification Service Extension. When used, it will block the push from being displayed while the app is open.
- If you are using other push services or native APIs that can remove push like:
-
Check the push payload or data you are sending with the push notification.
- Make sure you send with high priority
- If using the collapse_id parameter, this will replace the older push with newer ones using the same
collapse_id
.
-
Are you sending to the correct device?
- You may be sending to the wrong device by mistake. See Find and set Test subscriptions to find your subscription.
Troubleshooting Confirmed Delivery
General scenarios
- Device offline: Push can be delivered up to 3 days later by default if the device is offline. Adjust this using the Time To Live parameter.
- Unstable network: The notification may be received and/or clicked but the confirmation might fail to send due to network issues or app crash. This should be rare.
iOS troubleshooting
Common Cause: Misconfigured of both the Notification Service Extension (NSE) and App Groups. Must-haves:- NSE properly configured following our Mobile SDK Setup guide.
- The same App Group name for both the main app and the NSE.
- ✅
group.your-main-app-target-bundle-id.onesignal
- ❌
group.your-bundle-id.OneSignalNotificationServiceExtension.onesignal
- ✅
- Message is sent with
mutable-content
set to1
. This happens automatically, but you may be setting it to0
in your code.
Android troubleshooting
- If notifications are not displaying on Android, see our Notification Not Shown Guide.
- If notifications display, but no Confirmed Delivery reported, you likely have a custom Android Notification Service Extension blocking the request. See our Android Service Extension setup guide to make sure you implemented it to work correctly with OneSignal Notifications.
Web troubleshooting
- Due to limitations with the Safari browser, it cannot support Confirmed Delivery.
- Ensure that you migrated to the v16 SDK correctly. See our User Model Web Migration Guide for more details.
- Your init code loads the correct v16 SDK:
- Your
OneSignalSDKWorker.js
Service Worker script references the correct v16 script:
- Your init code loads the correct v16 SDK:
Need help?Chat with our Support team or email
support@onesignal.com
Please include:- Details of the issue you’re experiencing and steps to reproduce if available
- Your OneSignal App ID
- The External ID or Subscription ID if applicable
- The URL to the message you tested in the OneSignal Dashboard if applicable
- Any relevant logs or error messages