Web Push Notifications are real-time notifications. They can be sent on a user's desktop or mobile websites once the user subscribes to the push notification. Even if the user has not opened the web page, he will receive it. But sometimes notifications don’t get delivered to the subscribers leading to a low web push delivery rate in the said scenario. In this post, we'll understand why your web push delivery rate is lower than you expected at any time.

Parameters affecting Web push delivery rate 

1. Old Web Push Subscriptions

Do you know? How long does a web push subscription last before expiring? The answer is there is no fixed expiration date as it completely depends on the browser implementation and pushes service (e.g., Google FCM, Mozilla Autopush, etc.). The standard (i.e., W3C Push API, IETF WebPush) doesn't implement an expiration, and the decision lies with the browser manufacturer. You can continue with the old ones only if they are still valid and checked by the browser.

As shown in the graph above, the recent subscriptions show delivery rates near 70%, while after a quarter, the delivery rate is reduced to 50%. After 9 months, the average delivery rate falls below 10%. Finally, after 2 years and a half, the delivery rate is only 2%.

The low delivery rates for an old subscription are more likely to belong to an abandoned device or browser. However, browser push service (e.g., Google FCM, Mozilla Autopush, etc.) keeps old subscriptions that are not checked anymore. They keep returning 2xx status codes rather than deleting the subscription and returning 404 / 410.

2.  Users clear other site data in Chrome

When users clear or remove other site data from Chrome, the notification permission also gets reset. With this, your website won't be able to send push notifications to that subscriber, leading to a lower delivery rate.

3. The user disables background app activity.

While using Operating Systems like Android, people usually switch off background refresh for apps to save mobile battery usage that further forcefully disables the Chrome or Firefox app leading to the GCM overruling the token or notifying the Chrome server.

4. The browser is not open on the device.

Web push notifications emerge on a subscriber's screen (on both desktops and mobile web browsers) when the browser is open for which they opted in. This implies that even if subscribers browse other websites, they will get your notification in real-time. But, if the browser is not open, they will only receive your notification when they reopen it.

5. Network problems disconnect GCM and the user.

At times users are not connected to the Internet for a long time. There are various reasons, from being in areas without network coverage to avoiding roaming charges. When this happens, the device usually sends heartbeats at the interval of 28 minutes on the cell phone network and 15 minutes on WiFi (GCM's idle socket connects an Android device to the Google servers).

If this heartbeat doesn't reach the GCM server, Google tries to re-connect. So, if the subscriber is disconnected from the Internet for long, GCM can neither deliver the notifications nor mark them as inactive. This may further lead to a delay in the notification's delivery or leave them undelivered.

6. Notification expires before reaching the end-user

Suppose a user has either uninstalled the browser app, disabled background activity or been disconnected from the Internet for too long or you have set an expiry of your notifications. In that case, the notification will not be attempted to be delivered once that specific time lapses.

7. Browser app uninstalled

Whenever a user uninstalls a browser app, GCM takes some time to mark that device as non-functioning. It results in the notification being sent to the GCM, GCM trying to send it to the device, and failing.

Web Push notifications are a great way to improve engagement with new users. Therefore, by sending personalized and relevant notifications, you can make sure that subscribers keep on engaging and don’t uninstall the app. Also, considering inactive subscribers while setting a notification expiry time may improve the delivery rate.