Push Notifications
Ably can deliver push notifications to devices using, amongst others, Apple’s Push Notification service and Google’s Cloud Messaging service. Push notifications, unlike Ably’s channel based pub/sub messaging, do not require the device to maintain a connection to Ably as the underlying platform or OS is responsible for maintaining its own battery efficient transport to receive push notifications. Therefore, push notifications are commonly used to display visual notifications to users or launch a background process for an app in a battery efficient manner.
Beta notice
Ably’s push notification service is currently in beta. Please bear in mind:
- Whilst the API we provide now is planned for our GA release, the API is subject to change. However, we will endeavour to only make changes to the API where necessary before we transition the service to GA (general availability).
- The push service, as far as we are aware, is ready for production levels of usage. However, given the beta status, push notifications have not yet been stress tested under real-world production loads. As a result, you should expect some bugs. If you experience any problems, please get in touch and we’ll work as quickly as possible to help identify the problem and fix it.
- The client libraries currently have varying levels of support for push notifications.
- Push notification statistics are currently disabled. Therefore, you are not currently charged for push notifications and and the push notification stats in your app dashboard will be zero. Please note that each push notification, when stats are enabled, will count as one message from a billing perspective. We plan to enable push statistics soon, get in touch if you need statistics now.
- Documentation is not complete. However if you have any specific questions or recommendations in regards to how we can improve the documentation, please do get in touch
Delivering push notifications
Ably provides two models for delivering push notifications to devices:
Channel-based broadcasting
The model for delivering push notifications to devices over channels is intentionally very similar to how “normal” messages are delivered using Ably’s pub/sub channel. For example, a “normal” message published on an Ably channel is broadcasted immediately to all subscribers of that channel. When broadcasting push notifications on channels however, the process is the same with the exception that the subscribers (devices receiving push notifications) are registered in advance using our API and the message itself must contain an extra push notification payload that specifies the optional visual format and optional data payload of the push notification.
Find out more about channel-based push notification broadcasting
Direct publishing
Ably provides a REST API that allows push notifications to be delivered directly to:
- Devices identified by their unique device ID
- Devices identified by their assigned
clientId
- Devices identified by their recipient attributes such as their unique
registrationToken
in the case of GCM,deviceToken
in the case of APNS, ortargetUrl
andencryptionKey
in the case of a Web device. This means is particularly useful when migrating to Ably with existing push notification target devices.
Find out more about direct push notification publishing
Activating a device and receiving notifications
Find out more about device activations and subscriptions.
Managing devices and subscriptions
Whilst the realtime client libraries provide APIs for a device to activate itself (via client.push
) and subscribe for push notifications (via channel.push
), those APIs are intentionally limited to actions pertaining to the device it is run on.
A separate and distinct push admin API is additionally provided in our client libraries specifically designed for use by your servers to facilitate managing and delivering push notifications across all of your registered devices. This API, amongst other things, includes features to manage registered devices, channel subscriptions and deliver push notifications directly.
Find out more about the push admin API.
Platform support
Ably currently offers beta support for push notifications on the following platforms:
- Apple Push Notifications
- supported on all mobile devices running iOS, desktop devices running macOS and Safari
- Google Cloud Messaging
- supported on all Android and iOS devices, although we use GCM exclusively for Android message delivery
- Firebase Cloud Messaging
- supported on all Android and iOS devices, although we use FCM exclusively for Android message delivery
Downloading a client library with push support
As Ably’s push notification service is currently in beta, the client libraries currently have varying levels of support for push notifications.