# Push statuses and metrics

Source: https://kirora.io/docs/guides/messaging/push/push-statuses

What each push status means for a contact and for each of their devices, why a push was skipped or failed, and how push is counted.

A push notification has two kinds of status: one for the contact, and one for each of their devices. A contact with a phone and a laptop gets one message and two device outcomes. You see both on a campaign's **Recipients** tab (choose **Devices** on a row), a journey step's contacts, a contact's **Messages**, and **Message library › Sent messages**.

Apple, Google and the browsers' push services confirm that they accepted a notification, but never that it appeared on screen or that someone saw it. So push has no "delivered" status: the closest is **Sent**, which means the push service accepted it.

## Message statuses

| Status | What it means |
| --- | --- |
| **Queued** | Waiting to be processed |
| **Sending** | Being handed to the push services |
| **Sent** | Apple, Google or the browser accepted it for at least one device |
| **Opened** | The person tapped the notification, as your app or website reported. Shown in place of **Sent** |
| **Clicked** | The tap opened the notification's link or one of its buttons. It counts as an open too |
| **Failed** | It couldn't be sent, with the reason below |
| **Skipped** | Kirora didn't send it, with the reason below |

**Opened** and **Clicked** appear only once your app or website reports taps. If they never do, ask your developer. See [What your developer does](https://kirora.io/docs/guides/messaging/push/get-started#what-your-developer-does).

## Device statuses

Each device the push went to has its own outcome:

| Status | What it means |
| --- | --- |
| **Pending** | Waiting to be handed to the push service |
| **Sending** | Being handed to the push service |
| **Sent** | Apple, Google or the browser accepted it for the device. It shows as opened when the person taps it |
| **Device gone** | The registration is no longer valid, for example because the app was uninstalled, so the device was retired and gets no more pushes |
| **Rejected** | The push service refused it |
| **Retrying** | A temporary failure; another attempt is due |
| **Unknown** | The push service never answered. It isn't retried automatically, because the push service may have accepted it already |
| **Skipped** | Not attempted, because of consent, permission or the app's state |

When a push service is briefly unavailable, Kirora tries a device up to five times, waiting longer each time.

## Why a push was skipped or failed

| Reason | What to do |
| --- | --- |
| No device that can receive push | The contact has no active device in this project. Check their **Devices** tab |
| No consent for this channel | The contact hasn't given push consent. Notification permission on the phone isn't enough |
| They left this message's topic | The contact opted out of this kind of message |
| Over one of the workspace's message limits | They'd had their share of marketing recently |
| Their local send time had already passed | The campaign was sent in local time after that time had passed where they are |
| Rejected by the provider | The push service refused it. Often the app's key or setup; see [Troubleshoot push](https://kirora.io/docs/guides/messaging/push/troubleshoot-push) |
| The provider kept failing, so it stopped retrying | The push service was unavailable for every attempt |
| The provider didn't confirm the outcome | The push service may have taken it, so it isn't resent |
| The push content wasn't valid | Check the links are HTTPS and the notification is within its size limit |

## Metrics

A campaign's push card counts **Recipients**, **Devices reached**, **Opened**, **Clicked** and **Failed**; journey steps and the **Transactional** page's **Push** tab count **Sent** in place of devices reached. See [Push results](https://kirora.io/docs/guides/campaigns/campaign-results#push-results) and [Push numbers](https://kirora.io/docs/guides/reports/understand-your-reports#push-numbers) for each figure.

**Device outcomes** splits every device by status and by platform, so you can see, for example, whether one platform's devices are being rejected. Push rates are never mixed with email's, because the two channels count reach differently.

## How devices drop out

- **Uninstalled apps and blocked notifications**: the next push usually comes back as **Device gone**, and the device is retired.
- **Devices not seen for 60 days** stop receiving push, which is why your app registers devices every time it starts. Safari never reports a removed subscription, so a Safari browser drops out this way.

## Next steps

- [Troubleshoot push](https://kirora.io/docs/guides/messaging/push/troubleshoot-push)
- [Campaign results](https://kirora.io/docs/guides/campaigns/campaign-results)
- [Understand your reports](https://kirora.io/docs/guides/reports/understand-your-reports)