New Per-Push Reporting API

We’re excited to announce the release of two new API endpoints that enable more detailed engagement analytics. The improvements in our data infrastructure that underlie these features set the stage for many more advanced applications of push-level analytics.


The release of Per Push Reporting is only the first example of the power of our new API. Because we have combined all platform- and audience-level data into API v3, we are able to expose all of the message detail with platform- and audience-level granularity. We're excited to offer this level of performance visibility to our customers at a time when we are beginning to see more and more complexity in the way they are approaching messaging strategies.


Below are some of the feature highlights for this release. For more detailed info, please head over to our Per Push Reporting API docs.

What's New

  • Platform-level Analytics

Until this release, the engagement data we provided was in an aggregate form at the app level.  Now, iOS and Android are broken out separately in the results. Additional platforms will be added in future releases.

  • Audience-level Analytics

For push notifications, direct responses and indirect responses are provided separately for iOS and Android. Direct responses represent a direct action taken by the user, e.g., tapping the notification or sliding to view it. Indirect responses are tracked by our own proprietary algorithm which attributes an additional number of app opens to a notification.  For more information on our app analytics, visit the product section of our site.

  • Rich Message Reporting

For the first time, we are making engagement activity for rich messages available to customers. This is another example of the power of our new API. By including rich message data in the payload of your request, any rich content sent along with a push notification is necessarily tied to the same push_id. (Analytics are also available if the rich message is not combined with a push notification.) In previous iterations, rich messages were not directly linked with push notifications.


How does it work?


Pass the push_id to the detail endpoint:

/api/reports/perpush/detail/(push_id)


The push detail endpoint takes no arguments and returns all the message and engagement detail for the notification, with iOS and Android results broken out separately. If a rich message exists for the push, we provide the unique totals for reads and deletions as well.

Or to the series endpoint:

/api/reports/perpush/series/(push_id)

With the series endpoint, you can specify a precision for hourly, daily, or monthly results. In addition, you can request the results for a specific time period by adding an argument for start time and end time.

For more detail and examples, please take a look at our docs: Reports API — Urban Airship current documentation