When you schedule a push notification, Pushwoosh sends it to the platform's gateway (FCM for Android, APNs for iOS) precisely at the scheduled time. However, the final delivery to the user's device is handled by these gateways and the device's operating system, where delays can sometimes occur.
Here are the most common causes for delays and how to address them for each platform:
Android Devices
The most common reason for notification delays on Android is the aggressive battery optimization features built into the OS, especially on devices from manufacturers like Xiaomi, Huawei, and Samsung.
- Doze Mode: When a device is idle, modern Android versions can enter a low-power "Doze" mode. In this state, network access and background app processes are deferred to specific maintenance windows, which can delay notification delivery.
- Manufacturer Customizations: Many manufacturers have their own battery-saving systems that can be even more restrictive than standard Android, sometimes terminating background app processes entirely.
Solution: Check the battery and power-saving settings on your test devices. Ensure that your application is whitelisted or exempted from any battery optimization features to allow it to receive notifications in real-time.
iOS Devices
For iOS, Pushwoosh automatically configures key parameters to prioritize immediate delivery of your notifications.
apns-priority: For all standard, user-facing notifications, Pushwoosh automatically sets the priority to10(the highest value), instructing APNs to send the notification immediately.apns-push-type: This is automatically set toalert, which is the correct type for notifications that display an alert, play a sound, or badge the app icon.
Recommendation for Critical Alerts (iOS 15+):
To further enhance the delivery of critical, time-sensitive notifications, you can set the Interruption Level. This allows your notifications to break through system-level controls like Focus Mode or a Scheduled Summary. You can control this using the ios_interruption_level parameter in your /createMessage API request.
Comments
0 comments
Please sign in to leave a comment.