Overview
OneSignal provides analytics to measure message performance, track user engagement over time, and attribute downstream business outcomes like purchases and sign-ups. You can view analytics in the Dashboard, retrieve them through the API, stream real-time events to your own systems using Event Streams, or export data to CSV. Message reports and aggregate trends are covered below. Jump to other analytics features:Event Streams
Send real-time message events like sent, opened, clicked, and dismissed to your data warehouse or analytics tools.
Exporting data
Export message and user data to CSV for offline analysis.
Journey analytics
Measure conversion, drop-off, and performance across multi-step Journeys.
Template analytics
Aggregate analytics across many messages sent from the same Template.
Conversion metrics
Measure business impact like revenue and sign-ups with cross-channel last-touch attribution.
Custom outcomes (legacy)
Track actions like purchases or sign-ups from push and in-app messages. Being replaced by Conversion metrics.
Goals
Set a target metric on a message or Journey and track progress on the delivery report.
Which analytics should I use?
Choose the right analytics tool based on your goal. Most teams use more than one depending on whether they are optimizing campaigns, debugging delivery, or analyzing long-term behavior.| Your goal | Use this |
|---|---|
| Review performance of a single message in the dashboard | Message reports |
| Aggregate performance across similar messages, ideal for transactional messages | Template analytics |
| Measure conversion across a Journey | Journey analytics |
| Track engagement trends over time in the dashboard | Engagement trends |
| Monitor user subscription status changes by channel | Subscription trends |
| Measure downstream actions like purchases or sign-ups | Conversion metrics |
| Send real-time message events to your own analytics stack | Event Streams |
| Export data for offline analysis | Exporting data |
| Track whether a message or Journey met your target metric | Goals |
Message reports
Every message sent through OneSignal has a message report showing delivery, engagement, and outcome metrics for that specific send. Message reports cover a single message — they do not aggregate data across multiple messages. Navigate to Dashboard > Messages and select a message to view its report, or retrieve reports programmatically using the View messages API and/or Export audience activity CSV.If you send messages using Journeys or Templates, use Journey analytics and/or Template analytics to see aggregated performance instead of reviewing each message individually.
Push message reports
Delivery, opens, clicks, confirmed delivery, and outcomes for push notifications.
In-app message reports
Impressions, clicks, dismissals, and conversion metrics for in-app messages.
Email message reports
Sends, opens, clicks, bounces, and unsubscribes for email messages.
SMS message reports
Delivery, clicks, failures, and opt-outs for SMS/RCS messages.
Live activity message reports
Updates, clicks, engagement, and lifecycle events for Live Activities.
Aggregate trends
Aggregate trends show how message and user activity changes over time across your entire app. These charts help you identify seasonality, spikes, or long-term engagement changes. For billing related plan usage (sends by channel, MAU, and billing limits), see:- App > Settings > Usage for app-level message volume
- Organizations > Billing for plan limits and usage across apps
Engagement trends
Engagement Trends track message sends, deliveries, opens, clicks, and unsubscribes across all messages. Engagement Trends do not show performance for individual messages — use message reports for that. Navigate to Dashboard > Analytics > Engagement Trends to view these charts. Track:- Sends and deliveries (labeled “Impressions” for in-app messages)
- Opens and clicks
- Unsubscribes

Engagement trends
Track message sends, opens, clicks, and unsubscribes over time.
Subscription trends
Subscription Trends show how Subscriptions (each device or channel a user can receive messages on) subscribe and unsubscribe over time, broken down by channel. Subscription Trends track opt-in and opt-out activity — they do not track message engagement like opens or clicks (use Engagement Trends for that). Navigate to your App’s Dashboard to view the Subscription Trends chart. Track:- Growth or decline in subscribed users
- The impact of permission prompts
- Unsubscribe spikes after campaigns

| Metric | Description |
|---|---|
| Total Subscribed | The count of all subscribed Subscriptions. Counts will fluctuate as users install and uninstall your app, clear browser data, subscribe and unsubscribe to your messages, or get deleted. For details on how these events are tracked, see Subscriptions. |
| New Subscribes | The count of subscription status changes from unsubscribed to subscribed. This includes newly created subscribed Subscriptions and current Subscriptions that subscribed to messages in the selected timeframe. |
| New Unsubscribes | The count of subscription status changes from subscribed to unsubscribed. This does not include newly created Subscriptions that never subscribed or denied the push prompt. |
Subscriptions
Learn how Subscriptions are created, stored, and marked as subscribed or unsubscribed.
Users
Users can have multiple Subscriptions and are identified by their external ID.
Conversion metrics
Conversion metrics measure the business impact of your messaging by tracking what users do after interacting with messages — such as purchases, sign-ups, or content views. You define which Custom Events count as conversions, and OneSignal attributes those conversions to messages using a last-touch attribution model across all channels (push, email, SMS, in-app, and RCS).Conversion metrics is in beta and replaces the legacy Custom Outcomes feature. If you are setting up conversion tracking for the first time, use Conversion metrics.
Conversion metrics
Full details on the attribution model, qualifying interactions per channel, attribution windows, and setup instructions.
Legacy outcomes
The legacy Custom Outcomes feature uses a different attribution model that only covers push notifications and in-app messages:| Attribution | When it applies |
|---|---|
| Direct | The user clicked the in-app message block or push notification, which launched a new session (app was closed >30s), and triggered the outcome. |
| Influenced | The user did not click a push notification, but opened the app within the influence window (default: 24 hours) and triggered the outcome. Applies to the 10 most recent push notifications. |
| Unattributed | The outcome occurred outside of any attribution window or click. Not linked to a specific message. |
FAQ
How long is message data retained?
| Message Type | Retention Period |
|---|---|
| Dashboard-sent messages | Lifetime of the app |
| API-sent messages | 30 days |
| Audience activity CSV | 30 days |
| Journeys messages | See Journeys analytics |
How do I aggregate data across multiple messages?
Each message has a unique message ID, which makes manual aggregation via the API possible but inefficient. Recommended approach:- Use Templates analytics to aggregate performance across related messages sent from the same Template.
- Use Journeys analytics to aggregate performance across related Journeys.