# 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 question mark 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 chart icon (
) for a message.

For Sequences:

1. Go to **Messages**, then **Messages Overview**.
1. Select the chart icon (
) for a Sequence.
1. Select the chart 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 plus 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 pencil icon (
). |
| **Edit (Automation)** | Open the message for editing. | Select the pencil 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 pencil 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 (
) to resume a paused message.
* Select the X 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 (
) 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/#set-feed-error-behavior) 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" }
      ]
  }
}
```
