Skip to main content

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:
  1. Terms: the glossary of metrics and their definitions.
  2. Delivery lifecycle: a visual representation of where each metric is captured.
  3. Metrics mapping: the name of each metric across every OneSignal surface (dashboard, API, CSV, Event Streams).
In the mapping tables, columns are surfaces (where the metric appears) and rows are concepts (what the metric represents).

Channel metrics comparison

Different channels have different delivery states and engagement metrics. The table below lists which metrics apply to each channel.
ChannelSentDeliveredFailedRejectedRemainingClickedOpenedBouncedConfirmed ReceiptReadImpressionsUnsubscribedReported as SpamSuppressedFrequency Capped
Push
Email
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

MetricDefinition
SentThe number of push notifications sent from OneSignal, including both those successfully sent to the push provider and failures. This is a composite metric.
AudienceThe number of Subscriptions in the targeted Segment(s).
RemainingThe 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.
DeliveredThe number of push notifications successfully sent to and accepted by the push provider (FCM, APNs, HMS).
Confirmed ReceiptThe number of push notifications confirmed as received by the device, verified by the OneSignal SDK. See Confirmed Delivery for platform-specific details and requirements.
UnsubscribedThe 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.
FailedThe 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.
ClickedThe number of push Subscriptions that clicked the push notification. Push notifications can only be clicked once.
Frequency CappedThe number of push Subscriptions that did not receive the push notification due to frequency cap settings.

Push lifecycle

Push metrics mapping

Dashboard

TermDelivery Report Stat CardsDelivery Report Timeseries ChartJourney Node Report Stat CardJourney Node Report Timeseries ChartAudience ActivityEngagement Trends
SentSentSentSent
AudienceAudience
DeliveredDeliveredDeliveredDeliveredDeliveredDeliveredDelivered
Confirmed ReceiptConfirmed ReceiptConfirmed ReceiptConfirmed ReceiptConfirmed ReceiptConfirmed receipt
UnsubscribedUnsubscribedUnsubscribedUnsubscribedUnsubscribedUnsubscribed
FailedFailedFailedFailedFailed
ClickedClickedClicksClickedClickedClicked
Influenced Opens
Frequency CappedCappedCappedCapped

API, CSV, and Event Streams

TermView Message(s) API1Notifications CSVEvent Streams
Sent2sent
Audience
Deliveredsuccessfuldeliveredmessage.push.sent
Confirmed Receiptreceivedconfirmed_receiptmessage.push.received
Unsubscribedfailed3failed3message.push.unsubscribed
Failederrored3errored3message.push.failed
Clickedconvertedconvertedmessage.push.clicked
Influenced Opensinfluenced_opens
Frequency Cappedfrequency_cappedfrequency_capped
1 The API also includes per-platform metrics for all fields except 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

MetricDefinition
SentThe number of emails sent from OneSignal, including both those successfully sent to the email service provider and failures. This is a composite metric.
AudienceThe number of Subscriptions in the targeted Segment(s).
RemainingThe number of Subscriptions in the target audience that haven’t yet received the email (queued or in flight). Appears on the dashboard delivery report.
DeliveredThe number of emails successfully delivered to the recipient’s inbox server.
FailedThe number of emails unable to be delivered to the inbox, excluding bounces. May include failures reported by the ESP or OneSignal delivery failures.
SuppressedThe number of emails blocked due to prior bounces or spam reports to protect sender reputation. Only recorded for apps configured to use OneSignal email.
BouncedThe 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 SpamThe 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.
UnsubscribedThe number of recipients who opted out of receiving emails.
Total OpensThe total number of times the email was opened, including repeats.
Total ClicksThe total number of times a link in the email was clicked, including repeats.
Unique OpensThe number of individual Subscriptions who opened the email. Used with Delivered to calculate the open rate.
Unique ClicksThe number of individual Subscriptions who clicked a link in the email. Used with Delivered to calculate the click rate.
Total vs Unique clicks and opens Unique clicks and opens are counted once per Subscription, regardless of how many times that user opens or clicks the same email. Total clicks and opens count every interaction, including repeats from the same user.

Email lifecycle

Email metrics mapping

Dashboard

TermDelivery Report Stat CardsDelivery Report Timeseries ChartJourney Node Report Stat CardJourney Node Report Timeseries ChartAudience ActivityEngagement Trends
SentSentSentSent
AudienceAudience
DeliveredDeliveredDeliveredDeliveredDeliveredDeliveredDelivered
FailedFailedFailedFailedFailedFailed
SuppressedSuppressedSuppressedSuppressedSuppressedSuppressed
BouncedBouncedBouncedBouncedBouncedBounced
Reported as Spam1Reported as SpamSpamReported as SpamSpamComplained
UnsubscribedUnsubscribedUnsubscribedUnsubscribedUnsubscribedUnsubscribedUnsubscribed
Total OpensTotal OpensTotal OpensTotal OpensTotal Opens
Total ClicksTotal ClicksTotal ClicksTotal ClicksTotal Clicks
Unique OpensUnique OpensUnique OpensUnique OpensUnique OpensOpenedOpened
Unique ClicksUnique ClicksUnique ClicksUnique ClicksUnique ClicksClickedClicked
1 The dashboard uses different labels for the same metric across surfaces: Reported as Spam (stat cards, Journey stat cards), Spam (timeseries charts), and Complained (Audience Activity). All refer to recipients who marked the message as spam or junk.

API, CSV, and Event Streams

TermView Message(s) APINotifications CSVEvent Streams
Sentplatform_delivery_stats.email.successfulmessage.email.sent
Audience
Deliveredplatform_delivery_stats.email.receivedemail_deliveredmessage.email.received
Failedplatform_delivery_stats.email.failedemail_failedmessage.email.failed
Suppressedplatform_delivery_stats.email.suppressedmessage.email.suppressed
Bouncedplatform_delivery_stats.email.bouncedemail_bouncedmessage.email.bounced
Reported as Spamplatform_delivery_stats.email.reported_spamemail_reported_spammessage.email.reported_as_spam
Unsubscribedplatform_delivery_stats.email.unsubscribedemail_unsubscribedmessage.email.unsubscribed
Total Opensplatform_delivery_stats.email.openedemail_openedmessage.email.opened
Total Clicksplatform_delivery_stats.email.clickedemail_clickedmessage.email.clicked
Unique Opensplatform_delivery_stats.email.unique_opensemail_unique_opens
Unique Clicksplatform_delivery_stats.email.unique_clicksemail_unique_clicks

SMS/RCS terms

MetricDefinition
SentThe number of messages sent from OneSignal, including both those successfully sent to Twilio and failures. This is a composite metric.
AudienceThe number of Subscriptions in the targeted Segment(s).
RemainingThe number of Subscriptions in the target audience that haven’t yet received the message (queued or in flight). Appears on the dashboard delivery report.
DeliveredThe number of messages successfully delivered to the carrier as reported by Twilio. Metrics are categorized further to distinguish between SMS/MMS and RCS.
FailedThe number of messages that failed to be sent to Twilio.
SuppressedThe number of messages not sent to the Subscriptions because they opted out of receiving messages from the sender.
RejectedThe 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 ErroredThe number of Subscriptions for which Twilio failed to send the message.
Provider UndeliveredThe 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 ClicksThe total number of times a link in the message was clicked, including repeats.
Unique ClicksThe number of unique link clicks across all links in the message. Counted once per Subscription.
RepliedThe number of keywords received by OneSignal, excluding consent keywords.
UnsubscribedThe number of opt-out keywords received by OneSignal.

SMS/RCS lifecycle

SMS/RCS metrics mapping

Dashboard

TermDelivery Report Stat CardsDelivery Report Timeseries ChartJourney Node Report Stat CardJourney Node Report Timeseries ChartAudience ActivityEngagement Trends
SentSentSentSentSent
AudienceAudience
DeliveredDeliveredDeliveredDeliveredDeliveredDeliveredDelivered
Failed1FailedFailedFailed & Rejected
SuppressedSuppressedSuppressedSuppressed
Rejected1RejectedRejectedFailed & Rejected
Provider Errored2Failed (Errored)Failed (Errored)
Provider Undelivered2Failed (Undelivered)Failed (Undelivered)
ReadReadReadReadReadReadRead
Total ClicksTotal ClicksTotal Clicks
Unique ClicksUnique ClicksUnique Clicks
RepliedReplied (keywords)
UnsubscribedUnsubscribed
1 Audience Activity combines Failed and Rejected into a single Failed & Rejected bucket. Stat cards and Journey stat cards show them separately. 2 Delivery Report timeseries charts break the provider-side failures into Failed (Errored) and Failed (Undelivered), which map to Provider Errored and Provider Undelivered. Stat cards roll these up under Failed.

API, CSV, and Event Streams

TermView Message(s) APINotifications CSVEvent Streams
Sentplatform_delivery_stats.sms.successfulmessage.sms.sent
Audience
Deliveredplatform_delivery_stats.sms.provider_successfulmessage.sms.delivered
Failedplatform_delivery_stats.sms.failed, platform_delivery_stats.sms.errored3failed, errored3message.sms.failed
Suppressedplatform_delivery_stats.sms.suppressed
Rejected
Provider Erroredplatform_delivery_stats.sms.provider_errored
Provider Undeliveredplatform_delivery_stats.sms.provider_failedmessage.sms.undelivered
Read
Total Clicks
Unique Clicks
Replied
Unsubscribed
3 The sum of 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

MetricDefinition
ImpressionThe 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 ImpressionsThe 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 ClicksThe number of times a button block, image block, or background was clicked. It does not include the “Close Button” clicks.
Unique ClicksThe 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

TermDelivery Report Stat CardsJourney Node Report Stat CardJourney Node Report Timeseries ChartAudience ActivityEngagement Trends
ImpressionsImpressionsImpressionsImpressionsImpressionImpressions
Card ImpressionsCard ImpressionsCard Impressions
Total ClicksTotal Clicks1Total Clicks1
Unique Clicks22ClickedClicked
1 We filter out “Close Button” clicks out of Total Clicks on the IAM Delivery Report stat card. 2 While we don’t have a label on the dashboard for unique clicks, we show unique clicks count alongside the CTR.

Event Streams

TermEvent Streams
Impressionsmessage.iam.impression
Card Impressionsmessage.iam.page_displayed
Total Clicksmessage.iam.clicked
Unique Clicks

Live Activities terms

MetricDefinition
SentThe 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.
DeliveredThe number of Live Activity updates successfully sent to and accepted by the push provider (APNs).
Confirmed ReceiptThe 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.
UnsubscribedThe 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.
FailedThe 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.
ClickedThe number of clicks on a Live Activity update.

Live Activities lifecycle

Live Activities metrics mapping

Dashboard

TermDelivery Report Stat CardsAudience ActivityEngagement Trends
SentSent
DeliveredDeliveredDeliveredDelivered
Confirmed ReceiptConfirmed Receipt
FailedFailedFailedFailed
UnsubscribedUnsubscribedUnsubscribedUnsubscribed
ClickedTotal clicksClickedClicked

API, CSV, and Event Streams

TermView Message(s) APINotifications CSVEvent Streams
Sent
Deliveredsuccessfuldeliveredmessage.live_activity.sent1
Confirmed Receiptconfirmed_receiptmessage.live_activity.delivered1
Failederrored2errored2message.live_activity.failed
Unsubscribedfailed2failed2message.live_activity.unsubscribed
Clickedmessage.live_activity.clicked
1 The Event Streams names are shifted relative to the dashboard concepts: 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 direct sent 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.

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.