Why We Can’t Guarantee Push Delivery on the Web

There are many reasons out of our control that affect delivery rates in web push, and as a result, we can’t guarantee delivery. These are the main ones:

Delayed Delivery

Many web push notifications are delayed. Once the delay is resolved, the notification will be delivered, unless the TTL has elapsed. Here are some common reasons for delayed delivery:

  • The device is off
  • The device is not active on the web browser that subscribed to the push service (the device does not have to have the browser open and focused, but it has to at least be running in the background)
  • The device has intermittent or no internet connection

Discarded Delivery

Common reasons why the device completely discards the push notification, causing it to never be delivered include:

  • The device has power-saving mode enabled (this is common on some Android devices, and is enabled by default)
  • The subscribed browser doesn’t have permission to use data in the background
  • The user has changed their preferred browser (they’ll need to resubscribe to your push notifications on their new browser)
  • The user has unsubscribed from push notifications (they can do this in many ways – we don’t know about it until the notification fails to deliver)

We’re able to detect some of the above areas and we mark the subscription as inactive when the platform tries to send to it, but there are also some cases that we’re unsure about. Please also remember that the longer your subscriber has been subscribed to your push project, the less likely they’re likely to still be active on the subscription (for all the above reasons). So your delivery rates may be accounting for these stale contacts.