# Measure Performance with Reports and Analytics Learn about engagement and message-level reports, plus Performance Analytics and the activity log. # About reports > Learn about Airship's built-in reports for projects and messages, Performance Analytics for custom reporting, and how engagement data is collected and structured. Airship provides engagement data in out-of-the-box reports and Performance Analytics. You can also export your project data using our streaming service. Use these resources to extrapolate information about your audience and how they interact with your messages. This helps you understand how to engage with your customers and users in more meaningful ways. ## Aggregate and message-level reports Projects have default aggregate engagement reports and individual message reports: * [Engagement Reports](https://www.airship.com/docs/guides/reports/engagement/) * [Message Reports](https://www.airship.com/docs/guides/reports/message/) — Includes [Message A/B Test](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages/) variants and messages in [Sequences](https://www.airship.com/docs/reference/glossary/#sequence) * [Scene Reports](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/scene-reports/) Sequences also have a [Performance report](https://www.airship.com/docs/guides/messaging/messages/sequences/performance/). ## Goals and experiment reports *Goals* are selected events that generate a set of performance reports. Goal event attribution appears in message reports. You can also use Goals for measurement in Holdout Experiments and Feature Flag A/B tests. See [Goals](https://www.airship.com/docs/guides/reports/goals/). Each of your experiments generates reports so you can evaluate their performance. See the reports information for each type in [Experimentation](https://www.airship.com/docs/guides/experimentation/). ## Performance Analytics *Performance Analytics* is a customizable marketing intelligence tool that provides access to reports and graphs based on engagement data. You can build your own reports, customize existing ones, and export the data. While the [Engagement Reports](https://www.airship.com/docs/guides/reports/engagement/) convey long-term trends within your app, Performance Analytics provides more immediate data (in windows of up to 13 months) with finer granularity and options to customize the data you want to see. Unlike standard message reports, you can determine what data is relevant to your needs, by audience, event, and other dimensions. You can save your reporting criteria and dashboards, so you always see the data relevant to you and can easily share your insights with others. You can export Performance Analytics reports as downloadable CSV files. For example, you might download a report of users who executed a specific Custom Event, and then [upload the CSV as a static list](https://www.airship.com/docs/guides/audience/segmentation/audience-lists/uploaded/) and send notifications to those specific users. See [Getting Started with Performance Analytics](https://www.airship.com/docs/guides/reports/analytics/navigating/). ## Real-Time Data Streaming (RTDS) *Real-Time Data Streaming* is a service that delivers user-level events in real time to your backend or third-party systems using the Data Streaming API. While RTDS is not a report format, it can be used as a data source for reports using third-party tools. See [Real-Time Data Streaming](https://www.airship.com/docs/guides/reports/real-time-data-streaming/) and our [integrations](https://www.airship.com/docs/integrations/). > **Note:** Performance Analytics can provide data across a group of projects belonging to the same > organization. Real-Time Data Streaming provides access to event streams per individual app. You cannot get events across multiple apps in the same data stream. ## Data collection Airship retrieves engagement data from user interaction with the [SDK](https://www.airship.com/docs/guides/getting-started/developers/sdk-api/), which is required for mobile and web channels. This data falls into three main categories of event types: * **User-initiated action**, such as opening/closing your app, tapping a push notification * **Device responding to an environment change**, such as encountering a beacon * **Experience-changing actions initiated by app publisher**, such as a push send We also gather information from SMS, email, and open channels. However, because these channels do not use the SDK, they cannot return some of the advanced usage information that you can get from your apps and websites. See the following resources: * [Data collection references](https://www.airship.com/docs/reference/data-collection/) * [Data Collection for the Web SDK](https://www.airship.com/docs/developer/sdk-integration/web/data-collection/) * [Data Collection for Email](https://www.airship.com/docs/developer/api-integrations/email/data-collection/) ## Named Users and advanced data While [Performance Analytics](#performance-analytics) and [Real-Time Data Streaming](#real-time-data-streaming-rtds) do show channel data and return events for individual channels, much of Airship's advanced data, including orchestration and predictive features, requires [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). We recommend implementing Named Users to get the most from your data analysis. Named Users improve your data analysis in these ways: * Airship uses Named Users to triangulate behaviors for groups of channels representing individuals in your audience, since each [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id) represents one of many ways that the same user might access your app or service. * Determining behavior by Named User rather than by Channel ID produces higher-resolution data, down to the individual user rather than per device. * We expose the Named Users and associated analytics data in Performance Analytics and the event stream, helping you determine how to maximize the impact of your notifications for your real users, not just on an abstracted group of channels. ## Activity Log The [Activity Log](https://www.airship.com/docs/guides/reports/activity-log/) provides a unified list of messaging activity from both the dashboard and API. It shows what messages were sent, when, and to which channels and audiences, serving as an operational audit trail of your project's messaging activity. # Goals > {{< glossary_definition "goals" >}} Use Goals to measure campaign and program success and understand how your messaging impacts business goals. See also: * [Holdout Experiments](https://www.airship.com/docs/reference/glossary/#holdout_experiment) * [Feature Flags](https://www.airship.com/docs/reference/glossary/#feature_flag) ## Goal events Goals are based on events that occur in your app or website. You can create Goals based on [Custom or Predefined Events](https://www.airship.com/docs/guides/audience/events/events/#event-types) or these Default Events: | Event name | Activity name | Definition | | --- | --- | --- | | **App open** | app_open | User opened your mobile app. This event fires every time a user opens your app, including the first time. | | **First open** | first_open | User first registered a channel in your app. This event fires only once per user, when a channel is first registered. Channel registration most commonly occurs immediately after the first app open but can happen at other times as well. | | **First seen** | first_seen | The user opted in to notifications or a channel registration occurred, such as an app launching in the background or the user opening your app for the first time. | | **First opt-in** | first_opt_in | The user opted in to a channel for the first time. For Email (commercial), SMS, and Open channels only. | | **Uninstall** | uninstall | The user uninstalled your mobile app in response to a push. | | **Web session** | web_session | The user generated a [Web Session](https://www.airship.com/docs/reference/glossary/#web_session). | ### Adding events

You must add Custom and Predefined Events to your project before you can select them for Goals. You do not need to add Default Events to your project before selecting them for Goals.

## Creating Goals You can create up to 10 Goals per project. Follow these steps to create a new Goal: 1. Go to **Reports**, then **Goals** 1. Select **Create Goal**. 1. Configure fields: * Goal name — This name is used for identification in the list of all Goals in your project. * Description — This is additional information about the Goal. * Event — Search for and select an event. If the event does not have a category assigned, select from the list or select **Custom category** and enter a category name. 1. Select **Create Goal**. ## Viewing Goal reports After creating a Goal, view its performance reports to analyze engagement and measure success. Go to **Reports**, then **Goals**, and select the report icon ( ) for a Goal to open the reports:
Report name Description
Goal The number of times the event occurred per day and the 7-day average.
Channels per goal The number of [Channels](https://www.airship.com/docs/reference/glossary/#channel_engage) that performed the event at least one time. You can filter by “greater than or equal to” and “is between” and enter values.
Goal frequency per channel The frequency of event occurrence per [Channel](https://www.airship.com/docs/reference/glossary/#channel_engage). Data points displayed: 50th (median), 75th, and 99th percentiles.
Goals per platform The percentage of events that occurred per platform. Only appears if multiple platforms are configured for the project.
The default view is the last three months of data. You can select a new time frame, and the reports will reload with the data for that period. For reports displaying multiple platforms, you can filter by one or more platforms. ![Goal reporting](https://www.airship.com/docs/images/goals-report_hu_4ac7ccf22e976e7c.webp) *Goal reporting* ## Managing Goals Edit, archive, and organize your Goals from the Goals list. Go to **Reports**, then **Goals**, to view the list of all your Goals. Toggle **Active/Archived** to switch between active and archived Goals. The default sort order is by last modified, and each row displays: * Goal name * Description * Event * Event category * Date and time last modified (browser local time) You can also select the archive icon ( ), or select the edit icon ( ) to edit a Goal's name, description, and event. # Engagement Reports > Engagement reports explain aggregate user engagement activity, response rates, and important high-level statistics such as opt-in/opt-out and uninstall levels by platform. Go to *Reports* and select a report. With the exception of the Event Tracking report, which displays custom events for any platform, reports show data for iOS, Android, and Fire OS only. Date range and export options vary per report. Select the export icon (export) for *Print* and *Export CSV* options. If export is the only option, you will see **Download CSV** instead. ![Hover over a data point for more information](https://www.airship.com/docs/images/report-data-point_hu_9cf309e8bbd296e2.webp) *Hover over a data point for more information* Hover over a chart's data point to display its value. For some reports, you can click the data point to narrow the displayed date range. Most reports default to *Last 7 days*. You can change the range using the Date filter. The time frame shown in the report chart is based on the time you entered the request. Due to time zone differences, the date range displayed at the top of the chart may not correspond exactly with your selected date range. The following explains the displayed data for each date range: | Date range | Data displayed | | --- | --- | | **Last 7 Days** | Dates for today and the previous seven days will display on the horizontal axis, with data shown for each day. | | **Last 2 Weeks** | Dates for today and the previous 14 days will display on the horizontal axis, with data shown for each day. | | **Last 30 Days** | Dates for today and the previous 30 days, in increments of four days, will display on the horizontal axis, with data displayed for each day by clicking the data point in the graph. | | **Last Month** | Dates for the current month, including today, will display on the horizontal axis, with data shown for today and each day back to the beginning of the current month. | | **Last 3 Months** | The current and three previous months will display on the horizontal axis, with data shown by month. | | **Last 12 Months** | The current and 12 previous months will display on the horizontal axis, with data shown by month. | | **Today** | Based on the time you entered the request, hourly increments will display on the horizontal axis, ending at the previous hour and going back to midnight. | | **Yesterday** | Based on the time you entered the request, hourly increments will display on the horizontal axis, ending at the previous hour and going back to midnight the previous day. | The following explains the displayed data for custom date ranges: | Custom range | Data displayed | | --- | --- | | **Same dates in From and To** | If you selected a day other than today, hourly increments from midnight to 11 PM will display on the horizontal axis. If you selected today, hourly increments will display on the horizontal axis, ending at the previous hour and going back to midnight. | | **Yesterday's date in From and today's date in To** | Four-hour increments will display on the horizontal axis, beginning at midnight of the previous day and ending at the previous hour, with data displayed for each day by clicking the data point in the graph. | | **A three-day period with today's date in To** | Beginning at midnight on the date in the **From** field of the selected date range, the time will display on the horizontal axis in four-hour increments, ending at the previous hour, with data displayed for each day by clicking the data point in the graph. | | **A three-day period with a date previous to today in To** | Beginning at midnight on the date in the **From** field of the selected date range, the time will display on the horizontal axis in four-hour increments, ending at midnight on the date in the **To** field. | | **A four-day or longer time period ending with today's date in To** | In four-day or longer increments, data will display by the day. | ## App Metrics {#app-metrics} *Reports » App Metrics* assesses app activity: **sends**, **app opens**, and **time in app**. ![The App Metrics report](https://www.airship.com/docs/images/report-app-metrics_hu_fa80321f4902eed.webp) *The App Metrics report* Three panes display individual metrics for the current month to date. Hover over the trend chart in a pane to see metrics per day. Click the arrows to change the month. * **Total Sends:** Monthly total to date, percentage change from prior month, daily trend. Count includes alerting sends only; silent sends (via silent push notifications) are ignored. * **Total App Opens:** Monthly total to date, percentage change from prior month, daily trend. Count includes repeated app opens by individual users. To see the number of *unique* users that have opened your app, see the [Unique App Opens report](#unique-app-opens). * **Average Time In App:** Average number of minutes per user session, percentage change from prior month, hourly trend. Airship collects this data from user session events and measures it in *seconds*. Though behavior varies by operating system, we calculate this from events received each time your app is opened, brought to the foreground, or sent to the background. A chart displays combined metrics. Toggle displayed data by clicking *Sends*, *App Opens* and *Time In App* in the upper left corner of the chart. > **Tip:** View *Time In App* with *Sends* to see the influence your message may have had with users' session length. > **Important:** *Sends* counts notifications rather than total pushes sent, so rich messages are included in the report only if: > > 1. The users receiving the messages have opted-in to push notifications, and > 1. The messages include a notification, e.g., a badge, sound, alert text, etc. > > To view the total number of rich messages delivered, see [Message Reports](https://www.airship.com/docs/guides/reports/message/). > **Note:** An increase in Sends often corresponds to a decrease in the Time In App metric. An increase in sends may cause your audience to open your app more often, but opens from push notifications can be very short, i.e., just long enough to read the message or perform a short action). ## Devices {#devices} *Reports » Devices* provides a current view of your audience by the number of devices opted in to and out of notifications. This report is generated daily. **For the purposes of this report, a web browser is a "device."** ![The Devices report showing opt-in and opt-out counts](https://www.airship.com/docs/images/report-devices_hu_e990e618b0951a09.webp) *The Devices report showing opt-in and opt-out counts* The registration call that returns opt in/out status is slightly different for apps vs. browsers: * **Apps:** On initial app open, a channel ID is created for the user and is registered with Airship, passing along segmentation info, i.e., tags, and opt-in/out status. On subsequent app opens, registration calls are made, passing the current metadata and opt-in/out status. * **Browsers:** A registration call to Airship is made when the user initially opts in to web notifications. This *initial* registration passes device metadata and opt-in status to Airship. See: [Web: User Registration](https://www.airship.com/docs/developer/sdk-integration/web/push-notifications/#user-registration). Once we receive the event, we record the status, which is reflected in the next day's report. * **Unique Devices:** Total number of devices that have opted in or opted out of push notifications. The Unique Devices count does not include uninstalled devices. If your app only supports one platform, Combined Unique Devices is not displayed. * **Opted-in:** Devices with notification permissions on. * **Opted-out:** Devices with notification permissions off. For web, this only includes users who had previously opted in to web notifications. For SMS, opt-outs occur by sender ID, so a user might opt out of one program but still have an MSISDN known to your project. * **Uninstalled: Android or Fire OS:** Number of app uninstalls observed from opted-in devices. * **Uninstalled: iOS**: Number of app uninstalls observed from either opted-in devices or devices with background app refresh enabled. * **Uninstalled: Open**: Number of successful calls to the open channel Uninstall API. * **Uninstalled: SMS**: Number of MSISDNs that have been uninstalled. This happens automatically for any MSISDN on the carrier deactivation lists. Users can "uninstall" when a carrier deactivates a handset, or if a user requests that their account is deleted in accordance with GDPR regulations. In this case, the user is not only opted out, but their [MSISDN](https://www.airship.com/docs/reference/glossary/#msisdn) and Airship channel ID are removed from Airship entirely. * **Uninstalled: Web:** Number of users who have opted out of web notifications via browser settings and have not returned to your website. See [Detecting Uninstalled Devices](#detecting-uninstalled-devices) for information about the nuances related to the Uninstalled metric. > **Important:** The *Devices* report requires that analytics be enabled in the SDK. Analytics > are enabled by default, and disabling them renders certain features, e.g., > reports or location triggers, useless. See the *Analytics and Reporting* > sections of the SDK documentation for information about enabling > analytics: > > * [Android](https://www.airship.com/docs/developer/sdk-integration/android/analytics/) > * [iOS](https://www.airship.com/docs/developer/sdk-integration/apple/analytics/) > * [Web](https://www.airship.com/docs/developer/sdk-integration/web/analytics-and-reporting/) > **Note:** The total devices count in > [Message Reports](https://www.airship.com/docs/guides/reports/message/) may differ from > the total devices count listed in the Devices report. This may be due to but is > not limited to: > > * Additional platforms supported beyond iOS and Android. > * Devices registered via the server. > * Timing of when the Devices report is generated and when a user opens your > app for the first time or uninstalls your app. > **Tip:** Use the CSV Download to save daily snapshots and perform custom comparison. > For example, if you'd like to see how many people have opted in to your app > for the first full week in January, download the January 5th and January 11th > reports, open the files in a spreadsheet app, and calculate the difference in > device counts. ### Detecting Uninstalled Devices {#detecting-uninstalled-devices} When you send a push notification to a device that has uninstalled your app, Airship receives feedback from the platform push service (APNs or FCM) that the device is inactive. When we generate the daily Devices report, we remove the device from the Unique Devices total and opt-in/out status breakdown, and add it to the Uninstalled count. Uninstalls are detected by either: * **A standard push notification**, sent to iOS or Android devices, or * **A background push** using the `content-available` flag, sent to iOS devices. A device must have push enabled so that it can receive the notifications you send. Also keep in mind that users can prevent receiving background pushes by disabling the *Background App Refresh* option in their phone's settings. To send background pushes, first [enable it in your application](https://www.airship.com/docs/developer/sdk-integration/apple/push-notifications/getting-started/#enable-push-notifications-capability), then send an empty push notification that has the `content-available` flag enabled: * **API:** See [iOS Platform Overrides](https://www.airship.com/docs/developer/rest-api/ua/schemas/platform-overrides/#iosoverrideobject) for information about using the `content-available` flag. * **UI:** Enable *Background Processing* to use the `content-available` flag. See [Background Processing](https://www.airship.com/docs/guides/messaging/messages/delivery/delivery-options/#background-processing) in *Message delivery options*. > **Note:** * In order to receive uninstall feedback, a device must have a registered push address in Airship. > * For users opted in for background push only, you must send background pushes to get uninstall counts. > * Since there are two detection methods for iOS, the iOS Uninstalled count can > include 1) devices that were opted-in to push and 2) opted-out devices that > have background push enabled. If a user re-installs the app and opens it, the device is moved out of the Uninstalled count and placed back in the Opted-in/out count. > **Important:** Uninstalls are determined by these two methods only. For instance, a Rich > Message sent without a push notification would not receive uninstall feedback. #### Web Browsers When you send a push notification to a web user, their opt-in status is returned to Airship via the push service, e.g., FCM (Chrome) or Mozilla (Firefox). A user is considered to be Uninstalled if they have both: 1. Opted out via the browser settings, **AND** 1. Not returned to the website. When we generate the Devices report, we remove the device from the Unique Devices total and opt-in/out status breakdown, and add it to the Uninstalled count. If the user opts out via the browser settings and *does* return to the website, we instead include the device in the Opted-out count. If the user again opts in to notifications, we remove the device from the Uninstalled count and add it back to the Opted-in count. See [Web: User Registration](https://www.airship.com/docs/developer/sdk-integration/web/push-notifications/#user-registration) for additional information about registration status and options. ## Email The Email engagement report provides an aggregate view of your project's email performance. Use this report to visualize email campaign performance and to help you identify deliverability and sender reputation issues. ![The Email engagement report](https://www.airship.com/docs/images/report-email_hu_f45920a32d5b9e89.webp) *The Email engagement report* The following data is available in the Email engagement report: | Report data | Description | Comments | | --- | --- | --- | | **Total Sends** | Sends and Deliveries visualized over time | This chart also provides a predicted safe sending range that can help avoid domain and IP reputation issues. | | **Delivery Rate** | Deliveries compared to Sends over time | A declining delivery rate can indicate potential sender reputation issues, or issues with list quality. | | **Open Rate** | Unique Opens compared to Deliveries over time | Open tracking can be disabled at the project, message, or channel level. | | **Click Rate** | Unique Clicks compared to Deliveries over time | Click tracking can be disabled at the project, message, channel, or link level. | | **Bounce Rate** | Bounces compared to Sends over time | An increasing bounce rate might indicate an issue with sender reputation or list quality. | | **Domain Performance** | A table of Sends, Deliveries, Unique Open Rate, Unique Click Rate, Spam Complaint Rate, and Unsubscribe Rate by recipient domain | Cells are color-coded red or yellow to indicate numbers that might warrant further investigation. | | **Hard Bounces** | A table of Bounce Reason and Bounce Name by recipient domain | Hard bounces result in internal suppression within Airship's system. Generally, this indicates a problem with the email address. | | **Mail Blocks** | A table of Bounce Reason and count by recipient domain | These bounces are soft, indicating a potential issue with content or reputation. Addresses receiving a soft bounce remain eligible for future messages. | | **Performance by Campaign** | A table of Sends, Deliveries, Unique Open Rate, Unique Click Rate, Spam Complaint Rate, and Unsubscribe rate by [Campaign Category](https://www.airship.com/docs/reference/glossary/#campaign_categories) | Cells are color-coded red or yellow to indicate numbers that might warrant further investigation. | | **Messages** | A table listing immediate and scheduled message Sends during the selected time range | n/a | | **Ongoing (Sequences and Automations)** | A table listing [Sequence](https://www.airship.com/docs/reference/glossary/#sequence) and [Automation](https://www.airship.com/docs/reference/glossary/#automation) Sends during the selected time range | n/a | ## Event Tracking {#event-tracking} *Reports » Event Tracking* is an aggregate view of your [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event). This report shows custom events associated directly with [Channels](https://www.airship.com/docs/reference/glossary/#channel_dev) and events associated with [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). * **Event Name:** Human-readable name assigned to a particular custom event. * **Notification Attribution:** Displays whether your event was directly or indirectly attributed to the push notification. * **Location:** The source from which the event originates, most commonly one of [Interactive Notification](https://www.airship.com/docs/guides/messaging/messages/buttons/), Message Center, Landing Page, or Custom. * **Count:** Number of instances of this event. * **Value:** The value (monetary or otherwise) generated by the event. * **Avg. Value:** *Value* divided by *Count*. * **% of Total Count:** *Count* divided by the *Total* Count (listed on the bottom row). > **Note:** Only events that have been assigned a value within your app project will > generate values for the aggregate view. Event values are assigned by you > when creating events, and should align with your campaign strategy when > considering the respective weights of different activities you seek to > measure. The aggregate view is only meaningful when the unit of measure for > these activities is the same. See [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/) for > details on Custom Events setup and strategy. > **Note:** Using [Notification Buttons](https://www.airship.com/docs/guides/messaging/messages/buttons/) in your message > automatically creates [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/), > where one event is assigned to each button. When viewing the associated > [Message Reports](https://www.airship.com/docs/guides/reports/message/) or the Event Tracking report, you will see a custom > event listing for any button that has been pressed. ## Push Response {#push-response} *Reports » Push Response* assesses the impact of notification sends on app opens, with data displayed per platform. See [Appendix: Push Influence Primer](#push-influence-primer) and [Appendix: Push Response Terminology](#push-response-terminology) on this page for supporting information. ![The Push Response report](https://www.airship.com/docs/images/report-push-response_hu_6e77c006ce7ac90c.webp) *The Push Response report* ## SMS {#sms} *Reports » SMS* provides aggregate SMS notification information for your entire Airship project and per [campaign category](https://www.airship.com/docs/reference/glossary/#campaign_categories). Percentages are based on the total number of notifications sent. Select a preset date range or set a custom range to adjust the scope of the report. ![The SMS report](https://www.airship.com/docs/images/report-sms_hu_3a2a20520e445721.webp) *The SMS report* * **Sent:** The total number of SMS messages sent from your Airship project. This number corresponds to your total number of SMS users in your audience over the specified time period. * **Delivered:** The total number of SMS messages that your audience received. The difference between Sent and Delivered messages represents users who did not receive a message (i.e., problem with device connectivity or service, problem with the carrier, etc.). * **Clicked:** The total number of times that your audience clicked a message with [Shorten Links](https://www.airship.com/docs/reference/glossary/#sms_link_shortening) enabled. You can use this metric as a general test of engagement. Use the links in your messages as calls to action; if a user clicks a link, your message was effective. This is a raw total. It is not limited to a single use per message or audience member. For reporting on individual messages, go to **Messages**, then **Messages Overview**, and then select the report icon ( ) for a message. ## Surveys *Reports » Surveys* provides aggregate information about responses to questions and NPS surveys in [Scenes](https://www.airship.com/docs/reference/glossary/#scene). Scenes are listed by name on two tabs: NPS and User Feedback. * For Scenes using the NPS template or User Feedback template, reporting is on their respective tabs. * If a Scene contains an NPS survey, its report will be on the NPS tab even if the scene also includes questions. * If a [Scene A/B test](https://www.airship.com/docs/guides/experimentation/a-b-tests/scenes/) includes questions or an NPS survey, its report is in NPS or User Feedback based on Variant A. After opening the report, responses are grouped in tabs by experiment and then by variant. To export variant-specific responses, select **Download CSV** in each variant's tab. In addition to the name are the Scene status, creation date, completed count, and dismissed count. The NPS tab also includes the overall NPS score. Select the report icon ( ) to view report data. All Survey reports include these metrics: | Report data | Description | | --- | --- | | **Displayed** | The total number of times the first screen with questions/NPS was displayed | | **Submitted** | The total number of times users tapped the button or image with action [Submit Responses](https://www.airship.com/docs/guides/messaging/in-app-experiences/configuration/button-actions/#submit-responses) and the rate of submission | | **Not Submitted** | The total number of times users dismissed the Scene without tapping the button or image with action [Submit Responses](https://www.airship.com/docs/guides/messaging/in-app-experiences/configuration/button-actions/#submit-responses) | Reports for Scenes containing an NPS survey display the survey question and this information: | Report data | Description | | --- | --- | | **Overall NPS** | The Net Promoter Score. Hover to see counts for Detractors, Passives, Promoters. | | **NPS distribution** | Percentage and counts for Detractors, Passives, and Promoters | | **Responses over time: Chart** | The total number of responses and a chart showing the number of responses and distribution of each response over time. Hover over a date or period to see its number of Detractors/Passives/Promoters and NPS score. | Reports for Scenes containing questions display this information: | Report data | Description | | --- | --- | | **Responses over time: Single and Multiple Choice questions** | The question, the total number of responses, a chart showing the distribution of each response, and the number of responses over time. Hover over the data to see the percentage value of answers. | | **Responses over time: Open questions** | The question, the total number of responses, and a list of the submitted user responses. If the Scene also contains an NPS survey, answers also display the users associated NPS type (Detractors, Passives, Promoters) and can be filtered by type. | ## Unique App Opens {#unique-app-opens} *Reports » Unique App Opens* counts the number of unique users who opened your app — it is not the number of times a single user opened the app. Change the date range to determine the frequency used to count app opens: hourly, daily, weekly, etc. The default view is *Last 7 days*. ![The Unique App Opens report](https://www.airship.com/docs/images/report-unique-app-opens_hu_2e22c83da30ebb69.webp) *The Unique App Opens report* The top chart displays counts for *Opt-in Opens* and *Opt-out Opens* compared to *Sends* for all platforms, with total, average, high, and low values below. To filter by platform, click *All Platforms* and select iOS or Android. If your app only supports one platform, the filter is not displayed. When viewing a weekly or longer date range, you can click the column for a specific day to narrow the report to that day's data. > **Note:** *Total* is the sum of the displayed bars rather than the total number of > unique users who opened the app in the defined time period. For example, if > you are displaying seven days of data, a given user will appear only once > per day but might be counted up to seven times in the total. The *Percentage* pie chart compares the percentage of users who opened your app and were opted in to notifications (Opt-in Opens) to users who were opted out (Opt-out Opens). The *Trend* line graph displays the trending percentage of unique user app opens per platform. > **Important:** The Percentage pie chart only counts users who opened your app in the displayed time range. This may not be an accurate representation of the percentages of your install base as a whole. > **Tip:** You might use the Unique App Opens report report to determine the opt-in and opt-out breakdown of your daily and monthly active users. By default, the report is set to the last 7 days, providing a view of daily active users. > > * When viewing **daily active users** (7 days' activity), a user who opens the > app three times on a single day and an additional four times on a different > day would contribute one unique open for each of those days. > > * When viewing a **monthly active users** (30 days' activity), a user who opened the app 10 > times would contribute exactly one unique open for that month. ## Web {#web} *Reports » Web* provides aggregate web notification information for your entire Airship project and per [campaign category](https://www.airship.com/docs/reference/glossary/#campaign_categories). Percentages are based on the total number of notifications sent. Select a preset date range or set a custom range to adjust the scope of the report. * **Sent:** The total number of Web notifications sent from your Airship project. * **Clicked:** The total number of notifications that users clicked. * **Sessions:** The total number of web sessions in the specified date range. This does not necessarily equate to total audience; audience members can initiate multiple sessions. * **Attributed Sessions:** *Attributed web sessions* are the total number of sessions attributed to a push notification. An attributed session is a session that occurs within a 12-hour window of a web push notification. Sessions are generated when a user directly visits the website with the Airship Web SDK present, or by clicking a web notification that leads the visitor to the site. The page the user visits must have the Web SDK installed to track sessions. For reporting on individual messages, go to **Messages**, then **Messages Overview**, and then select the report icon ( ) for a message. ## Appendix: Push Influence Primer {#push-influence-primer} A number of technical and user-behavior factors make it difficult to attribute an app open to a push notification with 100% accuracy. As the industry's first and largest commercial push notification provider, Airship has both the experience and the data to recognize and model attribution across all app types with a high degree of confidence. The result is our *Push Influence* algorithm which informs the *Push Response* report. As in the graph below, we see that App Opens rise dramatically after a push notification is sent. App Opens vs. Pushes Sent ![App Opens vs. Pushes Sent](https://www.airship.com/docs/images/app-opens_hu_6af52af11138034f.webp) *App Opens vs. Pushes Sent* Direct Opens help to indicate the effectiveness of a push notification, but they do not tell the whole story. In the image below, Direct Opens represent only a portion of the spike in App Opens centered around the push notification. ![Direct Opens as a portion of App Opens](https://www.airship.com/docs/images/direct-opens_hu_fd636c6f7ab256a.webp) *Direct Opens as a portion of App Opens* As such, Direct Opens understate the true impact of a push notification. A significant number of additional opens will occur in the wake of a push, but in the absence of an interaction with the notification itself, attribution is complicated. Understanding that users are often occupied when the notification arrives and will return to the app later, we have a higher degree of confidence that a push *influenced* an open the sooner the open occurs relative to the push. Indirect Open: when a user is sent a push, but DOES NOT tap it. Instead, it reminds them to open the app later, at a more convenient time. ![Indirect Opens attributed to push notifications](https://www.airship.com/docs/images/push-impact_hu_39f28bea6c8fdb7c.webp) *Indirect Opens attributed to push notifications* To complicate matters, we must deal with the fact that some of the observed App Opens would likely have occurred anyway, even in the absence of a push notification. Every app has as natural amount of organic opens which will vary depending on app category, popularity, and other factors. We refer to this natural rate of App Opens as the Baseline Open Rate and calculate this rate for each app when determining *Push Influence* figures. ![Baseline Opens representing organic app activity](https://www.airship.com/docs/images/baseline-opens_hu_4a2ccdf8974bbf6.webp) *Baseline Opens representing organic app activity* With the context of *Direct Opens*, *Indirect Opens*, and *Baseline Opens*, we have a framework for understanding the true impact of push notifications on App Opens. We call this derived metric **Influenced Opens**. Influenced Opens represent the number of opens that occur both directly and indirectly as a result of a push notification, less the baseline organic opens that would be expected anyway. The following four bullets describe the basic formula for arriving at the *Influenced Opens* figure: * *Influenced Opens* include Direct Opens and Indirect Opens by *opt-in* users. * Only opens within a 12-hour window* after the push is sent are included in the calculation. * Baseline Opens are excluded from the Push Influence calculation. * The *Push Influence* algorithm is more likely to attribute an open as "Influenced" the closer it occurs to the push. The 12-hour window for App Open attribution has proven to be the most meaningful to *Push Influence*, when consistently applied across tens of thousands of apps in our database. Beyond 12 hours, we cannot maintain a high degree of confidence in the statistical significance of Indirect Opens vs. Baseline Opens. ### Influenced Opens ![Influenced Opens showing the true impact of push notifications](https://www.airship.com/docs/images/true-impact_hu_f885b79e23f51073.webp) *Influenced Opens showing the true impact of push notifications* Indirect Opens occur when a user is sent a push but does not tap the alert. When the user opens the app indirectly, not from tapping the notification, then attribution must be derived. Following a push notification, we typically observe a flurry of new opens above the Baseline Open Rate for a period of time. These "Influenced Opens" include both Direct Opens and Indirect Opens by opt-in users . The *Push Influence* algorithm attributes App Opens that occur within a 12-hour window of the push to this calculated metric, accounting for the Baseline Open Rate. The further an indirect opt-in open occurs from the original send time, the less likely it is to be considered an Influenced Open. ## Appendix: Push Response Terminology {#push-response-terminology} Opt-in Open : Any app open observed by a user who has opted in to receive push notifications. The Airship SDK observes open events for all users and reports both total opens and opt-in opens. Direct Open : An app open that occurs when a user interacts with a notification to open an app, e.g., taps a push notification in the notification center, lock screen, etc. The percentage of opt-in opens is calculated as *Total Direct Opens* / *Total Opt-in Opens* * 100. Indirect Open : An app open that is attributed to the presence of a push notification, but is not measured directly, i.e., the user *does not* tap the notification directly. Indirect opens are a derived metric which is explained more fully in [Appendix: Push Influence Primer](#push-influence-primer). Influenced Open : The calculated number of App Opens attributed to a push notification, having occurred within a 12-hour window of the push being sent. This includes both Direct and Indirect Opens, and the algorithm subtracts expected hourly opens that are likely to have happened without the push, and also takes less credit for opens the further they occur from the push. The percentage of influenced opens is calculated as *Total Influenced Opens* / *Total Opt-in Opens* * 100. Baseline Open : App Opens that occur regularly, irrespective of push notifications being sent. Baseline Opens might also be considered a "natural" or "organic" open in that they are expected to occur even in the absence of push notifications. Baseline Opens are derived from historical open trends on an app-by-app basis, and are excluded from Push Influence attribution. # Message Reports > Message reports evaluate the performance of individual messages. Use message reports to analyze message performance, manage message status, and view detailed engagement and delivery data. Metrics can take 10-15 minutes to update after our servers have received an event. Hover over the help icon (?) in the report for term definitions. > **Note:** When targeting Android devices, Airship sends messages to both opted-in and opted-out devices. Regular notifications are sent to opted-in devices and silent push notifications are sent to opted-out devices. Both silent and alerting sends appear in the message report. ## Open a message report For all messages except Sequences: 1. Go to **Messages**, then **Messages Overview**. 1. Select the report icon ( ) for a message. For Sequences: 1. Go to **Messages**, then **Messages Overview**. 1. Select the report icon ( ) for a Sequence. 1. Select the report icon ( ) for a message. You can also view message reports for Sequence tests. See [Sequence Test Report](https://www.airship.com/docs/guides/messaging/messages/sequences/create/test/#test-report). ## Message report sections Message reports include several sections for managing messages and analyzing performance: - [**Header**](#manage-messages) — Basic information and management options - [**Performance**](#performance) — Engagement metrics, statistics, and channel breakdowns - [**Goal Attribution**](#goal-attribution) — Goal events attributed to the message - [**Message Detail**](#message-detail) — A preview and summary of the message - [**Events**](#events) — Custom Events attributed to the message ## Manage messages The header of a message report contains its name and creation date, time, and time zone. * If the message does not have a message name, it will instead display the notification text. * If the [message was removed from a [Message Center](https://www.airship.com/docs/reference/glossary/#message_center)](https://www.airship.com/docs/guides/messaging/messages/content/app/message-center/#remove-a-message-from-a-message-center), it will also state "Removed from inbox" and the removal date, time, and time zone. Automations and Sequence messages also display their [Message Limits](https://www.airship.com/docs/reference/glossary/#message_limits) status. Select **Edit** to manage your project’s message limits. Duplication and editing options vary depending on the origin composer: | Action | Description | Steps | | --- | --- | --- | | **Duplicate** | Create a copy of a message and open it for editing. For messages created with the Message composer or as A/B test variants, you can duplicate to the Message or Automation composer. You must complete the composer steps to send the new message. | Select the duplicate icon ( ). | | **Edit (Message)** | For recurring messages created with the Message composer, open the message for editing. Recurring messages that include multi-language [localized content](https://www.airship.com/docs/guides/messaging/messages/localization/) cannot be edited. | Select the edit icon ( ). | | **Edit (Automation)** | Open the message for editing. | Select the edit icon ( ). | | **Edit (In-App Automation or Scene)** | Open the message for editing. Availability depends on message status. Active messages can be edited at any time. An Expired or Stopped message can be edited and its end date extended, making it active again, within a grace period of 14 days. After 14 days they can only be duplicated. | Select the edit icon ( ). | ### Change message status Ongoing messages display their status in the header, with icons to change the status, when available. Use the following options to change Automation status: * Select the pause icon (⏸) to pause an active message. * Select the play icon (play) to resume a paused message. * Select the remove icon (×) to delete the message and message report, and cancel its undelivered messages. Use the following options to change In-App Automation and Scene status: * Select the stop icon ( ) to change the status of an Active message to Stopped. This is effectively the same as [specifying an end date](https://www.airship.com/docs/guides/messaging/in-app-experiences/configuration/optional-features/#specify-start-and-end-dates), immediately applying an end date of "now." Active messages can be stopped at any time. * Select the play icon (play) to change the status of a Stopped or Expired message to Active. This is effectively a shortcut to editing the message and either eliminating or [specifying an end date](https://www.airship.com/docs/guides/messaging/in-app-experiences/configuration/optional-features/#specify-start-and-end-dates). See [Restart an in-app automation or scene](https://www.airship.com/docs/guides/messaging/manage/change-status/#restart). Expired messages can be restarted within a grace period of 14 days. After 14 days they can only be duplicated. Sequence message status cannot be managed from the header. Instead, go to the [Sequence Manager](https://www.airship.com/docs/reference/glossary/#sequence_manager) to make changes to the Sequence or its messages. ## Performance Data in the Performance section varies depending on message type and creation method. For Scene-specific information, see [Performance](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/scene-reports/#performance) in *Scene Reports*. **Latest Message Activity** appears for messages created using the Message and Automation composers. It lists the username, date, time, and activity associated with the most recent change to the message. This data is available for 90 days after message creation. For messages with more than one activity, select **Show all** to view all activity. ### Statistics All message reports display relevant statistics for the message type. For messages sent via push, there are counts for Total Alerting Sends, Total Alerting Not Sent, Silent Sends, and SMS Clicked. Hover over Total Alerting Not Sent to view the breakdown of reasons why messages were not delivered and a count for each reason. SMS Clicked is the number of users who engaged with an [Airship-shortened link](https://www.airship.com/docs/reference/glossary/#sms_link_shortening) in your message. Airship cannot gather data for non-shortened links. An SMS message over 160 characters appears to the user as successive messages. See [Appearance and behavior](https://www.airship.com/docs/guides/features/messaging/sms/#appearance-and-behavior) in *SMS/MMS/RCS*. Direct Engagements will not appear if the message included a send to an Open Channel. ### Engagement Over Time Engagement data is available for all messages sent via push. The Engagement Over Time bar chart includes engagement data for 12 hours following a message being sent. By default, the chart displays Direct Engagement for the message sent, such as a direct open on an app, a Message Center message open, a click on a web notification, or a click on links in your message. If you send your message using [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time) or other scheduling practices to optimize the times when your audience receives their message, you may see the graph spike at times when your audience receives the message. For [Scene Rollouts](https://www.airship.com/docs/reference/glossary/#scene_rollout), the day's percentage is included in the chart. If the setting was changed that day, it appears as a percentage range. Where available, select options to see additional information: * **Platform Breakdown:** Displays the chart data broken down by platform, such as iOS, Android, and Web. * **Attributed Engagement:** Displays the message's total engagement attributed to the notification. For messages sent to mobile app platforms, this uses our [Influenced Opens](https://www.airship.com/docs/guides/reports/engagement/#influenced-opens) metric. For messages sent to a web browser, this uses our Attributed Web Sessions metric. See [Definitions](#definitions) below. > **Tip:** The chart remembers your selected preferences. If you visit a message report > and enable Channel Breakdown, the next report you view will default to this > presentation as well. For SMS: * Use Platform Breakdown if you sent a message over SMS and another channel. This separates the Engagement Over Time graph by channel. * Attributed Engagement does not apply to SMS. * Additional Datasets do not apply to SMS- or MMS-only messages. Following the bar chart are metrics tables for channels, and also for In-App Message and Message Center (Rich Page), if included in the message: * **Channel:** Notification sends and engagement metrics by channel * **In-App Messages:** The total number of message views by opt-in and opt-out status * **Message Center (Rich Page):** The total number of message sends, views, and deletions For messages using [External Data Feeds](https://www.airship.com/docs/reference/glossary/#external_feed) with [feed error behavior](https://www.airship.com/docs/guides/personalization/sources/external-data-feeds/#setting-feed-failure-behavior-and-variable-values) set to “Abort sending the message," the total number of messages that could not be sent, if any, are noted for each channel. #### Definitions These definitions apply to the Engagement Over Time chart in the Performance section of a message report. In-App Message Send : The number of in-app and silent sends associated with the message. Silent sends are sent via [Background Processing](https://www.airship.com/docs/reference/glossary/#background_processing). An in-app message Send is logged for these scenarios: 1. **An in-app message, *with or without an associated push*, is sent to an opted-out device.** Because opted-out devices will only receive the in-app message, this is counted as an in-app message Send. 1. **An in-app message *only* is sent to an opted-in device.** > **Note:** An in-app message combined with a push notification that is sent to an > opted-in device will always be counted as a *notification* Send rather > than an *in-app message* Send. In-App Message View : The number of times an in-app message was displayed. An in-app message View is logged when a user encounters an in-app message, whether the in-app message was sent by itself or in combination with a push notification. Either of the two scenarios that result in an in-app message Send being logged will most likely also result in a View on open, assuming a user opens the app before the in-app message expires. > **Note:** An in-app message combined with a push notification that is sent to an > opted-in user can also result in a View; if the user opens the app > without tapping the push notification, the in-app message will still > display, counting as a View. Attributed Web Sessions : *Attributed web sessions* are the total number of sessions attributed to a push notification. An attributed session is a session that occurs within a 12-hour window of a web push notification. Sessions are generated when a user directly visits the website with the Airship Web SDK present, or by clicking a web notification that leads the visitor to the site. The page the user visits must have the Web SDK installed to track sessions. If a user visits the web page within 30 minutes prior to when the web push notification arrives, and they: * **Click the web push notification**, a new attributed session will be generated. * **DO NOT click the web push notification**, an attributed session will be generated only if there has been 30 minutes of inactivity on the website. ### Email Performance For messages that include the email channel, Performance includes Email Performance and Legacy Email Performance subsections that contain email-specific statistics. Select **Legacy Email Performance** for older data and formats. The legacy section has more immediate indicators of email dispatch and engagement since it is not subject to the same ETL and cache delays that provide increased accuracy for Email Performance data. ### Email Engagement by Domain, Top Links by URL, and Click Heat Map Following email statistics in Email Performance are data unique to email message reports: * **Engagement by Domain** lists selected statistics for the top 20 recipient domains by send volume. Each email address in the audience is counted as a send. Select a column header to sort. * **Top Links by URL** lists the top 10 URLs that were clicked and counts for Total Clicks and Unique Clicks. * The **Click Map** helps you learn how to optimize message layout. Within a preview of the message body, any [named link](https://www.airship.com/docs/guides/messaging/messages/content/email/email/#link-names) clicked by a user is highlighted. The volume of clicks is indicated by a highlight color in a gradient from red (most) to yellow (fewest). A table lists the same links with click counts and the percentage of clicks relative to all links in the message. You can filter the preview and table by device type and Total Clicks or Unique Clicks. By visually representing where users click most frequently, you can see which parts of an email attract the most attention and measure the effectiveness of call-to-action buttons, images, and text according to their placement. Use this information to ensure that key elements are positioned where they are most likely to be seen and engage users. Use **Preview Data** to see how personalized content in your message appears when populated with user data instead of default values. This can reveal links that might appear in the table but not in the message body due to conditional logic. See [Previewing personalized content](https://www.airship.com/docs/guides/personalization/previewing/). ### Retargeting Segments *Audience retargeting* is a method for sending follow-up messages to the audience of a parent message. This method is available for push notifications (app and web) and email in the Message composer. When a message generates retargeting [Segments](https://www.airship.com/docs/reference/glossary/#segment), they are listed under **Retargeting Segments** in the Performance section of the report. The audience size (recipient count and percentage of total audience) is shown for each Segment. ![Retargeting Segments in a message report](https://www.airship.com/docs/images/retargeting-segments_hu_9b562d0bf87d953e.webp) *Retargeting Segments in a message report* For more information and steps to send a follow-up message, see [Retarget a message audience](https://www.airship.com/docs/guides/audience/segmentation/send-retargeting-message/). ## Goal Attribution The Goal Attribution section of a message report tracks [Goal](https://www.airship.com/docs/reference/glossary/#goals) events attributed to the message. Only [Custom and Predefined Goal events](https://www.airship.com/docs/guides/audience/events/events/#event-types) are included. This report section does not appear for In-App Automations or Scenes. ![Goal attribution in a message report](https://www.airship.com/docs/images/whats-new/goal-attribution_hu_a3fa7004b8cfbf2e.webp) *Goal attribution in a message report* The initial view is time-based attribution for [Channel IDs](https://www.airship.com/docs/reference/glossary/#channel_id) for the 24 hours from send time. An app open does not need to occur within the selected time period after the message send. Only the event occurrence is required. This differs from the [Events table](#events) direct attributions, which do require both the event and an app open. The following data is displayed for unique events and total events: * Number of messages delivered * Number of devices converted * Conversion rate * Average for messages — This is the average conversion rate for similar messages. The average is calculated using messages with a send count ranging from 60% fewer to 60% more than the message's send count. Compare your message's conversion rate to this average to see how it performed relative to similar messages. Customize your view using these options when available: * **Direct attribution** — To see individual platform performance towards the Goal, select **Direct** and enable **Pivot by platform**. * **Goal** — Select a different Goal configured for your project or one of the default events, App Open or Opt-in. Opt-in includes all opt-ins, not just first opt-ins. Only Goals configured with Custom Events are available for Goal attribution. * **Time frame** — Select a number of hours. * **Identifier** — For unique events, toggle to view data for Channel IDs or [Named Users](https://www.airship.com/docs/reference/glossary/#named_user). > **Note:** * **Direct attribution for Goals is not supported for email** — To see Goal attribution for emails, select time-based attribution. > > * **Server-side Goal events and identifier selection** — If your Goal is based on a [server-side custom event](https://www.airship.com/docs/guides/audience/events/custom-events/#server-side-events) that is associated with a Named User and not a Channel ID, selecting Channel ID as the identifier will not populate the report. ## Message Detail Message Detail in a message report displays the same information shown in the Review step when creating messages. Select the arrows to page through the various previews. The channel and display type dynamically update in the dropdown menu above. You can also select a preview directly from the dropdown menu. * **Retargeting Segments** — If a push notification was used to generate [Retargeting Segments](#retargeting), the Audience table shows Retargeting as enabled. If a push notification was sent to a retargeting segment, the Audience table displays the Type as **Retargeting Message**, specifies the segment of the parent message, and lists the parent message as a link to its message report. * **Delivery by Time Zone** — The Delivery by Time Zone table is included for messages delivered according to a user's local time zone. Metrics for Alerting Sends and Engagement are provided for each time zone. The bottom row lists the total number of time zones with zero sends. This represents the number of time zones where none of your message recipients are located. * **Scenes** — Scenes have a Scene Detail section instead of Message Detail. See [Scene Detail](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/scene-reports/) in*Scene*. ## Events The Events section lists events directly and indirectly attributed to the message. Select **Download CSV** to export the data. The Events section is only displayed if you have [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event) enabled. For Scene-specific information, see [Events](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/scene-reports/#events) in *Scene Reports*. The following data is listed in the Events table: | Data | Description | | --- | --- | | **Event Name** | A human-readable name assigned to a particular Custom Event | | **Notification Attribution** | Displays whether your event was directly or indirectly attributed to the message | | **Location** | The source from which the event originates | | **Count** | The number of instances of the event | | **% of Total Count** | The **Count** divided by the **Total Count** listed on the bottom row | | **Value** | The monetary or other value generated by the event | | **Average Value** | The **Value** divided by **Count** | These reported events are also accessible via [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds) and [Performance Analytics](https://www.airship.com/docs/reference/glossary/#pa): * Message Impressions * Message Dismissed * Buttons Clicked (as Custom Events) ### SMS Events For SMS, the Events table lists the individual events that resulted from the send. These events come from the Short Message Service Center (SMSC), explaining where a message is: whether it has been dispatched, delivered, etc. If you're familiar with [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds), these events correspond to [`delivery_report`](https://www.airship.com/docs/developer/rest-api/connect/schemas/custom-sms-events/#delivery-report) events broken down by event name. Each individual recipient may result in multiple events along the path of the message. The following SMS events appear in the Events table: delivered : SMS/MMS has been delivered. dispatched : SMS/MMS was dispatched and accepted for delivery by SMSC. aborted : SMS/MMS was aborted before reaching SMSC. rejected : SMS/MMS was rejected by SMSC. failed : SMS/MMS failed to be delivered. expired : SMS/MMS Message expired before delivery to SMSC. This can happen if the expiry time for the message was very short. unknown : SMS/MMS was delivered to SMSC but a Delivery Receipt was not received or a Delivery Receipt that could not be interpreted was received. undeliverable : SMS/MMS cannot be delivered. > **Tip:** Check the **Delivered** count to see how many of your messages actually made it to their final destination. Subtract your **Delivered** count from the **Total Sends** at the top of the report to determine how many, if any, members of your audience did not receive your message. ## View the API Payload {#api-payload} 1. Open a message report, then select *Message Detail*. 1. Select **View API Payload** at the bottom of the Message Detail section. The content included in the API payload is what we call a *push object*, or *pipeline object* for automation and Sequences. The object describes everything about the notification, including the audience. See: [API: Push Object](https://www.airship.com/docs/developer/rest-api/ua/schemas/push/#pushobject) and [API: Pipeline Objects](https://www.airship.com/docs/developer/rest-api/ua/schemas/pipeline-objects/). > **Note:** The API payload is not available for: > * In-App Automations > * Scenes > * Unicast messages — See next page section. ### Unicast versus multicast messages A unicast message is any message that targets only a single user ID, such as a [Named User](https://www.airship.com/docs/reference/glossary/#named_user) or [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id), or a group of the same ID type. The API payload is not available in a message report for unicast messages. **Target unicast audience examples** ```json { // Unicast example 1 "audience": { "named_user": "jack" }, // Unicast example 2 "audience": { "OR": [ { "named_user": "jack" }, { "named_user": "jill" } ] } } ``` A multicast message targets one or more segmentation elements, such as a [Tag](https://www.airship.com/docs/reference/glossary/#tag), [Attributes](https://www.airship.com/docs/reference/glossary/#attributes), [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list), [Audience List](https://www.airship.com/docs/reference/glossary/#audience_list), or event, which may include multiple users. In the example below, `OR` means "any of these being true." The message is not considered unicast because one of the audience conditions contains a multicast element. **Target multicast audience examples** ```json { // Multicast example 1 "audience": { "tag": "sports" }, // Multicast example 2 "audience": { "OR": [ { "named_user": "jack" }, { "tag": "sports" } ] } } ``` # Real-Time Data Streaming > {{< glossary_definition "rtds" >}} {{< badge "addon" >}} With Real-Time Data Streaming (RTDS), Airship is not only your digital engagement service *provider*, but your most valuable *source* of mobile engagement data. > **Note:** Real-Time Data Streaming is an add-on service. [Contact Airship Sales](https://www.airship.com/contact-us/) to enable the service for your account. ## About Real-Time Data Streaming Real-Time Data Streaming (RTDS) delivers an Airship project's events using the Data Streaming API. When you make a call to the API endpoint, it opens a stream of uninterrupted newline JSON, returning events as they occur. This stream remains open, continuously delivering events until you close your connection, so you can see how users interact with your messaging and app or website in real time. Airship sends the events you select during setup, along with relevant identifiers that associate them with a particular user and notification or group of notifications. If you need to monitor a subset of events or specific types of events, you can apply filter parameters when opening an event stream to determine the type and quantity of events returned. All data is available using a single endpoint, with separate base URLs for each data center: * North America: `https://connect.urbanairship.com/api/events` * Europe: `https://connect.asnapieu.com/api/events` See the [Real-Time Data Streaming API reference](https://www.airship.com/docs/developer/rest-api/connect/) and the [Data Formats](https://www.airship.com/docs/developer/rest-api/connect/schemas/) section for lists of all events. ### Compliance events for Email and SMS Compliance events represent operations where users opt in to or out of email and SMS notifications. They are effectively records of your users' consent to receive SMS or email notifications. You can open an event stream containing only these events for use in maintaining compliance records, proving compliance with data regulations, and ensuring that you respect your audience's right to privacy. Compliance events are available to all email and SMS customers through the `/api/events/general` endpoint. Each event is for a single email address or [MSISDN](https://www.airship.com/docs/reference/glossary/#msisdn). For more information, see the following in the RTDS API reference: * [Compliance Event Stream](https://www.airship.com/docs/developer/rest-api/connect/operations/compliance-event-stream/) * [Email compliance events](https://www.airship.com/docs/developer/rest-api/connect/schemas/email-compliance-events/) * [SMS compliance events](https://www.airship.com/docs/developer/rest-api/connect/schemas/sms-compliance-events/) ### Routing your data You can send your Airship data to another system using direct, webhook, and partner integrations: | Integration type | Description | Setup | | --- | --- | --- | | **Direct** | Send all events to your backend systems. You control when you pull data from the event stream and filter the data according to the needs of the system that consumes it. This integration type is designed for customers who are interested in building their own custom applications on top of the event stream. | [Configure an RTDS direct integration](#configure-an-rtds-direct-integration) | | **Webhook** | Send all or selected events to another system using a [webhook](https://en.wikipedia.org/wiki/Webhook), a custom HTTP callback that is generally triggered by an event or action initiated by a user, service, or application. You provide a URL, headers, and authorization info. When the event occurs, the originating application notifies the specified URL configured for the webhook. You can configure triggering sending events between systems, enabling real-time workflows. | [Configure an RTDS webhook integration](#configure-an-rtds-webhook-integration) | | **Partner** | Send all or selected events to an external service. | [Airship partner integrations](https://www.airship.com/docs/integrations/) | ## Connect to the test server If you don't have a project in the Airship system or just want to try a test connection, you can use our test server. The test server data is randomly generated and approximates a mobile user's potential lifecycle. While connecting to the test server is not required, it is a way to see what the event stream looks like. To connect to the test server, paste this code in your terminal window: ```bash curl -vv https://connect-testing.urbanairship.com/api/events/ \ --compressed \ -u "sample_connection:sample_connection" \ -H "Accept: application/vnd.urbanairship+x-ndjson; version=3;" \ -d "{}" ``` After a short time, you should see Airship events appear. ## Configure an RTDS direct integration Connect to the event stream from a terminal window on MacOS or a Linux environment. You will construct a cURL command that connects to the appropriate Airship server, passing in no parameters. The `POST` call will route your event stream data into your terminal window. First, create an access token and get your app key in the dashboard: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Real-Time Data Streaming**. 1. Under **Real-Time Data Streaming**, select **Direct Integration**. 1. Enter a user-friendly name and description. 1. Check the box if you'd like to send location events through this connection. 1. Select **Create Access Token**. 1. Copy the App Key and Access Token values and save them in a secure location. > **Warning:** You will not be able to view the Access Token after leaving this screen. 1. Select **Save and exit**. Next, construct a cURL command to access the Data Streaming API, replacing `` and `` with your actual values: **RTDS example request** ```bash curl -vv https://connect.urbanairship.com/api/events/ \ --compressed \ -H "Authorization: Bearer " \ -H "X-UA-Appkey: " \ -H "Accept: application/vnd.urbanairship+x-ndjson; version=3;" \ -d "{}" ``` You should now be connected and receiving events. There may be a perceived lag between when events are delivered via the Airship event stream and when they appear in your terminal. This is due to how cURL processes compressed events and does not reflect the actual real-time delivery speed of the events. ### Manage direct integrations After you set up a direct integration you can edit its name and description, create more tokens, and delete tokens. You can also delete the integration. In the dashboard: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Real-Time Data Streaming**. 1. Under **Enabled Integrations**, select the direct integration you want to edit. 1. Make your changes: | Option | Description | Steps | | --- | --- | --- | | **Edit the name or description** | The name and description appear in the list of enabled integrations. | Select **Edit**, enter new text, and then select **Save**. | | **Add a token** | You can create a maximum of 25 access tokens per integration. | Next to **Access Tokens**, select **Create Token**, enter a name to identify it, select **Create token**. Next, copy the App Key and Access Token values and save them in a secure location, and then select **Got it** to close the window. You will not be able to view the Access Token after closing the window. | | **Remove a token** | Any direct connection using the token will no longer function. | Under **Access Tokens**, select **Delete** for a token, and then confirm your choice. | | **Delete the integration** | The integration will be removed from your project and its access token will no longer be valid. | Select **Edit**, then **Delete**, and then confirm your choice. | ## Configure an RTDS webhook integration > **Warning:** Webhook integrations are not recommended for high volume applications. Processing time at the client can cause events to back up, resulting in a significantly delayed event stream. [Contact Airship Sales](https://www.airship.com/contact-us/) or [Support](https://support.airship.com/) for help scoping the right Real-Time Data Streaming integration to support your application. To connect to your project's event stream using a webhook integration, configure it in the dashboard: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Partner Integrations**. 1. Select **Webhook**. 1. Configure: | Section | Description | Steps | | --- | --- | --- | | **Name and description** | The name and description will appear in the list of enabled integrations. | Enter text. | | **Webhook request URL** | This is the endpoint URL you want your events POSTed to. The host must support HTTPS. Query parameters are supported. | Enter your URL. | | **Custom headers** | Optional. You can add key/value pairs for the custom header to be sent with the request URL. | Enter a key and value. Select **Add another** for more. | | **Batch size** | By default, a webhook integration sends a JSON array of 10 event objects. This helps prevent lag in higher volume applications. You can select a batch size of a single object or an array of 5, 10, 15, 20, 30, 50, or 100 objects. | Select a batch size. | | **Event types** | The selected events will be sent to your webhook. | Check the boxes to select event types. | 1. Select **Activate**. ### Manage webhook integrations After you set up a webhook integration you can edit its configuration or remove it. In the dashboard: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Partner Integrations**. 1. Select **Webhook**. 1. (To edit) Under **Outbound Integration**, select the edit icon (✏) for the webhook you want to edit, make your changes, and select **Update** in the last step. You can change the name, description, endpoint URL, custom headers, batch size, or which events to send. 1. (To remove) Under **Outbound Integration**, select the remove icon (trash). ## Example RTDS event This is an example of a Custom Event as it would appear in your event stream: ```http POST https://example.com HTTP/1.1 Content-Length: 799 Content-Type: application/json; charset=UTF-8 Custom-Header1: Value1 Custom-Header2: Value2 Authorization: Basic dXNhcj0wYXNzd29yZA== { "id":"7e7f5990-d277-4636-b22c-912cb2ca2ec9", "offset":"1245924", "occurred":"2016-12-08T21:27:01.125Z", "processed":"2016-12-08T21:27:03.000Z", "device":{ "ios_channel":"1819298f-065f-46f1-81a0-1fea91f65ce7", "attributes":{ "locale_variant":"", "app_version":"1.2.3", "device_model":"x86_64", "app_package_name":"com.company.app", "iana_timezone":"America/Los_Angeles", "push_opt_in":"false", "locale_country_code":"US", "device_os":"10.1", "locale_timezone":"-28800", "locale_language_code":"en", "location_enabled":"true", "background_push_enabled":"false", "ua_sdk_version":"8.0.1", "location_permission":"ALWAYS_ALLOWED" } }, "body":{ "name":"finished_game", "session_id":"e025bde1-f974-42fa-a925-aca7054218dc", "properties":{ "game_name":"snaps", "game_score":1000 } }, "type":"CUSTOM" } ``` ## RTDS FAQ The following are answers to frequently asked questions about Real-Time Data Streaming. Why do some events occur in the stream multiple times? : While we take measures to prevent them, duplicates can appear in the stream for various reasons. We provide an ID on every event, which you can use to de-duplicate if your use case requires it. For users of the PARTITION subset, note that partitioning is done by ID, ensuring duplicates will always be on the same stream partition. Why do events appear in the stream with `occurred_at` from the fairly distant past? : Devices that are unable to send events to Airship due to a lack of network connectivity will save generated events and dispatch them the next time the app is open and the device is connected to the internet. This can lead to events not reaching the Airship systems until long after they occur. We do not process or pass through any events older than 90 days. If you have stricter latency requirements, use the latency filter. Why do events appear in my stream with `occurred_at` in the future, or with `occurred_at` after `processed_at`? : Because device clocks can be unreliable, we sometimes receive events that a device claims occurred in the future. If an event's time is more than five minutes in the future, we mark it as having occurred at the current server time. Why do events come in with out of order `occurred_at` times? : Events may be out of time order for an app and for a single device. This can be due to the on-device latency mentioned above and because events are processed in parallel. Consequently, no guarantees are made about the order in which events appear in the stream. Why do events come in with out of order `processed_at` times? : As mentioned above, the systems that process events and prepare them for consumption via the Data Streaming API run in parallel, so we cannot guarantee the events in the resulting stream will be ordered. Why do some events seem to be missing, like no CLOSE event following an OPEN? : This can happen for multiple reasons: > * Events are batched on the device, but to limit the impact on device storage, they may be dropped if a device cannot communicate with Airship’s servers or has met internal storage limits. > * Events may arrive in different batches, with significant gaps between send times. While the Airship SDK will attempt to flush all buffered events on app close, it may not be able to do so. This could mean that the second event will not be received until the next time the app is opened during network connectivity. When a push goes to an uninstalled app instance, why do we get both a `SEND` and an `UNINSTALL` on iOS but only an `UNINSTALL` on Android? : Firebase Cloud Messaging (FCM, Google’s notification transport system) sends feedback about uninstalled devices synchronously in their API response. Apple Push Notification Service (APNs) sends feedback later via a separate channel. Because of this differing behavior, we can immediately discover that an Android user has uninstalled and not mark them as being sent to, but we cannot do the same for an iOS user. This is platform-dependent behavior, so it is subject to change. Why did my stream contain a `PUSH_BODY` for a push that went to 0 devices? : `PUSH_BODY` events are generated when a request is made to our push systems, from sending a message using the dashboard or the push API. At that point, we do not yet have the information to determine if anyone in the specified audience will be sent to. Why does my stream contain a `SEND` event for a device, but that device never received anything? : We emit a `SEND` event when the push platform (APNs or FCM) informs us that it has accepted the push request. That push platform might then fail or otherwise be unable to send the push to the specified device, but we will not receive feedback on this unless the reason that the device is unreachable is that the app has been uninstalled. Why do I get TLS handshake errors when I try to send a request to the Data Streaming API? : In order to protect your data, we support only the newest TLS version (1.2 and above) with a modern cipher:

* TLS_CHACHA20_POLY1305_SHA256 * TLS_AES_256_GCM_SHA384 * TLS_AES_128_GCM_SHA256 * TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 Some older HTTP libraries may not support this, but we have confirmed that the following work: * Java 1.6 or newer, but will require the JCE Unlimited Strength package appropriate for your java version from Oracle * Python 2.7.9 or newer * Python 3.4 or newer * Golang 1.5 or newer * NodeJS 0.10.33 or newer * Any HTTP library linked against OpenSSL 1.0.1f or newer (OpenSSL 1.0.1e-fips, which ships with Centos 6, also supports the needed ciphers) Why do I get an HTTP 402 error code when I try to issue a request to the Data Streaming API? : The number of simultaneous connections for a given connection point is restricted, and any connection attempt that exceeds that limit will receive an HTTP 402 error response. If this continues to occur after retrying for at least 30 seconds, please [contact Airship Support](https://support.airship.com/). # Activity log > The Activity Log is a unified list of your messaging activity from both the dashboard and the API. Unicast messages and messages created using Automation and Sequences are not included. Go to **Messages**, then **Activity Log**. By default, the activity log shows message activity for the last seven days, newest messages first. To change the viewable range, select **Last 7 Days**, and then select a new time period. To export data, click **Download CSV of Current View**. Export is limited to what appears in the displayed list. If **Show More** is present, select until the desired number of entries are listed. You can also access activity data using the API. See [Activity Log Report](https://www.airship.com/docs/developer/rest-api/ua/operations/reports/#getactivitylogreport) in the API reference. > **Note:** Unicast pushes are not included in the activity because they could theoretically make the log unmanageable. For example, a large app could send millions of unicast pushes in a single day, causing the activity log to be flooded with these messages and obscuring any other useful information. The following information is available in the activity log: | Data | Definition | | --- | --- | | **Message** | The name of the message. | | **Sent** | The date, time, and time zone when the message was sent. | | **Delivery Type** | *Experiments* are groups of messages that are part of an A/B Test. All other messages are *Engagement*. | | **Channels** | The channels selected for delivery. | | **Audience** | The audience selected for delivery. Click *Details* to see its value. | | **App Notification Sends** | The number of notifications containing user-alerting elements (text, badge, sound) sent to users opted in to push. | | **Direct App Opens** |

  • Rate — A percentage calculated as *Direct App Opens* / *App Notification Sends* x 100.
  • Count — The number of app opens that directly resulted from this notification. Includes Landing Pages, Deep Links, URLs, and Event Tags.
| | **Influenced App Opens**1 |
  • Rate — A percentage calculated as *Influenced App Opens* / *App Notification Sends* x 100.
  • Count — The number of app opens that directly or indirectly resulted from your notification. See the [Push Influence Primer](https://www.airship.com/docs/guides/reports/engagement/#push-influence-primer).
| | **Web Sends** | The total number of web notifications sent to all devices. | | **Web Clicks** |
  • Rate — A percentage calculated as *Web Clicks* / *Web Sends* x 100.
  • Count — The total number of web notifications clicked on by a user.
| | **Rich Page Sends**1 | The number of Message Center Rich Pages sent to all devices. | | **Rich Page Views**1 |
  • Rate — A percentage calculated as *Rich Page Views* / *Rich Page Sends* x 100.
  • Count — The number of users who viewed this Message Center Rich Page at least once.
| 1. Not applicable to web push notifications. ## Performance Analytics Performance Analytics visualizes engagement data, helping you understand what your customers are doing and which behaviors cause them to take action. # Getting Started with Performance Analytics > Performance Analytics visualizes engagement data, helping you understand what your customers are doing and which behaviors cause them to take action. With user-level audience engagement dashboards, ad-hoc discovery tools, and conversion reporting, you can uncover the "why" behind your ROI. ## Enabling Performance Analytics All current Airship plans include Performance Analytics. If you find you do not have access, [Contact Airship Sales](https://www.airship.com/contact-us/) to enable it for your account. See also [Data](https://www.airship.com/docs/reference/feature-packages/#data) in the *Feature packages reference*. ## Navigating Go to **Reports**, then **Performance Analytics**. The default Dashboards are arranged in tabs. Each default Dashboard is a collection of topical reports, called *Looks*, displayed in tiles. ![The Performance Analytics Overview Dashboard showing three Looks](https://www.airship.com/docs/images/insight-dashboard_hu_61a5e2b1c0c06842.webp) *The Performance Analytics Overview Dashboard showing three Looks* Below the tabs is the project's industry and sub-industry. If they are incorrect, select them to open your project's settings, select a new industry and sub-industry, and then select **Update project**. This requires [Owner, Administrator, or Full Access permissions](https://www.airship.com/docs/guides/getting-started/admin/teams-messaging/#access-levels). ### Dashboard layout and options All Dashboards have the same basic layout and options. Below the Dashboard name are its default filters with preset values. Opposite these are: * The time since the data last updated * Icon buttons to reload the data, show/hide filters, access additional Dashboards and Looks, and perform these actions: * Download as a CSV or PDF * [Schedule delivery of the data](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/scheduling/) — You can select various methods, formats, and other options. * Reset the filters if you edited them Where available, select the info icon (ⓘ) next to a Look's name to read its definition. ### Shared Dashboards and Looks To access additional Airship-curated Dashboards and Looks, select the folder icon (folder-simple), then **Shared**. You will see individual Dashboards and Looks, and more are organized within folders. For more information, see [Default Dashboard and Look definitions](https://www.airship.com/docs/guides/reports/analytics/definitions/). # Performance Analytics Dashboard and Look definitions > This reference describes each default Look and Dashboard available in Performance Analytics. Looks are available individually and within Dashboards. For the default Dashboards, go to **Reports**, then **Performance Analytics**, then select a tab: * Cohorts * Device Properties * Labs * Lifecycle * Location * Messages * Overview * Predictive * Profile * Revenue * Send Frequency Additional default Looks and Dashboards are available in [shared folders](https://www.airship.com/docs/guides/reports/analytics/navigating/) for the above topics, plus: * Email * Subscription lists Definitions of each and navigation information for shared folders are provided here. Shared Dashboards are listed with Looks. Most contain a single Look with the same name as the Dashboard. If they contain multiple Looks, they are nested under the Dashboard name. > **Note:** * If Performance Analytics was recently enabled for your account, you must wait for your Dashboards to be populated with data. > * Availability of some Looks and Dashboards is determined by your Airship plan or data center location. ## Cohorts Cohort data is about user activation and retention. Looks in the Cohorts default Dashboard: | Look | Definition | Usage comments | | --- | --- | --- | | **Retention by Install Day - Heatmap** | A heatmap view of daily user retention by install day cohort. | Identify days that had higher or lower retention than normal. | | **Retention by Install Day - Line** | A line visualization of daily user retention by install day cohort. | Identify days that had higher or lower retention than normal. | | **Activation Cohort** | A view of the group of people who complete a specific event in your app, as well as their open activity each day after completing the event | This type of Look is helpful for finding which events in your app ultimately lead to a user returning day after day. This is often referred to as a behavioral cohort as opposed to a retention cohort, which tracks activity of users after an install. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Cohorts**. Shared Looks: | Look | Definition | Usage comments | | --- | --- | --- | | **Retention by Install Week** | The activity of new users over time

Each row represents a cohort of users that opened the app for the first time in the labeled week. The install count represents all the users that installed in the calendar week. | Use this Look to identify weeks that had higher or lower retention than normal. Day One retention is the percentage of people that opened the app the next day after install. Day One through Seven Retention, 7-14, and 14-30 are the percentage of people that opened the app anytime between that range from the install cohort. | | **Uninstalls by Install Date** | The rate of uninstall events by install day | Identify days in which more uninstalls occurred than normal. | | **Uninstalls by Install Week** | The rate of uninstall events by install week | Identify weeks in which more uninstalls occurred than normal. Keep in mind that since data is calculated at the week level, it can trickle in over time and update the rate. A user installing on 30 July will appear in the 24 July install week. If the user uninstalls on 5 August, that is still within a week, so the 00 Week Retention rate will be different on 3 August and on 6 August. | {class="table-col-1-20 table-col-2-40"} ## Device Properties Device Properties data provides information about your users' devices, e.g., Airship SDK version, app version, opt-in enabled/disabled, and other device-relevant metadata. Unless otherwise indicated, the data in each Look corresponds to the date range specified in *Filters*. Looks in the Device Properties default Dashboard: | Look | Definition | | --- | --- | | **Notification Opt-in Enabled Devices (All Time)** | The percentage of opted-in and opted-out devices, split by platform, and the total number of opted-in/out devices on your app

At the bottom of the Look are iOS Opt-In Benchmarks, which provide some guidance on industry standard opt-in/out rates, based on our benchmark studies. The Low, Medium, and High percentages indicate the 10th, 50th, and 90th percentiles, respectively, for your industry. | | **Notification Opt-in Enabled Devices (During Date Range)** | The percentage of users that have opted-in or out of push notifications during the specified date range | | **Background Enabled (During Date Range)** | The percentage of background-enabled devices | | **Location Enabled (During Date Range)** | The percentage of location-enabled devices | | **Time zones (Top 50) (During Date Range)** | The top 50 time zones among your users | | **Language Country (Top 50) (During Date Range)** | The top 50 country tags among your users | | **Language (Top 50) (During Date Range)** | The top 50 language tags among your users | | **iOS Model (Top 50) (During Date Range)** | The top iOS models among your users | | **[iOS or Android] Version (Top 50) (During Date Range)** | The most frequently installed versions among your users. | | **[iOS or Android] App Version (Top 50) (During Date Range)** | The most frequently installed app versions among your users | | **[iOS or Android] UA Version (During Date Range)** | The most frequently installed SDK versions among your users | {class="table-col-1-30"} For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Device Properties**. Shared Looks: | Look | Definition | | --- | --- | | **Device Tag Adds by User** | The number of [device tags](https://www.airship.com/docs/reference/glossary/#device_properties) added by [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id) during the filtered time range | | **Opted in Status by Day** | The number of channels with opted-in push notifications per mobile platform over the last 30 days | | **Opted in Status by Week** | The evolution of opted-in and opted-out users by week for the last three months | | **Web Audience by Browser Type** | The number of opted-in channels per browser type (desktop or mobile) | ## Email See [Email in Performance Analytics](https://www.airship.com/docs/guides/reports/analytics/email/). ## Labs The Labs Dashboard provides early access to Dashboards and Looks Airship is evaluating to enhance your reporting experience. You can provide feedback using the survey link on the page. To show or hide Labs in Performance Analytics, a user with [Owner, Administrator, or Full Access permission](https://www.airship.com/docs/guides/getting-started/admin/teams-messaging/#access-levels) must toggle the option in your project settings: 1. Next to your project name, select the dropdown menu (▼), then **Settings**. 1. Under **Project settings**, select **Dashboard Settings**. 1. Select the toggle for **Labs Dashboard**. > **Important:** Airship Labs analytics dashboards and reports are provided as is. Please note: > * Features may contain bugs or reliability issues. > * Reports, dashboards, and underlying data may change without notice. > * Changes could impact any custom reports you build. > * Features may be modified or removed entirely. > > Use of Pilot features is governed by the [Airship Beta Services Terms](https://www.airship.com/legal/beta-terms). Looks are provided under topical headings. Select the link under each Look to access a Dashboard containing additional related Looks. Some dashboards can be filtered by Reachable [Contact](https://www.airship.com/docs/reference/glossary/#contact) and Reachable [Channel (Development)](https://www.airship.com/docs/reference/glossary/#channel_dev). *Reachable* means the user has an identifier for one or more channels configured for your Airship project that can receive messages. Users can receive messages on any [Channel (Engagement)](https://www.airship.com/docs/reference/glossary/#channel_engage) where their channel is opted in, and those that do not require opting in. Their email channels must not be suppressed. For example, if: * a Contact has app, email, and SMS channels that are all opted out, and * your project is configured for the same engagement channels and sends push, Message Center, email, and SMS messages, then the Contact's channels' reachable statuses are: * App: Reachable, because Message Center doesn't require opting in * Email: Reachable, because transactional email doesn't require opting in * SMS: Unreachable, because SMS requires opting in and the channel is opted out ## Lifecycle The Lifecycle Dashboard displays the user count for each Active Users Look. Line graphs show user counts over time and broken down by platform. View trends of new users and app uninstalls. Looks in the Lifecycle default Dashboard: | Look | Definition | | --- | --- | | **Daily Active Users** | The number of unique users that opened your app in the last one day, not including today. | | **Weekly Active Users** | The number of unique users that opened your app in the last seven days, not including today. | | **Monthly Active Users** | The number of unique users that opened your app in the last 30 days, not including today. | | **New Users** | Daily count of new users that opened the app for the first time, broken down by platform along with the total. | | **Uninstall** | The number of uninstalls for each day. Uninstall information is only available for users you have sent a notification to. | | **Daily Active User Trend** | Daily count of users that opened the app, broken down by platform along with the total. | | **Sessions** | Daily count of the number of times the app was opened. | | **Session duration by day of week** | User session durations by day of week, split by platform, in the last seven days. | | **User Session Duration** | The distribution of user session durations in minutes for the given time range. In the [Explore view](https://www.airship.com/docs/guides/reports/analytics/exploring/#the-explore-view), filter by a specific push ID or slice by tags. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Lifecycle**. These Looks are available for projects using the US cloud site only. Shared Looks: | Look | Definition | | --- | --- | | **Average Message Count Prior to Uninstall** | Average count of messages received for users prior to an uninstall event. | | **Average Open Count** | Average Open count for users installing and uninstalling within retention window and have had the app installed for at least one day. | | **Decay Uninstalls** | The number of uninstall events due to user inactivity. | | **Message Count prior to an Uninstall** | The number of messages received per user who uninstalled within a time frame. | | **New Users by Day and Opt In Status** | List of new users, split by opt-in status. | | **Top Messages before an Uninstall** | Top messages by user count. We look at a user's uninstall timestamp, then look backward to rank their messages within a window, with 1 being the most recent. | | **Uninstalled Users Lifetime Averages** | The average number of days a user is active based on uninstall data and the average number of messages sent to users. | | **Uninstalls per App** | Count the number of uninstall events due to user inactivity for all the apps you have access to. | | **Uninstalls vs Installs** | List of new users (installs) and uninstalls. Uninstalls are received after sending a notification to a user that has either deleted your app or opted out of web notifications and never returned to your site. | ## Location Location data help you understand where your active users are, as well as their behaviors. * The User Locations Look is based on automatic location events via a device's GPS. The remaining Looks are based on usage of our Region framework via Gimbal and other beacon providers. See [Gimbal integration](https://www.airship.com/docs/integrations/gimbal/). * Region data exists as Arrival or Departure records triggered by entering or exiting a region. A region is defined by either a geofence or beacon. * The Date Range filter refers to the date range of region activity. The Recent Activity Window will always extend the appropriate number of hours prior to the date range. See also [Exploring Region Events](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/#exploring-region-events) Looks in the Location default Dashboard: | Look | Description | | --- | --- | | **User Locations** | Your users' locations within the last whole day are represented in a heat map. See the legend in the lower left corner for numeric values. Drag and zoom to concentrate the view on a specific region. | | **Total Arrivals** | The number of times users triggered a geofence or beacon by entering a region during the selected date range. | | **Unique Users** | The number of unique users that triggered a geofence or beacon during the selected date range. | | **Average Dwell Time (min)** | The average dwell time in minutes of a user while in a geofence or the vicinity of a beacon during the selected date range.

The dwell time within a region is derived by matching an Arrival to a Departure. Records are matched for a user if they are consecutive actions within the same region within twelve hours. Unmatched records are not included in dwell time calculations. | | **Arrivals by Hour** | A line graph of the number of Arrivals per hour for the last seven days by platform. | | **Top 15 Regions by Total Arrivals** | A bar chart of Arrivals and Distinct Users for the top 15 regions by overall Arrival count. | | **Unique Regions Encountered per User** | The distribution of users by the number of distinct regions they encountered. | | **Region Dwell Time in Minutes** | The distributions of dwell time for all visits. | {class="table-col-1-30"} ## Messages The Messages Dashboard contains data about your messaging over the last seven days. You can change the date range filter in the [Explore view](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/#the-explore-view). Looks in the Messages default Dashboard: | Look | Description | | --- | --- | | **Messages** | All Scheduled Messages and A/B Test notifications from the last seven complete days, along with the Delivery/Display Counts, Direct Response Metrics, Indirect Response Metrics, and Opt Out Metrics for each. Message types included are Push Notifications, Web Notifications, Message Center Deliveries, and In-App Impressions. Opt Out events are attributed to a notification if they occur within one hour of delivery. | | **Automations in Date Range** | All deliveries for your Automated Pipelines within the last seven complete days, along with the Delivery/Display Counts, Direct Response Metrics, Indirect Response Metrics, and Opt Out Metrics for each. Message types included are Push Notifications, Web Notifications, Message Center Deliveries, and In-App Impressions. Opt Out events are attributed to a notification if they occur within one hour of delivery. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Messages**. Shared Looks: | Look | Description | | --- | --- | | **A/B Test: Indirect Opens for Control-Variant** | Summary of the Control/Variant Test. Here we compare unique indirect user opens for the Control to each variant. Direct opens are not included for the control group since they do not receive a notification. | | **A/B Test: Indirect Opens for Variants** | Count of indirect opens for each variants of the A/B test. | | **Campaigns** | Aggregate performance of all messages (including unicast) based on campaign categories. | | **Direct Open Rates by Week** | Direct open rates by week and platform. | | **E-Mail Report** | E-mail message performance over the past 60 days, per campaign category. | | **Live Activity Messages** | Live Activity message performance report, detailed per Live Activity name. | | **Message Center Deliveries** | Message Center performance report, detailed per message content. | | **Message Report by Platform** | Recreation of the main messaging report but at a user-level Look, so the message can be broken out by platform. | | **Message Report by Scheduled Time** | Message report detailed per scheduled time. By default, this Look includes the following message types: push notification, Message Center, web notification, in-app message. | | **Message Sent Count for Last 7 Days** | Line graph of message sent count for the last seven days. Includes unicast messages. | | **Non-Alerting Sends** | The number of messages delivered with alerting and the number of messages delivered silently, over the past seven days. | | **Opens by Push ID** | Count of user opens before and after receiving a message. To see the count, select the gear icon (⚙) then select **Explore from here**, enter or select a Push ID in the **Opens By Push - Push ID** filter, then select **Run**. | | **Retargeting Table** | The number of messages delivered, per push ID, over the past seven days. | | **Unicast Messaging** | Message performance for transactional messages where the message is addressed to a single device. | ## Overview The Overview Dashboard provides a user count in each Look. Use them to understand active users and high-level message metrics. Looks in the Overview default Dashboard: | Look | Description | | --- | --- | | **Daily Active Users** | The number of unique users that opened your app in the last one day, not including today. | | **Weekly Active Users** | The number of unique users that opened your app in the last seven days, not including today. | | **Monthly Active Users** | The number of unique users that opened your app in the last 30 days, not including today. | | **Users inactive in the last day** | The number of unique users that were not active one day ago but were active in the six days prior. | | **Users inactive in the last 7 days** | The number of unique users that were not active in the last seven days but were active in the 14 days prior. | | **Users inactive in the last 30 days** | The number of unique users that were not active in the last 30 days but were active in the 30 days prior. | | **Authenticated Users** | The number of users that opened your app with a [Named User](https://www.airship.com/docs/reference/glossary/#named_user) that had been set for them previously. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Overview**. Shared Looks: | Look | Description | | --- | --- | | **Active Users by Date** | Active users based on app opens over time. | | **Active Users by Month** | Active users based on app opens by month. | | **Active Users by Week by Platform** | Active users based on app opens by week, split by platform. | | **App Sessions** | The number of app sessions over the last complete day that has just passed. In other words, the previous day. | | **Growth by Day** | Counts by day of users installing, uninstalling, churning, and reactivating. Typically run for a seven-day period. | | **Opens by Hour (Time zone shifted)** | The number of app opens by hour of day over the last 60 days. | | **User Count by Platform** | Timeline of user count by day by platform. | | **User with a Direct or Indirect Open** | Count of distinct users with either a direct or indirect open with a time frame. | | **Web Events** | The number of first open, web click, and web session events that occurred over the last seven days. | ## Predictive The Predictive Dashboard is a view into [Predictive Churn](https://www.airship.com/docs/reference/glossary/#predicted_to_churn) risk groups, distribution of users across and opt-in rates within the risk groups, as well as the performance of churn mitigation. Predictive tags are added on Sundays, and the Looks default to the most recent Sunday. Looks in the Predictive default Dashboard: | Look | Description | | --- | --- | | **Low Churn Risk Users** | Users least likely to become inactive in the next 30 days. | | **Medium Churn Risk Users** | Users who exhibit signs of potentially becoming inactive in the next 30 days. | | **High Churn Risk Users** | Users most likely to become inactive in the next 30 days. | | **Risk Distribution** | Percentage breakdown of Low, Medium, and High Risk users based on the last prediction in the time frame (date in center). Click to drill down to a view where you can identify users' [Channel IDs](https://www.airship.com/docs/reference/glossary/#channel_id). | | **Top 25 Device Tags by Risk Distribution** | List the top 25 device tags by High Risk user count split by predictive churn risk category. | | **Average Sends per Weekly Churn Transition** | The average number of messages sent to each user in a one week period, based on the users' transition between churn risk categories. This can help you understand how message frequency correlates to users in the low risk category. | | **Historical Predictive Churn Outcome** | A historical view of the performance of churn prediction. The left side shows the predictions that occurred four weeks prior to the date selected in the Date Range filter. On the right side are the categories of those same users at the end of the fourth week.

If you are not taking action on your highest risk users, a majority of them will become inactive. This Look gives you an easy way to see what happened to those users and can give you confidence that our model is performing well or that your actions have caused High and Medium Risk users to move into the Low Risk category. You must have at least five weeks of churn analysis for this Look to populate. | {class="table-col-1-30"} For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Predictive**. Shared Looks: | Look | Description | | --- | --- | | **All Device Tags by Risk Distribution** | Device tags correlated with low, medium, and high risk to churn users. | | **Automations based on Tag Adds** | Push automation sent over the past seven days, triggered by adding the predictive churn tag. | | **High Churn Risks Users & Events** | High Churn Risk, Opted-In Users and their Ending Tag, broken up by the number of events each cohort had. So you can see the correlated events between churn tag transitions. | | **Optimal Send Time** | Analysis of the [Optimal Send Time](https://www.airship.com/docs/reference/glossary/#optimal_send_time) by hour of day. | | **Percentage Change by Tag Week over Week** | The change in risk categories by week for the last 30 days. | | **Predictive Churn by Best Hour** | Predictive churn by hour of day. | | **Predictive Tag Changes in the Last Week** | Predictive tag adds/deletes in the last week. This does not include users who continue to have the same tag. | ## Profile The Profile Dashboard displays current tag counts. Looks in the Profile default Dashboard: | Look | Description | | --- | --- | | **Top 50 Device Tags Added (During Date Range)** | The top 50 tags that users added over the specified date range. The date range defaults to the past seven days. | | **Top 50 Device Tags (All Time)** | The top tags among your devices. The tag counts are partitioned by opt-in status. In the [Explore view](https://www.airship.com/docs/guides/reports/analytics/exploring/#the-explore-view), splice the tags by tag group, opt-in status, or specific device properties. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Profile**. Shared Looks: | Look | Description | | --- | --- | | **User Platform Groups** | The distribution of [Named User](https://www.airship.com/docs/reference/glossary/#named_user) values across App and Web. Use this Look to see if your users are App Only, Web Only, or App and Web. | | **User Tag List** | Find users with the same combination of tags. To find the users, select the gear icon (⚙) then select **Explore from here**, configure the **Tags Current — Tag List** filter with your desired tag data, then select **Run**. | ## Revenue The Revenue Dashboard helps you understand key performance indicators associated with revenue generation or related events. The default Dashboard is customized based on the industry type set [when creating a project](https://www.airship.com/docs/guides/getting-started/setup/#create-a-messaging-project). Looks in the Revenue default Dashboard: | Look | Description | | --- | --- | | **Total Purchase/Shared Value** | Sum of all event values for Purchase or Shared over the given time range. | | **Purchase/Shared Value per User** | Total Purchase or Shared Value divided by the number of distinct users. | | **Retail/Content Funnel** | Users that followed the Retail or Content funnel path over the date range selected. See the [list of Supported Funnels](#supported-funnels) below | | **Custom Events Table** | All [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event) that occurred in the given time range. | For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Revenue**. Revenue contains a single shared Look, Custom Events by Attributed Push, which displays [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) counts by attributed push ID/message. Use this Look to see which message, if any, directly or indirectly triggered a Custom Event, and also the subsequent events. ### Supported Funnels These funnels are supported for the Retail/Content Funnel Look in the [Revenue Dashboard](#revenue): Media : `browsed_content » consumed_content » shared_content` Retail : `browsed » added_to_cart » purchased` Travel & Transportation : `browsed » added_to_cart » purchased` Total Revenue : All purchase revenue over the date range. Revenue per user : Average purchase revenue per customer that purchased. Retail Funnel : The total value for the browsed, added_to_cart and purchased event. Retail Funnel Counts : The total number of times users browsed, added_to_cart and purchased. ## Send Frequency The Send Frequency Dashboard contains Looks for send volume and frequency for the App channel. Looks are grouped under section headings that explain their use: * [Engagement by Send Volume](#engagement-by-send-volume) * [Engagement by Send Frequency for a Given Send Volume](#engagement-by-send-frequency-for-a-given-send-volume) * [Week Over Week Comparisons](#week-over-week-comparisons) * [The Messages You Sent Within the Last Week](#the-messages-you-sent-within-the-last-week) Use the filters at the top of the Dashboard to adjust weeks to analyze, send volume, and platforms. Weeks run Sunday to Saturday, UTC. Some Performance Analytics data is updated daily, but the Send Frequency Analytics Dashboard reports weekly snapshots of engagement metrics, so some mismatch in metrics are expected. [Tutorial: Interpreting the Send Frequency Dashboard](https://airship.wistia.com/medias/56a1keoib8) ### Engagement by Send Volume Engagement by Send Volume reports on the number of messages you sent last week. You can analyze the impact different send volumes had on user behavior. Analyze the impact of send volume on direct open rates, uninstalls, and opt-out rates. For a different week, use the **Engagement Week to Analyze** filter. Use the **Send Volume Range Filter** to zoom in on a range of send volumes. Looks in the Engagement by Send Volume section: | Look | Description | | --- | --- | | **User Count by Send Volume** | The weekly number of distinct user counts within the corresponding send volume group, broken down by platform. | | **Direct Open Rate by Send Volume** | The weekly average direct open rates of the users within the corresponding send volume group, broken down by platform. | | **Uninstall Rate by Send Volume** | The weekly uninstall rates of the users within the corresponding send volume group, broken down by platform. | | **Opt-out Rate by Send Volume** | The weekly opt-out rates of the users within the corresponding send volume group, broken down by platform. | ### Engagement by Send Frequency for a Given Send Volume Engagement by Send Frequency for a Given Send Volume helps you understand the impact frequency of messaging has on important metrics. For a different week, use the **Engagement Week to Analyze** filter. The **Send Volume to Analyze** filter default value is 4. Looks in the Engagement by Send Frequency for a Given Send Volume section: | Look | Description | | --- | --- | | **User Count by Send Frequency** | The weekly number of distinct user counts within the corresponding send frequency group for a given send volume, broken down by platform. | | **Direct Open Rate by Send Frequency** | The weekly average direct open rates of the users within the corresponding send frequency group for a given send volume, broken down by platform. | | **Uninstall Rate by Send Frequency** | The weekly uninstall rates of the users within the corresponding send frequency group for a given send volume, broken down by platform. | | **Opt-out Rate by Send Frequency** | The weekly opt-out rates of the users within the corresponding send frequency group for a given send volume, broken down by platform. | ### Week Over Week Comparisons Week Over Week Comparisons help you understand how your send volume changes week over week. There are Android and iOS versions of each Look. Use the **Send Volume Range** filter to zoom in on a range of send volumes. The **Weeks to Analyze** filter default value is 2. | Look | Description | | --- | --- | | **Send Volume** | The weekly number of distinct user counts within the corresponding send volume group, broken down by date. | | **Direct Open Rate** | The weekly average direct open rates of the users within the corresponding send volume group, broken down by date. | | **Uninstall Rate** | Shows the weekly uninstall rates of the users within the corresponding send volume group, broken down by date. | | **Opt-out Rate** | The weekly opt-out rates of the users within the corresponding send volume group, broken down by date. | ### The Messages You Sent Within the Last Week The Messages You Sent Within the Last Week section contains a single Look, Push Details, which displays information about messages sent within the last week: * Notification ID * Notification Date * Message * Campaign Category * Total Send Count * Direct Open User Count * Direct Open User Rate The default time frame is messages sent in the last week. For a different week, use the **Engagement Week to Analyze** filter. ## Subscription Lists For shared Looks, go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Subscription Lists**. Two Dashboards contain multiple Looks. The App and Web Subscription Lists Dashboard is a global overview of the number of users who subscribed to your [Subscription Lists](https://www.airship.com/docs/reference/glossary/#subscription_list). Looks in the App and Web Subscription Lists shared Dashboard: | Look | Description | | --- | --- | | **Currently Eligible Subscribers** | The count of current eligible subscribers to the list or lists selected by the List Filter. Eligible subscribers are opted-in to push notifications. | | **Current Subscribers** | The count of current subscribers to the list or lists selected by the List Filter. Subscribers may or may not be opted-in to push notifications. | | **Current Opt-in Audience** | The count of App and Web users in your audience that are opted-in to push notifications. | | **Average Weeks Eligible** | The average number of weeks current eligible subscribers have been eligible. The lists included are those selected by the List Filter. | | **Current Subscriber Opt-in Status** | The count of current subscribers to the list or lists selected by the List Filter and their opted-in to push notifications status. | | **Currently Eligible Subscribers by List** | The number of eligible users per subscription lists. | | **Total Current Audience** | The count of App and Web users in your audience. This includes users who are opted-in and opted-out of push notifications. | | **Current Audience Opt-in Status** | The count of App and Web users in your audience and their opted-in to push notifications status. | | **Current Audience Opt-in by Platform** | Your audience by platform and their opted-in to push notifications status. | | **Opt-in Status Over Time** | Count of opted-in and opted-out users. | | **Eligible Audience Over Time** | Eligible audience members are opted-in to notifications and subscribed to the list. | | **Average Weeks Eligible** | The average number of weeks that users have been eligible for notifications (opted-in to messages and subscribed to the list). | The Subscription Lists dashboard shows the number of users engaged by [Subscription List](https://www.airship.com/docs/reference/glossary/#subscription_list). Looks in the Subscription Lists shared Dashboard: | Look | Description | | --- | --- | | **Current Subscriber Counts** | The counts of current total subscribers and eligible subscribers. Eligible subscribers are opted-in to push notifications. Filters applied: List Filter, Platform Filter, Email Opt-in Type Selection. | | **Current Subscriber Counts by Platform** | The counts of current total subscribers and eligible subscribers, by device platform. Eligible subscribers are opted-in to push notifications. Filters applied: List Filter, Platform Filter, Email Opt-in Type Selection. | | **Eligible Audience Over Time** | Eligible audience members are opted-in to notifications and subscribed to the list. Filters applied: List Filter, Report over time filters, Platform Filter, Email Opt-in Type Selection. | | **Unsubscribes from List** | Counts of eligible users that unsubscribed from the list during the report time frame. Filters applied: List Filter, Report over time filters, Platform Filter, Email Opt-in Type Selection. | | **Average Weeks Eligible** | The average number of weeks current eligible subscribers have been eligible. Filters applied: List Filter, Platform Filter, Email Opt-in Type Selection. | | **Email Domain Breakdown** | Counts of current eligible email users per domain. Filters applied: List Filter, Email Opt-in Type Selection. Applies to Email only. If the user is opted in by default, as with transactional messages, then the email domain is not available. | # Email in Performance Analytics > Use Performance Analytics to track the health of your email audience and performance. You can view information about your email messaging in Dashboards, Looks, and the Engagement [Explore](https://www.airship.com/docs/reference/glossary/#pa_explore). ## Dashboards and Looks You can access multiple Dashboards and a standalone Look in the Shared folder. Go to **Reports**, then **Performance Analytics**, then the folder icon (folder-simple), then **Shared**, then **Email**. The standalone look, Campaign Activity Report, displays raw data, including sends, opens, clicks, and bounce metrics for your campaigns over the last seven days. Shared Dashboards: | Dashboard | Description | | --- | --- | | **Customer Email Activity (Last 30 days)** | All email events that occurred over the past 30 days. This includes all the email send events and custom events that occurred over this period, detailed per day. | | **Email Campaign Level Dashboard** | Message performance by [Campaign Category](https://www.airship.com/docs/reference/glossary/#campaign_categories). Only email messages with a set campaign category appear on this Dashboard.

This Dashboard can show you which of your campaigns have been most and least successful, helping you improve messaging and engagement in the future. Select **Filters** to filter by campaign. | | **Email Deliverability Dashboard** | Recent deliverability rates: opens, clicks, bounces, unsubscribes, and spam complaints.

This Dashboard reports metrics by domain, which can help you pinpoint deliverability issues with your various email domains. High or increasing open and click rates may indicate high quality messages and an engaged audience, and a sudden, dramatic drop can indicate deliverability issues. Declining or steadily-low bounce, unsubscribe, and spam complaint rates indicate healthy deliverability. If these rates increase, you should investigate a deliverability issue with your email domain. | | **Email Main Aggregate Dashboard** | General information about your email project over the last seven days. **Aggregate Metrics - Last 7 Days** shows various rates compared to total message sends over the last seven days with an activity trend over a monthly period. **Activity Over Time** is broken down by sent count, unique open rate, unsubscribe rate, and hard bounce rate. **Alerts** shows the percentage change in different alerts, comparing the seven-day rate to the previous 90-day rate. **Campaign Alerts** shows the percentage change in different alerts for each campaign, comparing the seven-day rate to the previous 90-day rate. Also includes **Recent Campaigns** information. | {class="table-col-1-30"} ## Engagement Explore Use the Engagement [Explore](https://www.airship.com/docs/reference/glossary/#pa_explore) to analyze the performance of your campaigns. Data returned is at the user level. First, open the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Engagement**, then **Navigate to Explore**. Next, add [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension) and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) to your query. Email-related Dimensions and Measures are listed in the next sections. For additional usage information, see [Exploring Performance Analytics data](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/). > **Note:** When exploring data, **E-mail Metrics - Device Properties** Dimensions and Measures cannot be combined with **Email Metrics** Measures. ### General data Get general counts and information about your email messaging. After opening the Engagement Explore: 1. In the sidebar, select **Message Metrics**. 1. Under **Dimensions**, select **Email**, then select any of the following: * Bounce (Yes / No) * Bounce Category * Bounce Reason Name * Click (Yes / No) * Click Count * Delivered (Yes / No) * Email Address * Link Name * Link URL * Open (Yes / No) * Open Count * Spam Complaint (Yes / No) * Unsubscribe (Yes / No) * Unsubscribe Event Type ### Device-specific data Get device-specific data captured through email engagement events `click`, `open`, and `initial_open`. These provide valuable insights into your engaged audience, including Is Mobile, which indicates if the email was opened or clicked from a mobile device, and Is Prefetched, which can be used to determine if the open event came from an Apple prefetch or Gmail prefetch. 1. In the sidebar, select **Message Metrics**. 1. Under **Dimensions**, select **E-mail Metrics - Device Properties**, then select any of the following: | Dimension | Description | | --- | --- | | **Agent Family** | Agent or client type based on user agent | | **Device Brand** | Device Manufacturer based on user agent | | **Is Mobile** | Indicates if this was a mobile device | | **Is Prefetched** | Indicates if the event was likely a machine-driven engagement, for example through Apple Mail Privacy Protection or Gmail Prefetch | | **OS Family** | Operating system based on user agent | | **OS Version** | Operating system version based on user agent | ### Post-send event data Get raw counts and rates (as percentage of total email sends) of post-send email events. You can use these to measure performance of your messages in terms of deliverability and engagement. 1. In the sidebar, select **Message Metrics**. 1. Under **Measures**, select **E-mail Metrics**, then select any of the following: * Bounce Count * Bounce Rate * Click to Open Rate * Delivery Count * Delivery Rate * Hard Bounce Count * Hard Bounce Rate * Link Unsubscribe Count * Link Unsubscribe Rate * List Unsubscribe Count * List Unsubscribe Rate * Soft Bounce Count * Soft Bounce Rate * Spam Complaint Count * Spam Complaint Rate * Total Click Rate * Total Clicks * Total Open Rate * Total Opens * Unique Click Count * Unique Click Rate * Unique Open Count * Unique Open Rate * Unsubscribe Count * Unsubscribe Rate ### Engagement event data Get raw counts of email engagement events. Use these to measure performance of your messages by device type. 1. In the sidebar, select **Message Metrics**. 1. Under **Measures**, select **E-mail Metrics - Device Properties**, then select any of the following: | Measure | Description | | --- | --- | | **Total Clicks** | Total number of email recipient clicks of a tracked link in the message | | **Total Full Opens** | Total numbers of email recipients that opened a message in a mail client, rendering a tracking pixel at the bottom of the message | | **Unique Clicks** | Unique number of email recipient clicks of a tracked link in the message | | **Unique Full Opens** | Unique numbers of email recipients that opened a message in a mail client, rendering a tracking pixel at the bottom of the message | # SMS in Performance Analytics > Learn how to access SMS data in Performance Analytics. Your SMS data is available within a few [Explores](https://www.airship.com/docs/reference/glossary/#pa_explore): * Engagement * SMS Mobile Originated * Custom Events After opening each explore, you can add SMS data to your query using the [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension) and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) listed in each sections. For additional usage information, see [Exploring Performance Analytics data](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/). ## Engagement Explore Use the Engagement Explore to analyze the performance of your campaigns. Data returned is at the user level. First, open the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Engagement**, then **Navigate to Explore**. Next, add Dimensions and Measures to your query for the following information: * [Delivery data](#delivery-data) * [Short link clicks](#short-link-clicks) * [Opt-in/out data](#opt-inout-data) ### Delivery data Get raw counts and rates (as percentage of total SMS sends) of message delivery events. These can help you determine your real message audience by determining how many of your messages were `delivered` as opposed to `aborted`, etc. After opening the Engagement Explore: 1. In the sidebar, select **Message Delivery**. 1. Under **Dimensions**, select **SMS Deliveries**, then select any of the following: * Delivery Address (MSISDN) * MMS Send (Yes / No) * Sender * Vendor * Is RCS (Yes / No) ### Short link clicks Get counts of short link clicks. Use these to determine the number of unique recipients who engaged with your messages. You can use these counts as measures of how successful your sends are. After opening the Engagement Explore: 1. In the sidebar, select **Message Metrics**. 1. Under **Measures** select **SMS Metrics**, then select any of the following: * SMS Short Link Click Count * SMS Short Link Click Named User Count * SMS Short Link Click User Count * RCS Read Count ### Opt-in/out data Get raw counts and rates (as percentage of total SMS sends) of message delivery events. Use these Measures to see the changes in your audience over time. These metrics can help you determine audience retention levels and find out if your audience is growing or shrinking. After opening the Engagement Explore: 1. In the sidebar, select **Response - Tag Changes**. 1. Under **Measures** select any of the following: * Opt In User Count * Opt In User Rate * Opt Out User Count * Opt Out User Rate ## SMS Mobile Originated Explore The SMS Mobile Originated Explore provides information about the SMS messages that your audience sends you. First, open the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **SMS Mobile Originated**, then **Navigate to Explore**. Next, add Dimensions to your query: 1. In the sidebar, go to **Mobile Originated Messages** 1. Under **Dimensions**, select any of the following: | Dimension | Description | | --- | --- | | **Inbound Message** | The inbound message text sent from your audience. | | **Keyword Matched** | The keyword matched in incoming messages. In many cases, the keyword may be the same as the inbound message. If a keyword was not matched, this field is empty. | | **Outbound Message** | The message sent in response to a mobile originated message. | | **Sender** | The originated long code, short code, or alphanumeric sender of an outbound message (sent in response to an inbound message). | | **RCS Message (Yes / No)** | The message was or was not RCS. | ## Custom Events Explore The [SMS Delivery Report](https://www.airship.com/docs/developer/rest-api/connect/schemas/custom-sms-events/#delivery-report) events are the only [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) metrics for SMS. It provides Mobile Terminated Delivery events, which are Custom Events sent from our third-party SMS providers. These events report the status of your message between the provider and your audience up to, and including, delivery. This data can help you determine your real message audience by determining how many of your messages were `delivered` as opposed to `aborted`, etc., and check for failures. The report events also include an `is_rcs` boolean property. Custom Events are often more complex than other data sets in Performance Analytics. Use the Custom Events Explore to access delivery report data. First, open the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Custom Events**, then **Navigate to Explore**. Next, add filters and Dimensions: 1. In the sidebar, select **Custom Events Properties**. 1. Under **Filter-Only Fields**, select **User Defined Property 1 Filter**, then set the filter value as equal to `error_code` for SMS or `result_code` for MMS. This separates your Mobile Terminated events by the [error codes](https://www.airship.com/docs/developer/api-integrations/sms/sms-error-codes/) from third-party short message service centers. These codes represent the status of your messages. 1. In the sidebar, select **Custom Events**. 1. Under **Dimensions**, select the filter icon (funnel-simple) next to **Custom Event Name**, then set the filter value as equal to the [SMS Delivery Report Event `name`](https://www.airship.com/docs/developer/rest-api/connect/schemas/custom-sms-events/#delivery-report) values you want to see. Possible values are `dispatched`, `aborted`, `rejected`, `delivered`, `failed`, `expired`, `unknown`, and `undeliverable`. 1. Select **Run** to return results. > **Note:** A null `error_code` indicates an MMS message. MMS messages use a `result_code`. To check the statuses of MMS messages, set a **User Defined Property** filter to `result_code` and filter the Custom Event name for `dispatched`, `delivered`, and `failed`. ![The Custom Events Explore in Performance Analytics](https://www.airship.com/docs/images/insight/pa-sms-delivery_hu_cde75efe0a8d1128.webp) *The Custom Events Explore in Performance Analytics* ### Exploring Learn about the queries behind Looks and the ways you can explore your data. # Exploring Performance Analytics data > Learn how to create custom queries. Looks are built using queries of the data in your project and displayed according to the visualization format set for the Look, such as Table, Timeline, or Single Value. This page explains how to view the queries behind the Looks and the ways you can explore your data. ## The Explore view The base query of a Look is called an *Explore*. In any Look, hover and select the more menu icon (⋮), then select **Explore from here**. This opens the Explore view, where you can see the selections, entries, and filters used to generate the information included in the query. From here, you can start customizing queries. ![The Explore view of the Funnel Look in the Revenue Dashboard](https://www.airship.com/docs/images/ins-funnel-filters_hu_dfa09186f08f380c.webp) *The Explore view of the Funnel Look in the Revenue Dashboard* Explore view sections: | Section | Description and actions | | --- | --- | | **Sidebar** | At the top is the [Explore name](#explore-definitions), followed by a search field for filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) grouped in fields below it.

Selections made here are immediately reflected in the Filters and Data sections. Separate tabs show All Fields and fields that are in use for the current query. | | **Filters** | Use this section to configure the filters in the query.

You add filters by selecting the filter icon (funnel-simple) for a Measure or Dimension in the sidebar. Select the add icon (+) or the remove icon (×) in a filter row to add or remove filters of the same type. Multiple filters of the same type are processed as a boolean OR.

The default value for the App Name filter is the current Airship project name. Operators and input support vary by field. For example a time dimension supports setting a time range, and text dimensions return matching values as you type.

To manually add filtering expressions, select the box for **Custom Filter** to expose the entry field.

Select **Run** after making changes. Only rows for which conditions are true will be returned in results. | | **Visualization** | The Explore view opens to a default visualization format, one of Table, Column, Bar, Scatterplot, Line, Area, Pie, Map, Single Value, Static Map (Regions), Static Map (Points), Donut Multiples, or Single Record.

To view the data in another format, select an icon in the Visualization section header. Hover over an icon to see its label. You may need to select the more menu icon (⋯) to expose all options. Select **Edit** for options specific to the current format.![The Visualization section header in the Explore view](https://www.airship.com/docs/images/insight-visualization_hu_d22ffad406a8f9ae.webp) *The Visualization section header in the Explore view*Some Visualization types may be incompatible with the currently selected Dimensions and Measures. | | **Data** | This section is essentially the Table visualization format. You can set the maximum number of rows to return and whether or not to display totals.![The Data section header in the Explore view](https://www.airship.com/docs/images/insight-data_hu_aa3dd3d654fe9b9.webp) *The Data section header in the Explore view* See also [Saving Queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/saving-queries/). | {class="table-col-1-20"} > **Tip:** You can bookmark queries in your web browser after opening the Explore view in a new window: > > * From a Look, hover and select the more menu icon (⋮), then hold down **Ctrl** (Windows) or **Command ⌘** (Mac) on your keyboard and select **Explore from here**. > * From the [Explore glossary](#predefined-explores), select the more menu icon (⋯) next to its name and select **Navigate to Explore**. > > Use your browser’s bookmark feature to save the view. ## Example data exploration Let's find your app's in-app impression rate. To do this we need to add two Measures to the Messages Look.

  1. Go to Reports, then Performance Analytics, and then select the Messages Dashboard.
  2. For the Messages Look, select the more menu icon (⋯), and then select Explore from here.
  3. In the sidebar, select Message Metrics, then Measures, and then In-App Impression Metrics.
  4. Select the filter icon (funnel-simple) next to:
    • In-App Impression Rate
    • In-App Dismissed User Rate
  5. Select Run.
For more tutorials, see our directory of [Common tasks and queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/). ## Explore definitions When exploring a Look, the top of the sidebar lists the name of the Explore used as its base query. There are two categories of Explores: * **App** — These are limited to the data in your currently selected project. [*Go to app Explore descriptions below*](#app-explores) * **Company** — These support aggregate metrics across multiple projects, for any projects you have access to. [*Go to company Explore descriptions below*](#company-explores) ### App Explores Descriptions of [app Explores](#explore-definitions): Active Users : Count of the active users in your app. Audience : Devices that are not marked uninstall, and their active tags. Audience by Tags : Audience counts by combinations of tag group and tag value. Make sure to leave default values in for unused filters. Audience Opt In : Metrics about your entire audience, split by opt-in status. This includes any user that currently has an app installed or has opted-in to web notifications. Automation Message Report : Aggregate performance of automated messages. Correlated Uninstalls : Messages and their uninstall rates. Custom Event Cohort : Daily open activity of users performing an activation event (custom event). This helps you understand which goals keep a user retained for longer. See also [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/). Custom Events : User-level behavioral events. Understand how people are interacting with your content. See also [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/). Experiments : A/B Test push notifications. Funnel : Create a funnel or path based on user behaviors (custom events). See: [Custom Events](https://www.airship.com/docs/guides/audience/events/custom-events/). Growth by Day : Counts by day of users installing, uninstalling, churning, and reactivating. Typically run for a 7-day period. In App Message Impressions : Explore the number of users that have seen an In App Message over time. Inactive Users : Count of inactive users. [Export lists of users](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/export/) that have been inactive to target on a different channel, such as email. Lifespan : Explore the lifecycle of your users from install to uninstall. ### Company Explores Descriptions of [company Explores](#explore-definitions): Audience : Your current audience and their active tags. Experiments : A/B Test performance. Opens : Your app's open events. Tag Events : Tag adds and removals for users over time. Use this information to understand which user properties are increasing or decreasing. Tags Active by Week : A count of users by active tags per week. ## Predefined Explores In addition to being able to [see which Explore was used as the base query for a Look](#explore-definitions), Airship provides predefined Explores you can use to build custom queries. To access them: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. To open one in the Explore view, select its name and then **Navigate to Explore**. The Explores available in the glossary are named for types of data queried, and they are limited to the data in your currently selected project: | Explore | Data queried | Resource | | --- | --- | --- | | **Audience with Attributes** | Current user [Device Properties](https://www.airship.com/docs/reference/glossary/#device_properties), [Tags](https://www.airship.com/docs/reference/glossary/#tag), and [Attributes](https://www.airship.com/docs/reference/glossary/#attributes) (except JSON Attributes) | [Custom queries and reference for the Audience with Attributes Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/audience-with-attributes/) | | **Cohort Analysis** | Defines a cohort, cohort timelines (users who install per week), and a metric to track (retention by month) | Not yet published | | **Custom Events** | [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event) | Custom queries and reference for the Custom Events Explore | | **Device Events** | App sessions (Open events), Web sessions, installs, and uninstalls | [Custom queries and reference for the Device Events Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/device-events/) | | **Engagement** | Metrics for any and all channels | [Custom queries and reference for the Engagement Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/engagement/) | | **Scenes** | [Scenes](https://www.airship.com/docs/reference/glossary/#scene) | [Custom queries and reference for the Scene Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/scenes/) | | **Surveys** | [Surveys](https://www.airship.com/docs/reference/glossary/#survey) | Not yet published | | **SMS Mobile Originated** | Mobile originated inbound SMS messages | Not yet published — See also [SMS in Performance Analytics](https://www.airship.com/docs/guides/reports/analytics/sms/) | | **Tag Events** | Adding and removing [Tags](https://www.airship.com/docs/reference/glossary/#tag) to/from users | [Custom queries and reference for the Tag Events Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/tag-events/) | ## Exploring region events You can explore your project's region events using [Location Looks](https://www.airship.com/docs/guides/reports/analytics/definitions/#location). The following are definitions of the filters, Dimensions, and Measures used in Location Looks. You cannot explore this data using the User Locations heat map. **Filter:** > Recent Activity Hours > : If not selected, this filter will default to 12 hours. If multiple numbers are input, it will use the minimum number. If the filter is selected but no number is input, it will use 1 hour. **Measure:** > Direct Open / Indirect Open / Send Count > : The number of each event preceding the Arrival. **Dimensions:** > Dwell Indicator > : Indicates whether an Arrival event has been matched to a Departure event. The events must be consecutive events for the same User in the same Region within 12 hours. > Dwell Time Tier Hours > : Buckets Dwells by hours. Tiers: 0, 1, 2, 3, 4, 5, 6. Dwells are placed into the intervals or six+ hours. > Dwell Time in Min Tier > : Buckets Dwells by minutes. Tiers: 0, 1, 5, 10, 30, 60. Dwells are placed into the intervals or 60+ minutes. > Had Direct Open/Indirect Open/Send > : For each Arrival event, we look back the number of selected hours (Recent Activity Hours) to see if that Arrival was preceded by the selected action. > Unique Regions Encountered > : The number of unique regions encountered by each user, Arrival or Departure. > Unique Regions Encountered Tier > : Buckets unique regions. Tiers: 0, 5, 10, 20, 40. Users are placed into the corresponding interval or 40+ Regions. # Custom queries and reference for the Audience with Attributes Explore > Use the Audience with Attributes Explore to understand the state of your audience by evaluating device and user data. You can view your users' current and past [Device Properties](https://www.airship.com/docs/reference/glossary/#device_properties), [Tags](https://www.airship.com/docs/reference/glossary/#tag), and [Attributes](https://www.airship.com/docs/reference/glossary/#attributes).

Data availability depends on your Performance Analytics plan.

## Navigation To access to the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Audience with Attributes**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Audience with Attributes Explore: | Category | Description | | --- | --- | | **Attributes** | Set Attribute parameters for the query. | | **Device Properties** | Get device property values associated with the channels at the time the report is run. | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Report Over Time** | Add filters and Dimensions to report historical data. | | **Tags** | Get Tag values associated with the channels at the time the report is run. | | **User Detail** | Get information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Audience with Attributes Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Current Audience Only** | Report Over Time | Determine whether or not to return your audience's current values only. Default: **Yes**. Select **No** to also return historical values. | {class="table-col-1-20 table-col-2-20"} ## Building custom queries The following sections walk you through using the Audience with Attributes Explore to create custom queries that answer: * How many mobile users can I reach with a [Push Notification](https://www.airship.com/docs/reference/glossary/#push_notification)? And how many with Email or SMS? Is my audience growing? * Within a [Tag Group](https://www.airship.com/docs/reference/glossary/#tag_group), which Tag do users subscribe to the most? Among these users, how many opted out of push notifications? ### Determine audience reach and growth Follow these steps to view historical user counts you can use to analyze your audience evolution. You can filter by Tag, Attribute, or Device Property. In our example, we add the Device Property Filter for notification opt-ins. User counts are listed per platform. First, [open the Audience with Attributes explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Current Audience Only** to `is No`. 1. In the sidebar, select **Report Over Time**, then the filters **Number of Days, Weeks or Months to Report** and **Report over time by Day, Week, or Month**. > **Tip:** Instead of navigating to filters, Dimensions, and Measures, you can find them using the search box at the top of the sidebar. 1. Set the **Number of...** and **Report over time...** filters to the period of time you want to query. 1. In the sidebar, select **Device Properties**, then **Notification Opt-in Filter**. 1. Set **Notification Opt-in Filter** to `is not null`. 1. ![Selecting the option to pivot data](https://www.airship.com/docs/images/explore-pivot-data-aa_hu_5eb4e4ac20f19c6c.webp) *Selecting the option to pivot data* In the sidebar, specify the values and measurement to display: 1. Select **Report Over Time**, then select the Dimension **Date** or **Month**. Our example uses **Date**. 1. Select **User Detail**, then select the Dimension **Platform**, then select the double-arrow icon next to **Platform**. The pivot option adds detailed metrics for each platform and makes it more readable. It can be helpful when using the Graph visualization. 1. Select **User Detail**, then select the Measure **User Count**.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Audience with Attributes Explore](https://www.airship.com/docs/images/explore-audience-reach_hu_d1f0a6736899cd11.webp) *Creating a custom query from the Audience with Attributes Explore* ### Find Tags and opt-outs Follow these steps to find which Tags in a Tag Group users subscribe to the most and how many opted out of push notifications. First, [open the Audience with Attributes explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Leave **Current Audience Only** set to `is Yes`. 1. In the sidebar, select **Device Properties**, then **Notification Opt-in Filter**. 1. Set **Notification Opt-in Filter** to `is not null`. 1. In the sidebar, select **Tags**, then **#1 Tag Group Filter**. Then set it to `is equal to` and enter the name of the Tag Group you want to return Tags for. 1. (Optional, to return specific tags in the filtered Tag Group) In the sidebar, select **Tags**, then **#1 Tag Name Filter**. Then set it to `is equal to` and enter the names of Tags in the Tag Group. 1. In the sidebar, specify values and measurements to display: 1. Select **Tags**, then select the Dimensions **#1 Tag Group** and **#1 Tag Name**. 1. Select **User Detail**, then select the Measure **User Count**. 1. ![Selecting the option to pivot data](https://www.airship.com/docs/images/explore-pivot-data_hu_7acb2794baf8f83d.webp) *Selecting the option to pivot data* Select **Device Properties**, then select the Dimension **Notification Opt-in**, then select the double-arrow icon next to **Notification Opt-in**. The pivot option adds detailed metrics for each platform and makes it more readable. 1. In the **Data** header, select the **Row Totals** check box to display the sum of opted in and opted out channels that have each Tag.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Audience with Attributes Explore](https://www.airship.com/docs/images/explore-audience-tags_hu_1f276a51dc7ff982.webp) *Creating a custom query from the Audience with Attributes Explore* # Custom queries and reference for the Custom Events Explore > Use the Custom Events Explore to query Custom Event metrics, list users by event, and find peak engagement times. This Explore allows you to get detailed metrics for your [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event).

Data availability depends on your Performance Analytics plan.

## Navigation To access the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Custom Events**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Custom Events Explore: | Category | Description | | --- | --- | | **Attributes Current** | Get Attribute values associated with the channels at the time the report is run. | | **Attributes Relative** | Get Attribute values associated with the channels at the time the filtered Custom Event occurred. | | **Custom Event Properties** | Set Custom Event property parameters for the query. | | **Custom Events** | Set Custom Event parameters for the query. | | **Device Properties Current** | Get device property values associated with the channels at the time the report is run. | | **Device Properties Relative** | Get device property values associated with the channels at the time the filtered Custom Event occurred. | | **In-App Automation** | Get configuration details about [In-App Automations](https://www.airship.com/docs/reference/glossary/#iaa), such as priority, dates, and display type (layout/format). | | **Message Content** | Get the Message text and additional details, such as notification ID and title, about the message to which the Custom Event is attributed. | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Tags Current** | Get Tag values associated with the channels at the time the report is run. | | **Tags Relative** | Get Tag values associated with the channels at the time the filtered Custom Event occurred. | | **User Detail** | Get information about the channel that performed the filtered event. | | **User Detail - Derived** | Get historical information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Custom Events Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Date Range** | Query Parameters | Target events that occurred on a specific date or within a specific date range. | {class="table-col-1-20 table-col-2-20"} ## Building custom queries The following sections walk you through using the Custom Events Explore to create custom queries that answer: * How do I get a list of channels that performed a specific event over the past seven days? * How do I determine what time of day users most frequently perform a specific event? ### Get a list of channels Follow these steps to get a list of channels that performed a specific Custom Event over the past seven days. First, [open the Custom Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Leave **Date Range** set to `is in the last 7 complete days`. 1. Select **+ Add Filter** and select **Custom Events**, then **Custom Event Name**, and enter your event name, for example, `item_purchase`. Only events that occurred within the past 90 days are available. 1. In the sidebar, specify the values and measures to display: 1. Select **User Detail**, then select the Dimension **Channel ID**. 1. Select **Custom Events**, then select the Measure **Event Count**.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Custom Events Explore](https://www.airship.com/docs/images/explore-custom-events-channels_hu_2369c97cc406f790.webp) *Creating a custom query from the Custom Events Explore* ### Find peak engagement times Follow these steps to identify the times of day when a Custom Event is most frequently performed. This information can help determine the most relevant time of day to send your campaigns. First, [open the Custom Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to `is in the last 90 complete days`. 1. Select **+ Add Filter** and select **Custom Events**, then **Custom Event Name**, and enter your event name, for example, `order_completed`. Only events that occurred within the past 90 days are available. 1. In the sidebar, specify the values and measures to display: 1. Select **Custom Events**, then select **Custom Event Date** and choose **Hour of Day**. 1. Select **Custom Events**, then select the Measure **Event Count**. Now you are ready to get your data. Select **Run**, and you should see results similar to the image below. ![Creating a custom query from the Custom Events Explore](https://www.airship.com/docs/images/explore-custom-events_hu_9fb496c603e6355d.webp) *Creating a custom query from the Custom Events Explore* Next, select the down arrow icon (▼) next to **Visualization** and select the column icon ( ). Use this format to identify the times of day when users are most engaged. You can also add a reference line to make your report clearer. In the Visualization bar, select **Edit**, then **Y**, then **Add Reference Line**. ![The column visualization of a custom query from the Custom Events Explore](https://www.airship.com/docs/images/explore-custom-events-columns_hu_9af96862a7c32565.webp) *The column visualization of a custom query from the Custom Events Explore* To save your custom query for later access, follow the steps in [Saving Performance Analytics queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/saving-queries/). # Custom queries and reference for the Device Events Explore > Use the Device Events Explore to get data related to device activity. You can get detailed metrics for these default events: App Session, Install, Uninstall, Web Session, SMS First Opt-In, and Email First Opt-In.

Data availability depends on your Performance Analytics plan.

## Navigation To access the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Device Events**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Device Events Explore: | Category | Description | | --- | --- | | **Attributes Current** | Get Attribute values associated with the channels at the time the report is run. | | **Attributes Relative** | Get Attribute values associated with the channels at the time filtered event occurred. | | **Device Events** | Set device event parameters for the query. | | **Device Properties Current** | Get device property values associated with the channels at the time the report is run. | | **Device Properties Relative** | Get device property values associated with the channels at the time filtered event occurred. | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Tags Current** | Get Tag values associated with the channels at the time the report is run. | | **Tags Relative** | Get Tag values associated with the channels at the time filtered event occurred. | | **User Detail** | Get information about the channel that performed the filtered event. | | **User Detail - Derived** | Get historical information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Device Events Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Date Range** | Query Parameters | Target events that occurred on a specific date or within a specific date range. | | **Event Type Filter** | Device Events | Return results for a specific event type. Default: **App Session**. Other options: **Install**, **Uninstall**, **Web Session**, **SMS First Opt-In**, **Email First Opt-In**, or **All**. | {class="table-col-1-20 table-col-2-20"} ## Building custom queries The following sections walk you through using the Device Events Explore to create custom queries that answer: * How can I get install and uninstall counts? * How can I determine the hour of the day when my users are the most active? ### Get install and uninstall counts Follow these steps to get the number of install and uninstall events over the past 30 days. First, [open the Device Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Set **Event Type Filter** to `is All`. 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to `is in the last 30 complete days`. 1. In the sidebar, specify values and measures to display: 1. Select **Device Events**, then the Dimension **Event Date**, then **Date**. 1. Also in **Device Events**, select the Measures **Install Count** and **Uninstall Count**. 1. Select the **Line** visualization format to display the report as a line graph.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Device Events Explore](https://www.airship.com/docs/images/explore-device-events-custom-install-uninstall_hu_8a09fbb311625a18.webp) *Creating a custom query from the Device Events Explore* ### Find the most active hour Follow these steps to determine the hour of the day when your users are the most active. First, [open the Device Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Event Type Filter** set to `is App Session`. 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to `is in the last 30 complete days`. 1. In the sidebar, specify values and measures to display: 1. Select **Device Events**, then the Dimension **Event Date**, then **Hour of Day**. 1. Also in **Device Events**, select the Measure **App Session Count**. 1. Select the **Column** visualization format to display the report as a column chart / bar graph.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Device Events Explore](https://www.airship.com/docs/images/explore-device-events-custom-active-hour_hu_e58eaa5b8cc9cc9a.webp) *Creating a custom query from the Device Events Explore* # Custom queries and reference for the Engagement Explore > Use the Engagement Explore to analyze the performance of your campaigns. You can get metrics and other information about all the events associated with a message, like [Tag](https://www.airship.com/docs/reference/glossary/#tag) and [Attribute](https://www.airship.com/docs/reference/glossary/#attributes) changes and [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event). Data returned is at the user level.

Data availability depends on your Performance Analytics plan.

## Navigation To access to the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Engagement**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Engagement Explore: | Category | Description | | --- | --- | | **A/B Testing** | Get data about [Message A/B tests](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages/). Include the Dimension **A/B Test ID** to query a specific experiment. For [legacy message A/B tests](https://www.airship.com/docs/guides/experimentation/a-b-tests/messages-legacy/), use the Dimensions **Variant Message (Legacy)** and **Variant ID (Legacy)**. | | **Attributes Current** | Get Attribute values associated with the channels at the time the report is run. | | **Attributes Relative** | Get Attribute values associated with the channels at the time push notification or Message Center message was sent or when the in-app message was displayed. | | **Device Properties Current** | Get device property values associated with the channels at the time the report is run. | | **Device Properties Relative** | Get device property values associated with the channels at the time push notification or Message Center message was sent or when the in-app message was displayed. | | **In-App Automation** | Get configuration details about In-App Automations and Scenes, such as priority, dates, and display type (layout/format). | | **Message Content** | Get the message text and additional details, such as notification ID, title, etc. In the Dimension and Measure names, Journey means [Sequence](https://www.airship.com/docs/reference/glossary/#sequence). | | **Message Delivery** | Get data about sends, such as dates, rates, and counts. SMS includes the Dimension **SMS Deliveries — Is RCS (Yes / No)** and the Measure **RCS Read Count**. | | **Message Metrics** | Get performance data, such as response and click rates, including bounce data for email. | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Response - Custom Events** | Get metrics for Custom Events associated with [App direct and indirect opens](https://www.airship.com/docs/guides/audience/events/custom-events/#push-attribution). | | **Response - Custom Event Window** | Get metrics for Custom Events associated with [App direct and indirect opens](https://www.airship.com/docs/guides/audience/events/custom-events/#push-attribution) that occurred within one hour of send time. To set a new time window, go to **Query Parameters** in the sidebar, then select the **Response Window** filter and configure the filter. Fractions of an hour are accepted. | | **Response - Custom Event Window - Time-only** | Get metrics for Custom Events, regardless of attribution, that occurred within one hour of send time. To set a new time window, go to **Query Parameters** in the sidebar, then select the **Response Window** filter and configure the filter. Fractions of an hour are accepted. | | **Response - Custom Interaction Events** | Get metrics for Custom Events associated with an [`interaction_id`](https://www.airship.com/docs/developer/rest-api/ua/schemas/others/#customeventobject). | | **Response - Events Times** | Get metrics for [App direct and indirect opens](https://www.airship.com/docs/guides/audience/events/custom-events/#push-attribution) that occurred within a specific number of minutes after send time. To set a new time window, go to **Query Parameters** in the sidebar, then select the **Response Window** filter and configure the filter. Fractions of an hour are accepted. | | **Response - Tag Changes** | Get Tag change events that occurred within one hour of send time. To set a new time window, go to **Query Parameters** in the sidebar, then select the **Response Window** filter and configure the filter. Fractions of an hour are accepted. | | **Tags Current** | Get Tag values associated with the channels at the time the report is run. | | **Tags Relative** | Get Tag values associated with the channels at the time push notification or Message Center message was sent or when the in-app message was displayed. | | **Timeframe Comparison** | Compare data in Measures for the most recent and prior time frames. Specify time frames in a number of days. | | **User Detail** | Get information about the channel that performed the filtered event. | | **User Detail - Derived** | Get historical information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Engagement Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Message Type Filter** | Message Delivery | Return results for a specific message type. Default: **Push Notification**. Options: **Message Center**, **In-App Impression**1, **Web Notification**, **SMS notification**, **Email Notification**, or **Multiple**. By default, **Multiple** returns all message types, which can result in longer processing time. To limit types, select **Multiple**, then 1) in the sidebar, select **Message Delivery**, 2) under **FILTER-ONLY FIELDS**, select **Message Type Sub Filter**, 3) in the Filters section, choose which message types to include. | | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Date Range** | Query Parameters | Target events that occurred on a specific date or within a specific date range. | {class="table-col-1-20 table-col-2-20"} 1. Includes [In-App Message (standard)](https://www.airship.com/docs/reference/glossary/#in_app_message) and [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) only. ## Building custom queries The following sections walk you through using the Engagement Explore to create custom queries that answer: * How can I get the list of users who received a specific In-App Automation? Also, how can I determine whether they interacted with it? * How can I get complete metrics for the push notifications sent within the past 30 days? ### In-App Automation Follow these steps to get the list of users who received a specific [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa) and determine whether they interacted with it. Users will be identified by [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id). First, get the ID of the In-App Automation you want to build a query for. From your Airship project: 1. Go to **Messages**, then **Messages Overview**. 1. Find your In-App Automation and select the report icon ( ) to open its message report. 1. In the page URL, copy the section following `push detail/`. It should look similar to: `e68039fc-7c9d-4a49-8a83-d6c8efa0cde6`. Then [open the Engagement explore](#navigation) and configure your query: 1. Set up the filters: 1. Set **Message Type Filter** to `is In-App Impression`. 1. Leave **Current Audience Only** set to `is Yes`. 1. Set **Date Range** to the period of time you want to search in. 1. In the sidebar, select **Message Content**, then **Notification ID Filter**. > **Tip:** Instead of navigating to filters, Dimensions, and Measures, you can find them using the search box at the top of the sidebar. 1. Set **Notification ID Filter** to `is equal to` and enter the notification ID you copied from the message report URL. 1. In the sidebar, specify values to display: 1. Select **Message Content**, then select the Dimensions **Notification ID** and **Notification Name**. 1. Select **Message Delivery**, then select the Dimensions category **Delivery Date**, then **Date**. 1. Select **User Detail**, then select the Dimension **Channel ID**. If you're using [Named Users](https://www.airship.com/docs/reference/glossary/#named_user) in your project, you can also add the Dimension **Named User** to identify these users in your database. 1. In the sidebar, add measurements to display: 1. Select **Message Delivery**, then select the Measures category **All Deliveries/Impressions**, then **Total Delivery/Impression Count**. 1. Select **Message Metrics**, then select the Measures category **In-App Impressions**, then **In-App Button Click Count** and **In-App Dismissed Count**. These distinguish which users interacted with the a button in the message content from the users who selected the Dismiss button to close the message.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Engagement Explore](https://www.airship.com/docs/images/explore-engagement-custom-iaa_hu_965f1fab68c72541.webp) *Creating a custom query from the Engagement Explore* ### Push notifications Follow these steps to get the number of push notifications delivered over the past 30 days. We'll use the default filters and add a filter for platform to get only data for iOS and Android. First, [open the Engagement explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Message Type Filter** and **Current Project Only** set to their defaults `is Push Notification` and `is Yes`. 1. Set **Date Range** to `is in the last 30 complete days`. 1. In the sidebar, select **User Detail**, then **Platform Filter**. > **Tip:** Instead of navigating to filters, Dimensions, and Measures, you can find them using the search box at the top of the sidebar. 1. Leave **Platform Filter** set to `is equal to`, and then select the entry field and select `ANDROID` and `IOS` from the list. 1. ![Selecting the option to pivot data](https://www.airship.com/docs/images/explore-pivot-data_hu_7acb2794baf8f83d.webp) *Selecting the option to pivot data* In the sidebar, specify values to display: 1. Select **Message Delivery**, then select the Dimensions category **Delivery Date**, then **Date**. 1. Select **User Detail**, select the Dimension **Platform**, then select the double-arrow icon next to **Platform**. The pivot option adds detailed metrics for each platform and makes it more readable. It can be helpful when using the Graph visualization. 1. In the sidebar, add measurements to display: 1. Select **Message Delivery**, then select the Measures category **All Deliveries/Impressions**, then **Total Delivery/Impression Count**. 1. Select **Message Metrics**, then select the Measures category **Push Metrics**, then **Attributed Open Count**. Now you are ready to get your data. Select **Run**, and you should see results similar to the image below. ![Creating a custom query from the Engagement Explore](https://www.airship.com/docs/images/explore-engagement-custom-push_hu_5e1d9acf4c4a9203.webp) *Creating a custom query from the Engagement Explore* Next, select the down arrow icon (▼) next to **Visualization** and select the column icon ( ). Use this format to look for obvious gaps or other changes to help you identify if something is going wrong with your push delivery: ![The column visualization of a custom query from the Engagement Explore](https://www.airship.com/docs/images/explore-engagement-custom-push-graph_hu_66714ec80cbda52a.webp) *The column visualization of a custom query from the Engagement Explore* To save your custom query for later access, follow the steps in [Saving Performance Analytics queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/saving-queries/). # Custom queries and reference for the Scenes Explore > Use the Scenes Explore to analyze the performance of your Scenes and the relevance of each screen. Access history related to [Scene](https://www.airship.com/docs/reference/glossary/#scene)

Data availability depends on your Performance Analytics plan.

## Navigation To access the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Scenes**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Scenes Explore: | Category | Description | | --- | --- | | **Attributes Current** | Get Attribute values associated with the channels at the time the report is run. | | **Attributes Relevant** | Get Attribute values associated with the channels at the time the Scene was displayed. | | **Device Properties Current** | Get device property values associated with the channels at the time the report is run. | | **Device Properties Relative** | Get device property values associated with the channels at the time the Scene was displayed. | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Scenes** | Set Scene parameters for the query. Includes survey-related data if NPS or Questions are included in a Scene. | | **Survey** | Set Survey parameters for the query. Does not include data from Scenes. | | **Tags Current** | Get Tag values associated with the channels at the time the report is run. | | **Tags Relative** | Get Tag values associated with the channels at the time the Scene was displayed. | | **User Detail** | Get information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Scenes Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Date Range** | Query Parameters | Target events that occurred on a specific date or within a specific date range. | {class="table-col-1-20 table-col-2-20"} ## Building custom queries The following sections walk you through using the Scenes Explore to create custom queries that answer: * How can I identify the users who completed a Scene? * To optimize my Scene, how do I determine which screen is the most relevant and which one generates churn? ### Identify who completed a Scene Follow these steps to get the [Channel IDs](https://www.airship.com/docs/reference/glossary/#channel_id) of the users who viewed all screens in a specific Scene and the number of times they viewed it. First, get the [Push ID](https://www.airship.com/docs/reference/glossary/#push_id) for the Scene you want information about:
  1. Go to Messages, then Messages Overview.
  2. Search for an active or stopped Scene.
  3. If the list is in collapsed view, hover over the Scene and select the report icon ( ) to open its message report. If in expanded view, select Report.
  4. Copy the Push ID from the address bar. The ID follows pushdetail/ in the URL. In this image, the ID is 644dae8d-4ff4-4688-9fe9-e7dac2138ea7: ![Copying the Push ID from the message report URL](https://www.airship.com/docs/images/pa-push-id_hu_ab530624fbe8130e.webp) *Copying the Push ID from the message report URL*
Next, [open the Scenes explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to the range you are interested in. 1. Select **+ Add Filter**, then **Scenes**, then **Notification ID**, and paste the Push ID for your Scene. 1. Select **+ Add Filter**, then **Scenes**, then **Scene Completed Count**, and set the value to `is >= 1` (greater than or equal to one). 1. In the sidebar, specify the values and measurements to display: 1. Select **Scenes**, then select the Dimension **Notification ID**. 1. Select **User Detail**, then select the Dimension **Channel ID**. 1. Select **Scenes**, then select the Measures **Scene Displayed Count** and **Scene Completed Count**.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Using the Scenes Explore to identify who completed a Scene](https://www.airship.com/docs/images/explore-scenes-completed_hu_c52f0fa2f3192abb.webp) *Using the Scenes Explore to identify who completed a Scene* ### Find relevant screens Follow these steps to identify which screen is the most relevant to users and which generates churn. First, get the [Push ID](https://www.airship.com/docs/reference/glossary/#push_id) for the Scene you want information about:
  1. Go to Messages, then Messages Overview.
  2. Search for an active or stopped Scene.
  3. If the list is in collapsed view, hover over the Scene and select the report icon ( ) to open its message report. If in expanded view, select Report.
  4. Copy the Push ID from the address bar. The ID follows pushdetail/ in the URL. In this image, the ID is 644dae8d-4ff4-4688-9fe9-e7dac2138ea7: ![Copying the Push ID from the message report URL](https://www.airship.com/docs/images/pa-push-id_hu_ab530624fbe8130e.webp) *Copying the Push ID from the message report URL*
Next, [open the Scenes explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to the range you are interested in. 1. Select **+ Add Filter**, then **Scenes**, then **Notification ID**, and paste the Push ID for your Scene. 1. In the sidebar, specify the value and measurements to display: 1. Select **Scenes**, then select the Dimension **Screen Number**. 1. Select **Scenes**, then select the Measures **Screen View Count** and **Per Notification Rates: Button Tap Rate**. ![Setting the calculation method for Button Tap Rate](https://www.airship.com/docs/images/explore-scenes-relevant-screens-calculation_hu_4d886883063000b3.webp) *Setting the calculation method for Button Tap Rate* Next, select **Run** to get your data, then select the gear icon (⚙) in the header of the **Button Tap Rate** column, then **Calculations**, then **% of column**. This sets the value to the percentage of views per screen. As a final step, you can personalize the visualization in order to highlight the percentage of displays per screen and the percentage of engagement per screen. This can help you to quickly identify the impact of each screen of your Scene. Select an icon in the Visualization section header and hover over an icon to see its label. You may need to select the more menu icon (⋯) to expose all options. Select **Edit** for options specific to the current format. Some Visualization types may be incompatible with the currently selected Dimensions and Measures. The image below shows the report with the Column visualization selected. ![Using the Scenes Explore to find a Scene's relevant screens](https://www.airship.com/docs/images/explore-scenes-relevant-screens_hu_b1b36278af312ba1.webp) *Using the Scenes Explore to find a Scene's relevant screens* To save your custom query for later access, follow the steps in [Saving Performance Analytics queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/saving-queries/). # Custom queries and reference for the Tag Events Explore > Use the Tag Events Explore to see information about adding and removing tags to/from your audience. Access history related to [Tag](https://www.airship.com/docs/reference/glossary/#tag) adds and removals, get Tag values at the time of Tag-related events, and get information about channels associated with specific Tags and/or Tag events.

Data availability depends on your Performance Analytics plan.

## Navigation To access the Explore: 1. Go to **Reports**, then **Performance Analytics**. 1. Select the folder icon (folder-simple), then **Shared**. 1. Under **Looks**, select **Explore Glossary** (**Explore Glossary EUCS** for EU customers). 1. Select **Tag Events**, then **Navigate to Explore**.

For a list of all Explores in the glossary, see Predefined Explores in Exploring Performance Analytics data.

## Field categories

The sidebar lists categories for various filters, [Dimensions](https://www.airship.com/docs/reference/glossary/#pa_dimension), and [Measures](https://www.airship.com/docs/reference/glossary/#pa_measure) you can use to explore your data. To see their definitions, hover over an item, then select the info icon (ⓘ).

Field categories in the Tag Events Explore: | Category | Description | | --- | --- | | **Query Parameters** | Target all or specific projects, and specify dates and response windows, where relevant. | | **Tag Events** | Set Tag parameters for the query. | | **Tags Current** | Get Tag values associated with the channels at the time the report is run. | | **Tags Relative** | Get Tag values associated with the channels at the time the filtered Tag event occurred. | | **User Detail** | Get information about the channel that performed the filtered event. | | **User Detail - Derived** | Get historical information about the channel that performed the filtered event. | {class="table-col-1-20"} ### Default filters

Use filters to reduce the number of records scanned and results returned. Each Explore includes filters that cannot be removed from the query.

The filter name, [field category](#field-categories), and usage information for the default filters in the Tag Events Explore: | Filter name | Field category | Use the filter to... | |-------------|----------------|----------------------| | **Current Project Only** | Query Parameters | Determine which projects are included in the query. Default: **Yes**. To include other projects, 1) select **No**, 2) in the sidebar, select **Query Parameters**, 3) under **Dimensions**, select the filter icon (funnel-simple) next to **Project name**, and 4) in the Filters section, choose which projects to include. | | **Date Range** | Query Parameters | Target events that occurred on a specific date or within a specific date range. | | **Tag Action Filter** | Tag Events | Return Tags that were set, removed, or either. Use with operator **is**. Select one of: **Add**, **Delete**, **All**. | | **Tag Group Filter** | Tag Events | Specify the [Tag Group](https://www.airship.com/docs/reference/glossary/#tag_group) you want to return tags for. Default: **Notification Opt-in**. Must not be empty. Use with operator **is equal to**. | | **Tag Name Filter** | Tag Events | Return results for specific Tags. Enter Tags by name. Default value: **false**. Default operator: **is equal to**. To return all possible Tags for the filtered Tag Group, select the operator **is not null**. | {class="table-col-1-20 table-col-2-20"} The Tag Action, Group, and Name Filters include non-matched (null) records. To return matched records only, add the Tag Action, Tag Group, and Tag Name Dimensions from the Tag Events field category. ## Building custom queries The following sections walk you through using the Tag Events Explore to create custom queries that answer: * How can I get a list of all the Tags available under a specific Tag Group? How many users had these Tags added over the past 30 days? * How can I get a list of users that had a Tag added after interacting with a button in an [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa)? ### Get Tags in a Tag Group Follow these steps to get a list of Tags in a Tag Group and the number of users who had the Tag set over the past 30 days. We only need to use the default filters. > **Note:** * This report does not return whether or not users still have the Tag set. To return that data, use the [Audience with Attributes Explore](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/#predefined-explores). > * If a Tag does not appear for selection in Performance Analytics, it means that no add or remove event has occurred for the Tag during the specified time range. First, [open the Tag Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to `is in the last 30 complete days`. 1. Leave **Tag Action** set to `Add`. 1. Set **Tag Group** to the Tag Group you want to return Tags for. 1. Set the **Tag Name** operator to `is not null`. 1. In the sidebar, specify the value and measurement to display: 1. Select **Tag Events**, then select the Dimension **Tag Name**. 1. Select **User Detail**, then select the Measure **User Count**.

Now you are ready to get your data. Select Run, and you should see results similar to the below image. To save your custom query for later access, follow the steps in Saving Performance Analytics queries.

![Creating a custom query from the Tag Events Explore](https://www.airship.com/docs/images/explore-tag-events-custom-tags-list_hu_f0f686448d535356.webp) *Creating a custom query from the Tag Events Explore* ### Get Tag adds for button interaction Follow these steps to get a list of users that had a Tag added after interacting with a button in an [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa). We only need to use the default filters. You must know the name of the Tag for the button interaction. Users will be identified by [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id). First, [open the Tag Events explore](#navigation), and then configure your query: 1. Set up the filters: 1. Leave **Current Project Only** set to `is Yes`. 1. Set **Date Range** to a range that makes sense for your query. 1. Leave **Tag Action** set to `is Add`. 1. Set **Tag Group** to the Tag Group containing the Tag you want results for. 1. Set the **Tag Name** operator to `is equal to` and select the Tag associated with the button interaction. 1. In the sidebar, specify the value and measurement to display: 1. Select **Tag Events**, then select the Dimension **Tag Name**. 1. Select **User Detail**, then select the Dimension **Channel ID** and Measure **User Count**. If you're using [Named Users](https://www.airship.com/docs/reference/glossary/#named_user) in your project, you can also add the Dimension **Named User** to identify these users in your database. Now you are ready to get your data. Select **Run**, and you should see results similar to the below image. To get count of users, select **Totals** in the **Data** header. To save your custom query for later access, follow the steps in [Saving Performance Analytics queries](https://www.airship.com/docs/guides/reports/analytics/tasks-queries/saving-queries/). ![Creating a custom query from the Tag Events Explore](https://www.airship.com/docs/images/explore-tag-events-custom-tag-adds-button_hu_1abce13465c0fc4a.webp) *Creating a custom query from the Tag Events Explore* ### Common tasks and queries Learn how to export lists, report on funnels and paths, and more. # Saving Performance Analytics queries > You can save any query for later access, either as a Look or to a new or existing Dashboard. Start from the [Explore view](https://www.airship.com/docs/guides/reports/analytics/exploring/exploring/#the-explore-view). If you are starting from a Look or Dashboard, hover over the Look, then click the more menu icon (⋮) and select *Explore from here* to open the Explore view. ![Saving a query in Performance Analytics](https://www.airship.com/docs/images/pa-save-query_hu_85af35a119e62ecf.webp) *Saving a query in Performance Analytics* From the Explore view, click the gear icon (⚙), then select *Save as...* and choose a format/location: * *Existing Dashboard* — Enter a title, select a Dashboard, then click **Save to Dashboard**. * *Look* or *New Dashboard* — Enter a title, select a folder, then click **Save** or **Save & View Look**. Folder options: * *My folder* — No one else in your Airship project has access to the content in this folder. * *Group* — Anyone with access to your Airship project and Performance Analytics can access this folder. If you would like to save Looks and Dashboards across multiple projects, use this folder. # Scheduling delivery of Performance Analytics data > Export your Performance Analytics data single time or at repeated intervals using various methods, formats, and other options. > **Important:** **Best Practice** > > Since Performance Analytics is an on-demand system, it is important that your > scheduled requests do not adversely impact other customers. When scheduling an > export of user-level data: > > 1. Filter appropriately so that results are not excessive or a larger data > set than necessary. > 1. Select a weekend day to limit your impact on other users. > > If you are interested in integrating with other business systems, we highly > recommend using our > [Real-Time Data Streaming](https://www.airship.com/docs/reference/glossary/#rtds) > integrations, which will scale to your needs. See: > [Integrations](https://www.airship.com/docs/integrations/). > > --- > > **Excessive Exports** > > Event data, such as messages, clicks, and tag events, is updated about every hour, depending on the volume of data. Channel state data, such as tags and attributes associated to a channel, is updated every night. Any scheduled data exports exceeding these time frames will be considered excessive and could be removed. ## Scheduling Look Delivery You can only schedule delivery of saved Looks. If you edited a Look and want to schedule delivery, first save it as a new Look, then complete these steps. Refer to [Scheduling Options](#scheduling-options) below for detail. From a Look: 1. Hover over the Look, then click the more menu icon (⋮) and select *Schedule*. 1. Enter a name for the schedule. 1. Select and configure the destination: * *Email* — Your account's email address is populated by default. For each additional recipient, enter the email address and **click Add**. You can also include a custom message that will appear above the data in the email. * *Webhook* — Enter the webhook URL. * *Amazon S3* — Enter the S3 values for the bucket and optional path, access key, and secret key, then select a region. * *SFTP* — Enter the host address, e.g., *sftp://example.com/home/ftpuser/*, and the SFTP user username and password, then select your preferred key exchange algorithm. 1. Select a data format. 1. Set the recurrence interval, or select *Datagroup update* and select a datagroup. 1. (Optional) Edit or configure *Filters*: Specify the date range and project name and add more filters. 1. (Optional) Configure *Advanced options*. These options control the delivery logic based on data presence and changes, limits on output, visual output, paper size, and time zone. 1. (Optional) Click **Send Test** to preview before saving. It will send according to the current settings. 1. Click **Save All**. ## Scheduling Dashboard Delivery Refer to [Scheduling Options](#scheduling-options) below for detail. From a Dashboard: 1. Click the more menu icon (⋮) and select *Schedule delivery*. 1. Configure the *Settings* tab: 1. Enter a name for the schedule. 1. Set the recurrence interval, or select *Datagroup update* and select a datagroup. 1. Select and configure the destination: * *Email* — Your account's email address is populated by default. For each additional recipient, enter the email address and hit Enter or click outside the field. * *Webhook* — Enter the webhook URL. * *Amazon S3* — Enter the S3 values for the bucket and optional path, access key, and secret key, then select a region. * *SFTP* — Enter the host address, e.g., *sftp://example.com/home/ftpuser/*, and the SFTP user username and password, then select your preferred key exchange algorithm. 1. Select a data format. Available options depend on your selected destination and whether you are scheduling a Look or a Dashboard. 1. (Optional) Edit or configure the *Filters* tab: Specify the date range and project name and add more filters. 1. Configure the *Advanced options* tab. These options control the visual output, paper size, and time zone. 1. Click **Save now**. ## Scheduling Options These options are available when configuring scheduling. ### Destinations * *Email* — The data is delivered to the email addresses entered. * *Webhook* — Webhooks are a modern, increasingly common way to trigger exchanges between internet based services. They generally require some technical or developer knowledge to use, but with a product like [Zapier](https://zapier.com/), webhooks can let Performance Analytics data be delivered to a wide range of locations. Only a webhook URL is required. * *Amazon S3* — Amazon S3 buckets are a common way to store large amounts of data. Options include: * *Limits* — If you choose "Results in Table", whatever row limitations you've set up in the saved Look will be obeyed. If you choose "All Results" all the rows of the query will return, regardless of the saved Look settings, and regardless of the typical 5,000 row limit for Performance Analytics. This can be desirable for retrieving very large datasets, but you should use caution to ensure the query is not too large for your database. * *SFTP* — The data is uploaded according to your server. ### Formats Dashboards support these output formats: * CSV * PDF * PNG visualization For Looks, supported formats depend on the destination: | Format | Email | Webhook | S3 | SFTP | | --- | :---: | :---: | :---: | :---: | | CSV | ✓ | ✓ | ✓ | ✓ | | Text | ✓ | ✓ | ✓ | ✓ | | XLSX | ✓ | ✓ | ✓ | ✓ | | JSON — Simple | ✓ | ✓ | ✓ | ✓ | | HTML | ✓ | | ✓ | ✓ | | JSON — Detailed, Inline | | ✓ | ✓ | ✓ | | JSON — Simple, Inline | | ✓ | | | | JSON - Label | | ✓ | | | | Data Table1 | ✓ | | | | | Visualization1 | ✓ | | | | 1. Sent in the body of the email. # Add Web Metrics To a Report > Add web metrics to a report. Add web push notification metrics to the *Message Report by Platform* report, and save the customized version in your Personal or Group space. 1. Go to *Reports » Performance Analytics*. 1. Go to any report or dashboard. 1. Click the grid icon (squares-four), click the globe icon (globe), and then go to *Messages » Message Report by Platform*. ![Navigating to the Message Report by Platform Look](https://www.airship.com/docs/images/ins-shared-messages_hu_92c1d9c8b91a1b4e.webp) *Navigating to the Message Report by Platform Look* 1. Click the gear icon (⚙) and select *Explore from Here*. 1. In *Filters*, set *Message Type* to `Web Notification`. 1. From the left side menu, in *Messaging Metrics » Measures » Web Metrics*, click the rows for: * Web Click Rate * Web Click Count * Web Session Rate * Web Session Count 1. Click the gear icon (⚙) and select *Save as a Look*. 1. Enter a *Title* and *Description*, select the *Personal* or *Group* space, then click **Save** or **Save & View Look**. # Export Lists > Learn the general process of exporting Performance Analytics data and review specific examples. All data in Performance Analytics can be exported in a number of formats via the download feature. In this document we'll look at the general process of exporting Performance Analytics data, then we'll examine the specific example of exporting a list of users that have directly opened a notification or rich message. In this tutorial, you will first learn how to export report data, then follow steps to export specific types of report data. ## Export Data In this section we look at the general process of exporting Performance Analytics data. 1. Go to *Reports » Performance Analytics*. 1. Select a dashboard and find the report you would like to download. 1. If you are on a default dashboard, click the more menu icon (⋮) and select *Download Data...*. If you clicked the tile to open the report or opened the report from a Space, instead click **Download Results**. 1. Specify Download Options: * **File Format:** The format of the download: *TXT*, *Excel Spreadsheet*, *CSV*, *JSON*, *HTML*, *Markdown*, or *PNG (Image of Visualization)*. * **Results:** *With visualization options applied* or *As displayed in the data table*. * **Values:** *Unformatted* means special characters are truncated from values, and values will be rounded to the nearest integer, e.g., "1.13%" is rounded to "1%". As a general rule, the *Unformatted* option is good for discrete values, e.g., a count of devices, while *Formatted* is a good option for non-discrete values, such as percentages. * **Limit:** *Results in Table* exports all results currently visible in the table. *All Results* exports every result fetched by the query. Select *Custom*, to define a cutoff row for the download, e.g., enter *5000* to download of the first 5,000 records. * **Filename:** Enter a descriptive filename. 1. Click **Download** and save the file. If you'd like to view the data in the browser instead, click **Open in Browser**, and it will open in a new browser tab. ## Notifications Generate a list of users that directly opened a specific push notification. 1. Go to *Reports » Performance Analytics*. 1. Select the *Revenue* dashboard. 1. In the *Messages* report, locate the row for the message you want to analyze, then click its value in the *Direct Response Count* column. 1. Download the data as described in [Export Data](#export-data). ## Rich Pages Generate a list of users that directly opened a specific rich message. 1. **Go to the Messages dashboard.** 1. In the *Top 50 Rich App Pages* report, **locate the row for the Message you want to analyze**, then **click its value in the *Read Count* column.** 1. **Click the arrow next to Filters to display the full menu.** 1. **Edit the Rich Pushes Occurred Date range**, and set the value of *is on or after* to the day before the message send date: ![Setting the Rich Pushes Occurred Date filter](https://www.airship.com/docs/images/ins-rich-push-occurred-date_hu_7e71cab9f2087089.webp) *Setting the Rich Pushes Occurred Date filter* This configuration is necessary to ensure you capture rich message reads occurring in every time zone. 1. **Click the Run button** to refresh the query. 1. **Download the data** as described in [Export Audience Lists](#export-audience-list). ## Ad IDs {#ins-tutorial-ad-ids} Generate a list of Ad IDs for users that made a purchase. Please visit our [Ad IDs topic guide](https://www.airship.com/docs/guides/audience/ad-ids/) for use cases and technical details. > **Warning:** Your app must: > > 1. Send the *limit ad tracking* field from your app, and > 1. Not target users with ads who have *limit ad tracking* enabled. A value of > Unknown or Limit Ad Tracking = Yes or Unknown means you cannot send > ads to these users. 1. Go to *Reports » Performance Analytics*. 1. Select the *Revenue* dashboard. 1. In the *Custom Events Table* report, locate the *purchased* row and click its value in the *Event Count* column. 1. Click **Explore from Here**. 1. Make these changes in the left side menu: * In *Custom Events » Dimensions*, click the row for *Platform*. * In *User IDs » Dimensions*, click the row for *Device ID* to unselect it, and click the row for *Ad ID*. * Click **Filter** for *Limit Ad Tracking Enabled* to add the row to the Filters menu, then set the value of *is equal to* to "No." 1. Download the data as described in [Export Data](#export-data). 1. (Optional) Create a custom audience on Facebook. Follow [Facebook's instructions: Create a Customer List Custom Audience](https://www.facebook.com/business/help/170456843145568?id=2469097953376494) to create a Custom Audience or Lookalike Audience using the downloaded file. File must be in TXT or CSV format. ## Export Audience Lists {#export-audience-list} You can [segment your audience](https://www.airship.com/docs/guides/audience/segmentation/segmentation/) using an [Uploaded List](https://www.airship.com/docs/reference/glossary/#uploaded_list). First, follow these steps to download a CSV of device identifiers. Second, [upload the list of users](https://www.airship.com/docs/guides/audience/segmentation/audience-lists/uploaded/##uploading-your-list) to your project, using the file you just downloaded. This example downloads all your Daily Active Users, 1. Go to *Reports » Performance Analytics*. 1. Select the *Overview* dashboard. 1. In the *Daily Active Users* report, click its value. 1. Click **Explore from Here**. 1. Download the data as described in [Export Data](#export-data), using these values: * **File Format**: CSV * **Values**: Unformatted * **Limit**: All Results # Find In-App Impression Rate > Finding your in-app impression rate. To find the in-app impression rate, we need to add two Measures to the Messages Look.
  1. Go to Reports, then Performance Analytics, and then select the Messages Dashboard.
  2. For the Messages Look, select the more menu icon (⋯), and then select Explore from here.
  3. In the sidebar, select Message Metrics, then Measures, and then In-App Impression Metrics.
  4. Select the filter icon (funnel-simple) next to:
    • In-App Impression Rate
    • In-App Dismissed User Rate
  5. Select Run.
# Find Inactive Users > Find your inactive users. ## Reports and Filters for Inactive Users Inactive User reports are available in the [Overview Dashboard](https://www.airship.com/docs/guides/reports/analytics/definitions/#overview). Users inactive in the last day : The number of unique users that were not active 1 day ago but were active in the 6 days prior. Users inactive in the last 7 days : The number of unique users that were not active in the last 7 days but were active in the 14 days prior. Users inactive in the last 30 days : The number of unique users that were not active in the last 30 days but were active in the 30 days prior. An Inactive Users report uses two date range filters: * **App Open Date** is used to look at a window of activity for users that opened the app. For example, for *Users inactive in the last day*, this filter is set to "is in the last 7 complete days." * **Last Seen Date** is used to pick a relative point in time in which to filter out users that have only been seen before the chosen date. For example, for *Users inactive in the last day*, this filter is set to "is before (relative) 1 day ago." ## Filter for Last Seen Date 1. Go to *Reports » Performance Analytics*. 1. Select the *Overview* Dashboard. 1. Click the more menu icon (⋮) for an Inactive Users report and select *Explore From Here*. 1. In *Filters*, set the Last Seen Date filter to `is any time`. 1. In *Visualization*, select *Column*. 1. Make these changes in the left side menu: * In *Inactive Users » Dimensions*, under *Last Seen Date*, click **Filter** next to *Date*. 1. Click **Run**. Now you can see the days in which the *Last Seen Date* for users was the highest and better understand why that may have been the last time they were in your app. ## Show Uninstalls To see which inactive users have uninstalled in the period after their last seen activity, follow these steps after completing the steps in [Filter for Last Seen Date](#filter-for-last-seen-date): 1. Make these changes in the left side menu: * In *Inactive Users » Dimensions*, click **Filter** for *Has Installed (Yes / No)*. 1. In *Filters*, set the Has Installed (Yes / No) filter to `is Yes`. 1. Click **Run**. # Get a list of tags added for a channel ID or named user > You can use Airship Performance Analytics to retrieve a list of tags for a given channel ID or a named user. 1. Go to *Reports » Performance Analytics*. 1. Select the *Profile* dashboard. 1. Click *Top 50 Device Tags Added (During Date Range)* to explore. 1. In the left side menu, under *User IDs*, click *Filter by field* next to *Channel ID* or *Named User*. 1. In the *Filters* section, enter the identifier in the *User IDs* section. 1. Click **Run**. > **Tip:** If the user has more than 50 tags, you can expand the number of rows by adjusting the row limit and clicking **Run** again. # Get a list of users who were sent or opened an A/B test > Use Performance Analytics to get an A/B test user list. 1. Go to **Messages**, then **Messages Overview**. 1. Change the search filter to *Composers*, then click the search field and choose *A/B Test*. 1. Click the report icon ( ) for an A/B test. 1. Copy the push ID from the address bar. The push ID follows `abtest/` in the URL. In this image, the push ID is `cd15b020-5cb5-11ed-a8ad-0242170009c2`: ![Copying the push ID from the A/B test report URL](https://www.airship.com/docs/images/pa-push-id_hu_2c4678b9a1ffb938.webp) *Copying the push ID from the A/B test report URL* 1. Go to *Reports » Performance Analytics*. 1. Select the *Messages* dashboard. 1. In the *Messages* report, click the count for any message with a non-zero *Total Delivery/Impression Count*, then click **Explore from Here**. The message you select does not matter. This step is only to access the explore view. 1. In the left side menu, under *Message Content*, click *Filter by field* next to *Notification ID*. 1. Make these changes in the *Filters* section * Change the *Notification ID* by pasting the push ID you copied in step 4. * Set the *Workflow Type* to *A/B Test*. * Remove the time range field or select a time range that is inclusive of the send/open date. ![Configuring A/B test filters in Performance Analytics](https://www.airship.com/docs/images/pa-a-b-test_hu_3fe1e2d29602802d.webp) *Configuring A/B test filters in Performance Analytics* 1. Click **Run**. # Report on Funnel and Path > Learn how to create your own funnel and path reports. This tutorial expands on templated funnels to show how you can create your own funnel and path reports. These reports are powerful tools for analyzing the behaviors of your users. Funnel and path are available for [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event). Since most users are unable to complete a goal in a single session, our example funnel and path report shows goals achieved over a time range. ## Show Goals Achieved Over a Time Range {#goals} 1. Go to *Reports » Performance Analytics*. 1. Select the *Revenue* dashboard. 1. For the *Funnel* report, click the more menu icon (⋮) and select *Explore From Here*. 1. In *Filters*, edit the filters and values as desired, then click **Run**. ![Editing Funnel Explore filters](https://www.airship.com/docs/images/ins-funnel-filters_hu_dfa09186f08f380c.webp) *Editing Funnel Explore filters* > **Tip:** To remove the mapping of the event names from the Visualization, click the > Visualization row's gear icon going to the gear icon, click Style in the > top row, and delete the text in the *Series Labels* boxes: > ![Removing Series Labels from the Visualization](https://www.airship.com/docs/images/ins-series-labels_hu_1d36616707b6fd9e.webp) > > *Removing Series Labels from the Visualization* ## See the Path of Users To see the path of users, e.g., abandoned cart, follow these steps after completing the steps in [Show Goals Achieved Over a Time Range](#goals): 1. Make these changes in the left side menu: * In *Funnel » Filter-only Fields*, click **Filter** next to *Event 2* and *Event 3* to remove the filters. * In *Funnel » Dimensions*, click the rows for *Custom Event 1*, *2*, and *3* to add the dimensions. 1. Click **Run** and you will see the counts of users for each specific path: ![Path query results showing user counts per event sequence](https://www.airship.com/docs/images/ins-path_hu_b5abb360a161da26.webp) *Path query results showing user counts per event sequence* # Set Up User-defined Properties > Specify properties for Custom Events to provide more detail in the Revenue dashboard. If you are using [Custom Event](https://www.airship.com/docs/reference/glossary/#custom_event) properties, you can further break down Revenue report results by property. Our SDKs contain [custom event templates](https://www.airship.com/docs/sdk-topics/custom-events/) that make sending properties easier to manage and analyze. ## Explore Custom Event Properties {#explore} 1. Go to *Reports » Performance Analytics*. 1. Select the *Revenue* dashboard. 1. For the *Custom Events Table* report, click the more menu icon (⋮) and select *Explore From Here*. This table gives you a starting point for all the custom events that happened during the specified time range. In the left side menu, in *Custom Event Properties » Dimensions* you can see the properties used in this tutorial: ![Custom Event Properties dimensions and filters](https://www.airship.com/docs/images/custom-events-tutorial-1_hu_9566a4c7f440d153.webp) *Custom Event Properties dimensions and filters* * Three *User-Defined Property* filters * The *Raw Properties* dimension * Three *User-Defined Property* dimensions Once you know the keys for the properties you would like to expand on, either select the templated name from the Custom Event Names in the Visualization or Data results, or set up a user-defined property. The remaining steps walk you through setting up a user-defined property. You may specify up to three total. ## Set Up User-Defined Properties After completing the steps in [Explore Custom Event Properties](#explore): 1. Make these changes in the left side menu: * In *Custom Event Properties » Filter-Only Fields*, click **Filter** for *User-Defined Property 1 Filter*. 1. In *Filters*, set the *User-Defined Property 1 Filter* filter to `is equal to` and enter the key as the value. > **Tip:** If you don't know which key was used to send a custom event property, > select the Raw Properties dimension. Locate the Customer Event > Property in the Data results, then copy its corresponding key from > the Raw Properties column. > ![Copying a property key from Raw Properties](https://www.airship.com/docs/images/custom-events-tutorial-2_hu_57ec4b8d04171682.webp) > > *Copying a property key from Raw Properties* 1. Make these changes in the left side menu: * In *Custom Event Properties » Dimensions*, click the row for *User-Defined Property 1*. This displays the actual value for the property that you specified in the User-Defined Property 1 filter, adding the column to the Data table. ![Query results with the User-Defined Property column](https://www.airship.com/docs/images/custom-events-tutorial-3_hu_bc1ca12a52eca5a7.webp) *Query results with the User-Defined Property column* 1. Click **Run**. # Split Results By Tag > Learn the process of splicing Performance Analytics results by tag. Performance Analytics enable you to analyze attributes of specific user groups. If you want to understand the attributes and behavior of your daily active users, one rich source of data to leverage is user tags — which tags are most common among daily active users? This guide details the process of splicing Performance Analytics results by tag. You can apply this pattern to many views. 1. Go to *Reports » Performance Analytics*. 1. Select the *Lifecycle* dashboard. 1. For the *Daily Active Users* report, click the more menu icon (⋮) and select *Explore From Here*. 1. Make these changes in the left side menu: * In *Tags Relative to Event » Dimensions*, click *Primary Device Tag* to add it to the Results table. * In *Tags Relative to Event » Dimensions » Primary Device Tag*, click **Filter**. 1. In *Visualization*, select *Pie*. 1. In *Filters*, set the *Primary Device Tag* filter to `is not null`. The view should now look something like this: ![Filtering by Primary Device Tag](https://www.airship.com/docs/images/ins-pdt-unique-users_hu_226a9702138d4360.webp) *Filtering by Primary Device Tag* 1. Click **Run**. ![Query results showing unique users by tag](https://www.airship.com/docs/images/ins-pdt-unique-users-run_hu_16e3ed4642b192b7.webp) *Query results showing unique users by tag* You now have a list of tags associated with the users that opened the app yesterday! ## Tag Split Analysis Because a single user can have multiple tags set, the sum of values on the right side of the table does not correspond to the total number of daily active users, e.g., in the final image, a single user could have the *likely-buyer*, *basketball* and *bourbon* tags. In this case, one user accounts for three tags in the table. The total at the bottom right corresponds to the number of users that opened the app *and* had a tag set. If a user with no tags set opens your app, their action will not be included in the total. Consequently, **the total may not match the number of daily active users**. ## Additional Splicing Options You can also filter by specific device property tags. For example, we can look at the iOS SDK versions used by our daily active users. In Step 3 above, rather than selecting *Primary Device Tag*, select *iOS UA SDK Version*. We've predefined many of the important tag groups for you, but we also provide general Tag Group and Tag dimensions if you're interested in other tags. Setting Tag Group as a filter will generate a drop down list of possible values. The Tag dimension contains the specific values within each possible Tag Group. It is not necessary to filter out the null values when using the combination of Tag Group and Tag dimensions. You can see Tags at different time periods using Tag Current or Tag Relative to Event. Tag Current is the current value, where Tag Relative to Event is a user's tag at a certain event, such as an open or region event. Tags Current and Tags Relative to Event function in the same manner. ![Tags relative to event showing SDK version distribution](https://www.airship.com/docs/images/ins-sdk-tag-splice_hu_e628c539ced9f161.webp) *Tags relative to event showing SDK version distribution* We can see that most of our daily active users that use iOS are on SDK 8.1.x.