Pushpad Logo Pushpad

Stats and monitoring for web push notifications

You can monitor web push notifications and aggregate the stats in different ways. For example you can see the number of web push notifications sent and delivered successfully and the number of clicks.

See the stats for a single notification

You can see detailed stats for each notification that you have sent from the Pushpad dashboard. Go to your project, then click Notifications and open a notification to see the details.

You can also fetch the stats with the REST API. When you send a notification, you get in response the new notification ID: you can use it later to fetch the notification stats. Otherwise you can also get all the notifications that you have recently sent.

Notification log

For applications that integrate Pushpad through the API, it can be useful to log all the notifications sent:

  1. When you send a notification, you get in response the ID of the new notification
  2. Store the notification ID and other details in your application logs, so that you can search them later

Then, when you need to inspect a delivery of a message:

  1. Get the notification ID from your application logs
  2. Open the notification on Pushpad, so that you can see all the notification details and information about the delivery status. From the Pushpad dashboard go to your project, then click Notifications and enter the notification ID in the search field. You can also use the API if you prefer.

See the stats for a project

You can see aggregated stats for your project from the Pushpad dashboard. Go to your project, then click Stats.

Aggregate the stats for multiple notifications into categories

If you send many notifications from the dashboard or even millions of notifications through the API, it becomes difficult to see the stats for each notification. In that case you must use the project stats, that aggregate the stats from multiple notifications. By default, there is one bucket where all the notification stats are collected. However you can easily create other buckets to aggregate the stats only from some notifications.

For example a newspaper may create the categories "sport" and "politics", then tag each notification with the appropriate category and finally compare the CTR of the different categories.

In order to aggregate the stats in custom categories you can follow these steps:

  1. Go to the project settings and enter the name of the new metric in the Custom metrics field. The name can only contain letters, digits and underscores and cannot be longer than 50 characters. You can create up to 50 metrics for a project.
  2. When you send a notification, enter the name of your metric in the Custom metrics field. Note that you can add up to 3 metrics for a single notification.
  3. Go to the project stats and select your metric. Basically you need to click No filter and select the name of your metric instead. In this way you will see only the stats for the notifications that were tagged with that metric name.

Delivery status

Pushpad collects detailed information about the delivery of each notification. The following stats are available:

Notifications sent, but not delivered

For transparency, Pushpad reports both the number of notifications successfully sent and the number of notifications actually delivered to the user device. The number of deliveries is usually lower then the number of notifications sent. However that is not an issue related to Pushpad.

Basically web push notifications work like this:

  1. Pushpad sends a signal to the browser push service (Mozilla autopush for Firefox, FCM for Chrome, etc.) to notify that there are new notifications
  2. the browser push service (Mozilla autopush for Firefox, FCM for Chrome, etc.) sends that signal to the user browser
  3. the user browser connects to Pushpad to download the new notifications.

You can find more in the technical introduction to web push.

When a notification is marked as successfully sent but not delivered it means that the step 1 was successful, but the step 2 has not happened yet. That step isn't managed by Pushpad, but it is managed by the browser push service (Mozilla autopush for Firefox, FCM for Chrome, etc.) and by the user device. So in general we can't do anything about that.

A web push notification may not be delivered for various reasons, for example:

Note that the setting called Time To Live (TTL) can affect the delivery rate. You can set the TTL for notifications from the project settings or set it for specific notifications. Make sure to set the TTL to a large value (e.g. 2419200), otherwise a notification will be dropped on purpose if it can't reach a device within that time period.

Also note that the deliveries to Safari cannot be tracked (there's no way to do that): thus, even if the notifications are delivered successfully, they are still reported as not delivered in the stats.

Last but not least, some old subscriptions associated to devices or browsers that aren’t used anymore are not properly removed by the browser push service (e.g. FCM). In this case when Pushpad sends a notification to that subscription, the browser push service keeps reporting that the subscription is valid, but the notification won't be delivered. Note that Pushpad removes the old subscriptions automatically when the browser push service (e.g. FCM) says that the subscription is expired, however we cannot remove subscriptions that are erroneously reported as active. Please check out this article for more information and solutions.