Notification deliverability on Android and iOS depends on a variety of factors, including technical implementation, device settings, and user behavior. To increase the chance that notifications are delivered and opened, it is important to optimize every level—from the server and SDK to the content and behavior of the application.
On Android, one of the main problems is aggressive power saving, which is common on devices from various manufacturers, such as Xiaomi, Huawei, Samsung, and OPPO. Systems may close background processes or block push services such as Firebase Cloud Messaging. To improve deliverability, it is recommended to use high-priority notifications that are marked as urgent and delivered immediately. It is also useful to use foreground services for critical scenarios, such as messengers or geolocation applications. Users should be informed about the need to disable aggressive power saving through in-app instructions.
It is important to handle FCM token updates correctly. The onNewToken() method should always send a new token to the server, and the database should store active and current tokens linked to the device. Old or invalid tokens must be deleted in a timely manner so as not to waste resources on undelivered messages. Configuring Notification Channels and checking notification permissions is also critical, as users can disable notifications for individual channels.
On iOS, notification delivery is more stable thanks to APNs, but there are limitations. Notifications are only delivered after explicit user consent, so it’s worth using a pre-permission screen that explains the value of notifications and offers a choice of content categories. Silent push notifications on iOS may not be delivered if the app abuses them frequently or is in a killed state, so they should only be used for real background tasks and with the correct content-available parameters. System limitations such as Low Power Mode, lack of network connection, or long periods without unlocking the device must be taken into account.
On the server side, it is important to keep the token database clean and subscription information up to date. You should regularly process delivery errors, receive feedback from FCM and APNs, delete inactive tokens, and segment your audience. Personalized notifications that take into account user interests and behavior increase click-through rates and reduce the risk of notifications being disabled. The timing of delivery is also important — it is worth considering user activity, avoiding mass peaks, and limiting the frequency of notifications so as not to annoy the audience.
Using delivery and engagement analytics helps you adjust your strategy. Metrics such as opens, clicks, and conversions allow you to determine which notifications are reaching users, which are generating interest, and which should be optimized. To test new approaches, it is useful to run A/B experiments with different message formats, headlines, and images.
Overall, improving notification deliverability requires a comprehensive approach: proper SDK and server configuration, working with tokens and permissions, accounting for platform limitations, audience segmentation, content and send time optimization, as well as constant monitoring and analytics. This approach allows you to achieve maximum reach, engagement, and retention of users on mobile devices.
