Adobe Analytics

See the influence of push notifications on in-app actions. Adobe Analytics provides behavioral analytics and content performance measurement for websites and apps. Airship Real-Time Data Streaming provides a live view into your application, adding the “messaging perspective” to your Adobe Analytics information. This integration enables a complete view of the user experience by combining Adobe Analytics data with user-specific interactions such as push sends, direct and indirect opens, and uninstalls.

Via the Real-Time Data Streaming, Airship provides exclusive mobile engagement data that is not otherwise available from the Adobe Analytics SDK, including:

  • Send Events: A device was sent a notification. Includes the push ID and the user that push ID was sent to.
  • Control Events: A device, targeted as part of an A/B Test, was sorted into the control group. It received no notification, helping you answer the question: "What would have happened had you not sent a notification?"
  • Direct and Indirect Opens: Opens that were either caused by a notification, or which occurred within 12 hours of a notification.
  • In-App Message Events: Displays, resolutions (timeout or user action), expiration.
  • Message Center Events: Delivery, read, deleted.
  • Uninstall Events: The user uninstalled the application.

You can also export users from Adobe Analytics and send messages to them in Airship.

In addition, we augment Adobe's device reporting with information on in-app behavior defined by the Airship SDK. In particular, we provide information pertaining to our Message Center and In-App Messaging products. We can tell you when a Message Center message was delivered (which happens via a different mechanism than the push notification), read, and deleted. We can also describe what happened to an in-app notification: whether it was displayed or expired before it could be, and what happened to it after it was displayed—did the user dismiss it, interact with it, or allow it to resolve itself?


Client Code

Fetch the Adobe Analytics visitor ID for your user, then associate it with the Airship channel ID. See ID Matching for details about this feature.


// Get the Adobe visitor ID
let visitorID = ADBMobile.visitorMarketingCloudID()

// Add the visitor ID to the current associated identifiers
let identifiers = UAirship.shared().analytics.currentAssociatedDeviceIdentifiers()
identifiers.setIdentifier(visitorID, forKey:"AA_visitorID")

// Associate the identifiers
// Get the Adobe visitor ID
NSString *visitorID = [ADBMobile visitorMarketingCloudID];

// Add the visitor ID to the current associated identifiers
UAAssociatedIdentifiers *identifiers = [[UAirship shared].analytics currentAssociatedDeviceIdentifiers];
[identifiers setIdentifier:visitorID forKey:@"AA_visitorID"];

// Associate the identifiers
[[UAirship shared].analytics associateDeviceIdentifiers:identifiers];


// Get the Adobe visitor ID
String visitorId = Visitor.getMarketingCloudId();

// Add the visitor ID to the current associated identifiers
    .addIdentifier("AA_visitorID", visitorId)


  1. Go to Settings » Real-Time Data Streaming.
  2. Under Real-Time Data Streaming, click Adobe Analytics.

    Previously configured integrations are listed under Enabled Integrations.

  3. Configure a new Adobe Analytics integration:
    • Enter a user-friendly name and description.
    • Enter your Adobe Analytics Report Suite ID and Tracking Server URL. If you do not have these, contact your iOS or Android developer.

      Make sure to include http:// in the URL, e.g.,

    • Enter your Adobe Analytics Tracking Server URL/
    • Choose one or more event type:

      • Opens
      • Sends
      • Control
      • Uninstalls
      • Message Center Read, Delivery, and Delete Events
      • In-App Message Expiration, Resolution, and Display Events

  4. Click the Save button.

Now that you have configured your app and your integration, you can create event-based Segments in Adobe Analytics. See Recommended Attribute Mapping for recommended mapping of Data Streaming events to Adobe Analytics events.

Recommended Attribute Mapping

Capture what data is valuable to you by using Adobe Analytics context data and processing rules. Airship uses the Data Insertion API to send data to Adobe Analytics. Airship uses the contextData field so that we can include every piece of relevant data without taking up the limited number of variables and properties Adobe Analytics supports. In Adobe Analytics you can set processing rules so that every field on a data streaming event maps to an Adobe Analytics concept. Once your Adobe Analytics administrator has set up the processing rules, you can view Airship connect data in your Adobe Analytics dashboard.

We derive contextData keys from the original data streaming events by flattening the JSON objects. For example, the push identifier of the notification that caused an open is triply nested:

   "body": {
      "triggering_push": {
         "push_id": "d99bd842-f816-4560-bc59-b057f7c0e164"

This field would be available for mapping as body.triggering_push.push_id. When mapped to a variable (sProp, eVar, event, or other Adobe Analytics concept), the variable’s value would be d99bd842-f816-4560-bc59-b057f7c0e164.


The above JSON example is a partial object. Actual JSON objects coming from Real-Time Data Streaming are much more complex.

To see all the available fields, read the Data Streaming API Reference.

Airship ConceptRecommended Adobe Analytics Mapping ContextData Variable
Data streaming event type (e.g., send, direct open, indirect open)Custom event (one for each type), and an sProp for segmentation (all the people who received a message, or opened etc.)type
Unique push id, group id, or varianteVarbody.push_id, body.group_id, body.variant, body.triggering_push.push_id, body.triggering_push.group_id, body.triggering_push.variant, body.last_delivered.push_id, body.last_delivered.group_id, body.last_delivered.variant, body.replacing_push.push_id, body.replacing_push.group_id, body.replacing_push.variant
Device Identifiers (e.g., named user, Airship channel ID)eVardevice.ios_channel, device.android_channel, device.named_user,
In-App Message Resolution TypesProp AND eVarbody.type (and type is IN_APP_MESSAGE_RESOLUTION)
In-App Message Expiration TypesProp AND eVarbody.type (and type is IN_APP_MESSAGE_EXPIRATION)
In-App Message Button identifierssPropbody.button_id, body.button_group, button.button_description
Adobe visitorId (via associated identifiers)eVardevice.identifiers.AA_visitorID
Other data streaming informationVariesYou can determine what the context variable name will be based on the data streaming event data. Inner properties are joined with outer properties via a period.

contextData can take a long time to appear in the Adobe Analytics dashboard. Please allow at least one hour before contacting Airship Support.


Known issue: If no processing rules have been defined, no contextData variables will be available for Mapping.

As a workaround until Adobe Analytics fixes this issue, add a trivial rule that does nothing, then proceed establishing your mapping as normal.

Sample Data sent to Adobe

<?xml version="1.0"?>