Channel Coordination

Channel Coordination is a group of strategies for targeting users where they are most likely to receive your message.

Several tools and strategies are supported to maximize engagement with users opted in to multiple notification channels. For example, a user may be opted in for notifications in their web browser, your app, and an open channel.

The coordination of your multi-channel messaging relies on a number of our channel features, depending on the message type, its level of urgency, and the particular use case. The various Channel Coordination strategies can be employed to further personalize the mode of messaging delivery, each using a different mix of messaging features.

How Channel Coordination works

We leverage two powerful Airship platform features to make Channel Coordination work:

Channel Coordination requires implementing Named UserA customer-provided identifier used for mapping multiple devices and channels to a specific individual.. Named Users are by definition an essential prerequisite for Channel Coordination, as they are required to map a user’s different channels to your internal identifier. If you are using User PreferenceA Channel Coordination strategy that targets a Named User on their preferred channel., you will also need to set user preference TagsMetadata that you can associate with channels or Named Users for audience segmentation. Generally, they are descriptive terms indicating user preferences or other categorizations, e.g., wine_enthusiast or weather_alerts_los_angeles. Tags are case-sensitive. on the Named User. Follow the steps in Associating Channels with Named Users.

Once your project is configured for Channel Coordination, you can target users via the API or dashboard as you would target any other audience.

Strategies

Each strategy is defined here, along with dashboard and API usage information.

Fan Out

Fan Out is a Channel Coordination strategy that targets a Named User on all the channels they are opted in to, maximizing the chances they receive your message. This strategy is suitable for highly urgent messages, where the user will not be sensitive to over-messaging. This is the default strategy when a Sequence does not have a triggering channel, e.g., a message sent as a result of a Named User Custom Event or Tag change, which equally applies to all channels.

Configure Fan Out in the Audience step of the Message and A/B Test composers:

  1. Select the channels to include in your audience.
  2. Select Target Specific Users.
  3. Search for a Named User and select from the listed results.

For Sequences, you select and configure Channel Coordination when adding each message. After selecting Add message content:

  1. Select Fan Out and the channels you want to send the message to.
  2. Select Save and continue.

With the API, enumerate all configured messaging platforms using the device_types selector:

POST /api/push HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/vnd.urbanairship+json; version=3

{
   "audience": {
      "named_user": "ozymandias"
   },
   "notification": {
        "alert": "Look upon which works now?"
    },
    "device_types": [
       "ios",
       "android",
       "sms",
       "web"
    ]
}

Last Active

Last Active is a Channel Coordination strategy that targets a Named User on the opted-in channel they used most recently. In many cases user recency is the best indicator of preference.

Last Active for each channel is based on the following events:

ChannelEvents
AppApp open
WebWeb session
EmailEmail open, Email click

A device that is opted-in will have higher priority than an opted-out device even if the opted-out device was active more recently. For example, if the Named User has two devices, iOS and Android, and the iOS device is opted-in while the Android device is opted-out, even if the Android device’s app is opened more recently than the iOS device’s app has been used, the iOS device will remain the “last active” because it is the only one that is still opted-in.

For example, when a user clicks a link in an email:

  • If they are directed to a web page and are registered for web push, Last Active will be Web. Otherwise, it will be Email.
  • If they are directed through a deep link to an app and are registered for mobile push notifications, Last Active will be App. Otherwise, it will be Email.

If there is more than one opted-in device for a particular Named User, the device that has most recently had activity will receive any push targeted to the last active device. Examples of possible activities are a registration event, opt-in event, open event, or a custom event.

 Note

Last Active is supported for App, Web, and Email channels only. Email channel support is limited to Sequences.

Configure Last Active in the Audience step of the Message and A/B Test composers:

  1. Select the channels to include in your audience.
  2. Select Target Specific Users.
  3. Search for and select the Orchestration Tag Group
  4. Search for Tag last_active within the Tag Group.
  5. Set the True operator to include users for whom the condition is true.

For Sequences, you select and configure Channel Coordination when adding each message. After selecting Add message content:

  1. Select Last Active and the channels you want to send the message to.
  2. Select Save and continue.

With the API, use the last_active Tag in the ua:orchestration Tag Group:

POST /api/push HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/vnd.urbanairship+json; version=3

{
   "audience": {
      "tag": "last_active",
      "group": "ua:orchestration"
   },
   "notification": {
      "alert": "Hi, last active!"
   },
    "device_types": [
       "ios",
       "android",
       "sms",
       "web"
    ]
}

Example response
HTTP/1.1 202 Accepted
Content-Type: application/json; charset=utf-8
Data-Attribute: push_ids

{
   "ok": true,
   "operation_id": "df6a6b50-9843-0304-d5a5-743f246a4946",
   "push_ids": [
      "9d78a53b-b16a-c58f-b78d-181d5e242078"
   ]
}

Originating Channel

Originating Channel is a Channel Coordination strategy that targets a Named User on the channel that triggered a Sequence. Messaging users on the channels they use to engage your brand can help ensure a consistent user experience. This strategy is used for all accounts not enabled for Channel Coordination.

 Warning

Originating Channel will not work if the triggering behavior is a custom event applied to the named user. In that case, there is no channel associated with the behavior; Airship will instead use the Fan Out strategy for delivery.

For Sequences, you select and configure Channel Coordination when adding each message. After selecting Add message content:

  1. Select Originating Channel and the channels you want to send the message to.
  2. Select Save and continue.

Priority Channel with Fallback

Priority Channel is a Channel Coordination strategy that targets a Named User on the first channel they are opted in to, of the priority order you set.

Drive engagement toward one strategic channel, for example, directing users to the app to save SMS or email cost. For when you want to define a priority for channel for users to engage with, for example, 1) App, 2) Web, 3) Email.

Our priority channel system actively monitors events from your audience such as app opens and opt-in status changes to maintain as accurate a picture as possible of where your audience is reachable for messaging. This picture is only as accurate as the signals we get back from apps or the service providers we work with, however, and in some cases, due to platform limitations, we do not receive messaging channel state changes in real time.

The iOS and Android platforms suffer from this limitation when a user uninstalls an app in that the push providers, e.g., APNs, do not send out any signals or display any status about an uninstall in real time. Only when we attempt to send a push notification to it does Apple (APNs) or Google (FCM) let us know the app has been uninstalled.

Since this is a key use case for app messaging, we have enhanced our system to automatically redirect the message to the next available channel in the priority list when we detect an uninstall event on iOS or Android, in real time.

This messaging fallback behavior follows the same logic we use when determining where to assign the priority_platform Tag, and, in fact, we also reassign the priority_platform Tag at the same time we detect the uninstall.


Before you can target users based on channel priority, you must set the priority order in your project. You must have at least two channels configured and enabled. This setting is not used for Sequences. For Sequences, you set the priority when you create the message.

Set the priority order of your project’s configured and enabled channels:

  1. Go to Settings, then select Manage for Channel Priority.
  2. Check the Enable box next to any channel to include and use the arrows to change their order. Open channels are listed using the name entered when adding the service in your project settings.
  3. Select Save.
 Note

  • When choosing the App channel as priority, we will deliver to any iOS, Android, or Fire OS devices that are opted-in to notifications.
  • After setting priority order for your project, additional processing time may be required to set the priority_platform Tag for larger audiences. The priority_platform Tag will be available for use after several minutes for smaller audiences and up to several hours for audiences of 1 million or more.


Set priority in the Audience step of the Message and A/B Test composers:

  1. Select the channels to include in your audience.
  2. Select Target Specific Users.
  3. Search for and select the Orchestration Tag Group
  4. Search for Tag priority_platform within the Tag Group.
  5. Set the True operator to include users for whom the condition is true.

For Sequences, you select and configure Channel Coordination when adding each message. After selecting Add message content:

  1. Select Channel Priority and the channels you want to send the message to.
  2. Drag your selected channels into priority order.
  3. Select Save and continue.

With the API, use the priority_platform Tag in the ua:orchestration Tag Group:

POST /api/push HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/vnd.urbanairship+json; version=3

{
   "audience": {
      "tag": "priority_platform",
      "group": "ua:orchestration"
   },
   "notification": {
      "alert": "Hi, priority channel!"
   },
   "device_types": [
      "ios",
      "android",
      "sms",
      "web"
   ]
}

Example response
HTTP/1.1 202 Accepted
Content-Type: application/json; charset=utf-8
Data-Attribute: push_ids

{
   "ok": true,
   "operation_id": "df6a6b50-9843-0304-d5a5-743f246a4946",
   "push_ids": [
      "9d78a53b-b16a-c58f-b78d-181d5e242078"
   ]
}

User Preference

User Preference is a Channel Coordination strategy that targets a Named User on their preferred channel. This is understood to provide the optimal customer experience.

To use this strategy, you must first set channel priority in your Airship project. This initializes the Tag class used for User Preference and makes it available to use.

Set the priority order of your project’s configured and enabled channels:

  1. Go to Settings, then select Manage for Channel Priority.
  2. Check the Enable box next to any channel to include and use the arrows to change their order. Open channels are listed using the name entered when adding the service in your project settings.
  3. Select Save.

You can then remove the settings and save again or keep them in place if you intend to also use the Priority Channel with Fallback strategy.


In order to set a preferred channel for a user, they must be opted in on at least two messaging channels, e.g., iOS and Web. Before you can target users based on a their channel preference, you first need to set Tags expressing that preference.

For a user that is opted in on multiple channels and has provided an explicit communication preference, first add a user_preferred Tag to the preferred channel, then target that Tag in your messaging.

You will set a "user_preferred" Tag in the "ua:orchestration" Tag Group on one channel per Named User.

  • List all channels for your Named User by using the Named User Lookup API.
  • Once you parse the results to gather the Channel IDsAn Airship-specific unique identifier used to address a channel instance, e.g., a smartphone, web browser, email address., maintain the "user_preferred" Tag on each channel using our Tags API:
    POST /api/channels/tags HTTP/1.1
    Authorization: Basic <master authorization string>
    Accept: application/vnd.urbanairship+json; version=3
    Content-Type: application/json
    
    {
       "audience": {
          "ios_channel": "b8f9b663-0a3b-cf45-587a-be880946e881"
       },
       "add": {
          "ua:orchestration": [
             "user_preferred"
          ]
       }
    }

Configure User Preference in the Audience step of the Message and A/B Test composers:

  1. Select the channels to include in your audience.
  2. Select Target Specific Users.
  3. Search for and select the Orchestration Tag Group
  4. Search for Tag user_preferred within the Tag Group.
  5. Set the True operator to include users for whom the condition is true.

With the API, use the user_preferred Tag in the ua:orchestration Tag Group:

POST /api/push HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/vnd.urbanairship+json; version=3

{
   "audience": {
      "tag": "user_preferred",
      "group": "ua:orchestration"
   },
   "notification": {
      "alert": "Hi, preferred channel!"
   },
   "device_types": [
      "ios",
      "android",
      "sms",
      "web"
   ]
}

Example response
HTTP/1.1 202 Accepted
Content-Type: application/json; charset=utf-8
Data-Attribute: push_ids

{
   "ok": true,
   "operation_id": "df6a6b50-9843-0304-d5a5-743f246a4946",
   "push_ids": [
      "9d78a53b-b16a-c58f-b78d-181d5e242078"
   ]
}

Include Channel Coordination Tags in a Segment

You can include Tags for Last Active, Priority Channel, and User Preference in your SegmentsA grouping of audience members selected by unique or shared identifiers. Multiple identifiers can be combined within a Segment..

Follow the steps in the Segment Builder documentation to create a new Segment that includes a Channel Coordination Tag:

  1. Search for and select the Orchestration Tag Group.
  2. Search for Tag last_active, priority_platform, or user_preferred within the Tag Group.
  3. Set the True operator to include users for whom the condition is true.