Overview
OneSignal records metrics at each step of a message’s lifecycle — from when OneSignal hands the message to a third-party provider (FCM, APNs, Twilio, or an email ESP) through delivery, engagement, and any follow-up events. In-app messages and Live Activities have different lifecycles, which are covered in their own sections below. Use this page to reconcile numbers across the dashboard, API, CSV exports, and Event Streams, or when building internal reports. Each channel section contains:- Terms: the glossary of metrics and their definitions.
- Delivery lifecycle: a visual representation of where each metric is captured.
- Metrics mapping: the name of each metric across every OneSignal surface (dashboard, API, CSV, Event Streams).
Channel metrics comparison
Different channels have different delivery states and engagement metrics. The table below lists which metrics apply to each channel.| Channel | Sent | Delivered | Failed | Rejected | Remaining | Clicked | Opened | Bounced | Confirmed Receipt | Read | Impressions | Unsubscribed | Reported as Spam | Suppressed | Frequency Capped |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Push | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
| ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | |
| SMS/RCS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| In-app | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Live Activity | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
- Some metrics have both Total and Unique variants in the per-channel tables. This applies to Opens (email) and Clicks (email, SMS/RCS, in-app).
Push terms
| Metric | Definition |
|---|---|
| Sent | The number of push notifications sent from OneSignal, including both those successfully sent to the push provider and failures. This is a composite metric. |
| Audience | The number of Subscriptions in the targeted Segment(s). |
| Remaining | The number of Subscriptions in the target audience that haven’t yet received the push notification (queued or in flight). Appears on the dashboard delivery report. |
| Delivered | The number of push notifications successfully sent to and accepted by the push provider (FCM, APNs, HMS). |
| Confirmed Receipt | The number of push notifications confirmed as received by the device, verified by the OneSignal SDK. See Confirmed Delivery for platform-specific details and requirements. |
| Unsubscribed | The number of push Subscriptions that did not receive the push notification because they uninstalled the app, cleared browser data, or opted out of push and have not opened the app since. OneSignal will not attempt to send to these Subscriptions in future messages unless they re-subscribe. |
| Failed | The number of push Subscriptions that did not receive the push notification because of an error. OneSignal will attempt to send to these Subscriptions in future messages. |
| Clicked | The number of push Subscriptions that clicked the push notification. Push notifications can only be clicked once. |
| Frequency Capped | The number of push Subscriptions that did not receive the push notification due to frequency cap settings. |
Push lifecycle
Push metrics mapping
Dashboard
| Term | Delivery Report Stat Cards | Delivery Report Timeseries Chart | Journey Node Report Stat Card | Journey Node Report Timeseries Chart | Audience Activity | Engagement Trends |
|---|---|---|---|---|---|---|
| Sent | Sent | ❌ | Sent | Sent | ❌ | ❌ |
| Audience | Audience | ❌ | ❌ | ❌ | ❌ | ❌ |
| Delivered | Delivered | Delivered | Delivered | Delivered | Delivered | Delivered |
| Confirmed Receipt | Confirmed Receipt | Confirmed Receipt | Confirmed Receipt | Confirmed Receipt | Confirmed receipt | ❌ |
| Unsubscribed | Unsubscribed | ❌ | Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed |
| Failed | Failed | ❌ | Failed | Failed | Failed | ❌ |
| Clicked | Clicked | Clicks | ❌ | Clicked | Clicked | Clicked |
| Influenced Opens | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Frequency Capped | Capped | ❌ | Capped | Capped | ❌ | ❌ |
API, CSV, and Event Streams
| Term | View Message(s) API1 | Notifications CSV | Event Streams |
|---|---|---|---|
| Sent | ❌2 | sent | ❌ |
| Audience | ❌ | ❌ | ❌ |
| Delivered | successful | delivered | message.push.sent |
| Confirmed Receipt | received | confirmed_receipt | message.push.received |
| Unsubscribed | failed3 | failed3 | message.push.unsubscribed |
| Failed | errored3 | errored3 | message.push.failed |
| Clicked | converted | converted | message.push.clicked |
| Influenced Opens | influenced_opens | ❌ | ❌ |
| Frequency Capped | frequency_capped | frequency_capped | ❌ |
remaining (for example, ios_clicked, android_clicked).
2 The composite Sent metric does not have a direct field in the View Message(s) API. To derive it, sum successful + failed + errored. Audience activity exports also do not include a Sent field.
3 In the View Message(s) API and Notifications CSV, the field name failed represents unsubscribed subscriptions and errored represents delivery errors (what the dashboard calls Failed). This naming is preserved for backward compatibility.
Email terms
| Metric | Definition |
|---|---|
| Sent | The number of emails sent from OneSignal, including both those successfully sent to the email service provider and failures. This is a composite metric. |
| Audience | The number of Subscriptions in the targeted Segment(s). |
| Remaining | The number of Subscriptions in the target audience that haven’t yet received the email (queued or in flight). Appears on the dashboard delivery report. |
| Delivered | The number of emails successfully delivered to the recipient’s inbox server. |
| Failed | The number of emails unable to be delivered to the inbox, excluding bounces. May include failures reported by the ESP or OneSignal delivery failures. |
| Suppressed | The number of emails blocked due to prior bounces or spam reports to protect sender reputation. Only recorded for apps configured to use OneSignal email. |
| Bounced | The number of emails rejected due to invalid addresses, full inboxes, sender reputation, or DMARC issues. These addresses are added to a Suppression List, either managed by OneSignal or a third party ESP. |
| Reported as Spam | The number of recipients who marked the email as spam. These addresses are added to a Suppression List, either managed by OneSignal or a third party ESP. |
| Unsubscribed | The number of recipients who opted out of receiving emails. |
| Total Opens | The total number of times the email was opened, including repeats. |
| Total Clicks | The total number of times a link in the email was clicked, including repeats. |
| Unique Opens | The number of individual Subscriptions who opened the email. Used with Delivered to calculate the open rate. |
| Unique Clicks | The number of individual Subscriptions who clicked a link in the email. Used with Delivered to calculate the click rate. |
Email lifecycle
Email metrics mapping
Dashboard
| Term | Delivery Report Stat Cards | Delivery Report Timeseries Chart | Journey Node Report Stat Card | Journey Node Report Timeseries Chart | Audience Activity | Engagement Trends |
|---|---|---|---|---|---|---|
| Sent | Sent | Sent | ❌ | Sent | ❌ | ❌ |
| Audience | Audience | ❌ | ❌ | ❌ | ❌ | ❌ |
| Delivered | Delivered | Delivered | Delivered | Delivered | Delivered | Delivered |
| Failed | Failed | Failed | Failed | Failed | Failed | ❌ |
| Suppressed | Suppressed | Suppressed | Suppressed | Suppressed | Suppressed | ❌ |
| Bounced | Bounced | Bounced | Bounced | Bounced | Bounced | ❌ |
| Reported as Spam1 | Reported as Spam | Spam | Reported as Spam | Spam | Complained | ❌ |
| Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed |
| Total Opens | Total Opens | Total Opens | Total Opens | Total Opens | ❌ | ❌ |
| Total Clicks | Total Clicks | Total Clicks | Total Clicks | Total Clicks | ❌ | ❌ |
| Unique Opens | Unique Opens | Unique Opens | Unique Opens | Unique Opens | Opened | Opened |
| Unique Clicks | Unique Clicks | Unique Clicks | Unique Clicks | Unique Clicks | Clicked | Clicked |
API, CSV, and Event Streams
| Term | View Message(s) API | Notifications CSV | Event Streams |
|---|---|---|---|
| Sent | platform_delivery_stats.email.successful | ❌ | message.email.sent |
| Audience | ❌ | ❌ | ❌ |
| Delivered | platform_delivery_stats.email.received | email_delivered | message.email.received |
| Failed | platform_delivery_stats.email.failed | email_failed | message.email.failed |
| Suppressed | platform_delivery_stats.email.suppressed | ❌ | message.email.suppressed |
| Bounced | platform_delivery_stats.email.bounced | email_bounced | message.email.bounced |
| Reported as Spam | platform_delivery_stats.email.reported_spam | email_reported_spam | message.email.reported_as_spam |
| Unsubscribed | platform_delivery_stats.email.unsubscribed | email_unsubscribed | message.email.unsubscribed |
| Total Opens | platform_delivery_stats.email.opened | email_opened | message.email.opened |
| Total Clicks | platform_delivery_stats.email.clicked | email_clicked | message.email.clicked |
| Unique Opens | platform_delivery_stats.email.unique_opens | email_unique_opens | ❌ |
| Unique Clicks | platform_delivery_stats.email.unique_clicks | email_unique_clicks | ❌ |
SMS/RCS terms
| Metric | Definition |
|---|---|
| Sent | The number of messages sent from OneSignal, including both those successfully sent to Twilio and failures. This is a composite metric. |
| Audience | The number of Subscriptions in the targeted Segment(s). |
| Remaining | The number of Subscriptions in the target audience that haven’t yet received the message (queued or in flight). Appears on the dashboard delivery report. |
| Delivered | The number of messages successfully delivered to the carrier as reported by Twilio. Metrics are categorized further to distinguish between SMS/MMS and RCS. |
| Failed | The number of messages that failed to be sent to Twilio. |
| Suppressed | The number of messages not sent to the Subscriptions because they opted out of receiving messages from the sender. |
| Rejected | The number of messages not delivered by the carrier due to number blockage, velocity blockage, or the recipient is on a block list. This is a derived metric and is the sum of provider errors and provider failures. |
| Provider Errored | The number of Subscriptions for which Twilio failed to send the message. |
| Provider Undelivered | The number of Subscriptions for which Twilio sent the message but failed to deliver it. |
| Read (RCS only) | The number of Subscriptions who read an RCS message. |
| Total Clicks | The total number of times a link in the message was clicked, including repeats. |
| Unique Clicks | The number of unique link clicks across all links in the message. Counted once per Subscription. |
| Replied | The number of keywords received by OneSignal, excluding consent keywords. |
| Unsubscribed | The number of opt-out keywords received by OneSignal. |
SMS/RCS lifecycle
SMS/RCS metrics mapping
Dashboard
| Term | Delivery Report Stat Cards | Delivery Report Timeseries Chart | Journey Node Report Stat Card | Journey Node Report Timeseries Chart | Audience Activity | Engagement Trends |
|---|---|---|---|---|---|---|
| Sent | Sent | Sent | Sent | Sent | ❌ | ❌ |
| Audience | Audience | ❌ | ❌ | ❌ | ❌ | ❌ |
| Delivered | Delivered | Delivered | Delivered | Delivered | Delivered | Delivered |
| Failed1 | Failed | ❌ | Failed | ❌ | Failed & Rejected | ❌ |
| Suppressed | Suppressed | ❌ | Suppressed | ❌ | Suppressed | ❌ |
| Rejected1 | Rejected | ❌ | Rejected | ❌ | Failed & Rejected | ❌ |
| Provider Errored2 | ❌ | Failed (Errored) | ❌ | Failed (Errored) | ❌ | ❌ |
| Provider Undelivered2 | ❌ | Failed (Undelivered) | ❌ | Failed (Undelivered) | ❌ | ❌ |
| Read | Read | Read | Read | Read | Read | Read |
| Total Clicks | Total Clicks | ❌ | Total Clicks | ❌ | ❌ | ❌ |
| Unique Clicks | Unique Clicks | ❌ | Unique Clicks | ❌ | ❌ | ❌ |
| Replied | ❌ | ❌ | ❌ | ❌ | ❌ | Replied (keywords) |
| Unsubscribed | ❌ | ❌ | ❌ | ❌ | ❌ | Unsubscribed |
API, CSV, and Event Streams
| Term | View Message(s) API | Notifications CSV | Event Streams |
|---|---|---|---|
| Sent | platform_delivery_stats.sms.successful | ❌ | message.sms.sent |
| Audience | ❌ | ❌ | ❌ |
| Delivered | platform_delivery_stats.sms.provider_successful | ❌ | message.sms.delivered |
| Failed | platform_delivery_stats.sms.failed, platform_delivery_stats.sms.errored3 | failed, errored3 | message.sms.failed |
| Suppressed | platform_delivery_stats.sms.suppressed | ❌ | ❌ |
| Rejected | ❌ | ❌ | ❌ |
| Provider Errored | platform_delivery_stats.sms.provider_errored | ❌ | ❌ |
| Provider Undelivered | platform_delivery_stats.sms.provider_failed | ❌ | message.sms.undelivered |
| Read | ❌ | ❌ | ❌ |
| Total Clicks | ❌ | ❌ | ❌ |
| Unique Clicks | ❌ | ❌ | ❌ |
| Replied | ❌ | ❌ | ❌ |
| Unsubscribed | ❌ | ❌ | ❌ |
failed and errored — both recorded in OneSignal’s internal system when attempting to send to Twilio — is surfaced as Failed in the dashboard.
In-app terms
| Metric | Definition |
|---|---|
| Impression | The number of times an in-app message successfully displayed to a Subscription. Depending on your in-app settings, a single Subscription may register multiple impressions. |
| Card Impressions | The number of times a card within a carousel was displayed on a device. A carousel message will have multiple cards, but not all cards may be viewed by each user. Only applies to carousels. |
| Total Clicks | The number of times a button block, image block, or background was clicked. It does not include the “Close Button” clicks. |
| Unique Clicks | The number of unique clicks across all buttons, images, and backgrounds in the message. Counted once per Subscription. |
In-app lifecycle
There is no delivery lifecycle to consider. All metrics captured for an in-app message are from the device through the OneSignal SDK.In-app metrics mapping
Dashboard
| Term | Delivery Report Stat Cards | Journey Node Report Stat Card | Journey Node Report Timeseries Chart | Audience Activity | Engagement Trends |
|---|---|---|---|---|---|
| Impressions | Impressions | Impressions | Impressions | Impression | Impressions |
| Card Impressions | Card Impressions | Card Impressions | ❌ | ❌ | ❌ |
| Total Clicks | Total Clicks1 | Total Clicks1 | ❌ | ❌ | ❌ |
| Unique Clicks | ❌2 | ❌2 | ❌ | Clicked | Clicked |
Event Streams
| Term | Event Streams |
|---|---|
| Impressions | message.iam.impression |
| Card Impressions | message.iam.page_displayed |
| Total Clicks | message.iam.clicked |
| Unique Clicks | ❌ |
Live Activities terms
| Metric | Definition |
|---|---|
| Sent | The number of Live Activity updates sent from OneSignal, including both those successfully sent to the push provider (APNs) and failures. This is a composite metric. |
| Delivered | The number of Live Activity updates successfully sent to and accepted by the push provider (APNs). |
| Confirmed Receipt | The number of Live Activity updates confirmed as received by the Subscriptions, verified by the OneSignal SDK. See Confirmed Delivery for platform-specific details and requirements. |
| Unsubscribed | The number of push Subscriptions that did not receive the Live Activity update because they uninstalled the app, cleared browser data, or opted out of push and have not opened the app since. OneSignal will not attempt to send to these Subscriptions in future messages. |
| Failed | The number of push Subscriptions that did not receive the Live Activity update because of an error. OneSignal will attempt to send to these Subscriptions in future messages. |
| Clicked | The number of clicks on a Live Activity update. |
Live Activities lifecycle
Live Activities metrics mapping
Dashboard
| Term | Delivery Report Stat Cards | Audience Activity | Engagement Trends |
|---|---|---|---|
| Sent | Sent | ❌ | ❌ |
| Delivered | Delivered | Delivered | Delivered |
| Confirmed Receipt | ❌ | ❌ | Confirmed Receipt |
| Failed | Failed | Failed | Failed |
| Unsubscribed | Unsubscribed | Unsubscribed | Unsubscribed |
| Clicked | Total clicks | Clicked | Clicked |
API, CSV, and Event Streams
| Term | View Message(s) API | Notifications CSV | Event Streams |
|---|---|---|---|
| Sent | ❌ | ❌ | ❌ |
| Delivered | successful | delivered | message.live_activity.sent1 |
| Confirmed Receipt | ❌ | confirmed_receipt | message.live_activity.delivered1 |
| Failed | errored2 | errored2 | message.live_activity.failed |
| Unsubscribed | failed2 | failed2 | message.live_activity.unsubscribed |
| Clicked | ❌ | ❌ | message.live_activity.clicked |
message.live_activity.sent maps to Delivered (accepted by APNs), and message.live_activity.delivered maps to Confirmed Receipt (acknowledged by the device). Wire report pipelines to the concept, not the literal event name.
2 As with push, the View Message(s) API and CSV field failed represents unsubscribed subscriptions and errored represents delivery errors (Failed).
FAQ
Why don’t my dashboard and API counts match for push?
The dashboard Sent metric is a composite — it equals Delivered + Unsubscribed + Failed. The View Message(s) API does not return a directsent field; sum successful + failed + errored to get the equivalent value.
Why does the Push API return failed for unsubscribes and errored for delivery errors?
The field names are preserved from an earlier version of the API. In the View Message(s) API and Notifications CSV, failed means the subscription is no longer reachable (uninstalled, cleared browser data, or opted out) and errored means a delivery error that OneSignal will retry. The dashboard labels these as Unsubscribed and Failed respectively.
What’s the difference between Total Opens and Unique Opens?
Total Opens counts every open event, including repeat opens from the same recipient. Unique Opens counts each recipient at most once. The same pattern applies to Total Clicks vs Unique Clicks for email, SMS/RCS, and in-app messages.Why does the Live Activities message.live_activity.sent event map to Delivered instead of Sent?
The event name is historical. message.live_activity.sent fires when APNs accepts the activity update (the Delivered concept), and message.live_activity.delivered fires when the device acknowledges receipt (the Confirmed Receipt concept). Use the mapping table above when configuring downstream analytics.
Why does Twilio’s delivery count sometimes differ from OneSignal’s Delivered for SMS/RCS?
OneSignal’s Delivered metric reflects carrier-confirmed delivery reported back by Twilio. Differences usually come from messages that are still in flight at the time you compare, late status callbacks from carriers, or messages that moved to Provider Undelivered after an initial acceptance. See the SMS/RCS lifecycle above for where each state is captured.How do I map dashboard labels for SMS Failed to the timeseries chart?
The stat cards show a single Failed bucket, while the timeseries chart splits provider-side failures into Failed (Errored) (Provider Errored) and Failed (Undelivered) (Provider Undelivered). Audience Activity combines Failed and Rejected into Failed & Rejected.Related
Analytics overview
Tour the dashboards, APIs, and export tools OneSignal provides for measuring performance.
Confirmed Receipt
Platform requirements and SDK setup for the Confirmed Receipt metric on push and Live Activities.
Event Streams
Stream real-time message events to your warehouse using the event names in this glossary.
Engagement trends
Review aggregate engagement over time using the metrics defined here.
Exporting data
Export the Notifications CSV and other data sets referenced in the mapping tables.
Journey analytics
Measure conversion and drop-off across multi-step Journeys using Journey node reports.