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.
You can use Channel Coordination for Cross-Channel RetargetingA way to send messages in a Sequence to selected channels based on behavior in a different channel..
How Channel Coordination works
We leverage two powerful Airship platform features to make Channel Coordination work:
Event Listeners — Airship listens for activity such as opens, custom events, and uninstalls in order to determine Priority ChannelA Channel Coordination strategy that targets a Named User on the first channel they are opted in to, of the priority order you set. and Last ActiveA Channel Coordination strategy that targets a Named User on the opted-in channel they used most recently. status.
Tag Groups — A Tag Group is an array of tags that you can associate with both channels and Named Users. When we configure your project for Channel Coordination, we use Tag Groups and the reserved
ua:orchestration
namespace.
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.
Caveats for accounts enabled for Channel Coordination and SequencesA series of messages that is initiated by a trigger. Airship sends messages in the series based on your timing settings, and you can also set conditions that determine its audience and continuation. Sequences can be connected to each other and to other messaging components to create continuous user experiences in a Journey.:
- Fan Out is the default behavior when targeting Named Users.
- Originating Channel is used for all accounts not enabled for Channel Coordination.
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:
- Select the channels to include in your audience.
- Select Target Specific Users.
- 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:
- Select Fan Out and the channels you want to send the message to.
- 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:
Channel | Events |
---|---|
App | App open |
Web | Web session |
Email 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.
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:
- Select the channels to include in your audience.
- Select Target Specific Users.
- Search for and select the
Orchestration
Tag Group - Search for Tag
last_active
within the Tag Group. - 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:
- Select Last Active and the channels you want to send the message to.
- 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"
]
}
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.
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:
- Select Originating Channel and the channels you want to send the message to.
- 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:
- Go to Settings, then select Manage for Channel Priority.
- 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.
- Select Save.
- 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. Thepriority_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:
- Select the channels to include in your audience.
- Select Target Specific Users.
- Search for and select the
Orchestration
Tag Group - Search for Tag
priority_platform
within the Tag Group. - 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:
- Select Channel Priority and the channels you want to send the message to.
- Drag your selected channels into priority order.
- 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"
]
}
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:
- Go to Settings, then select Manage for Channel Priority.
- 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.
- 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:
- Select the channels to include in your audience.
- Select Target Specific Users.
- Search for and select the
Orchestration
Tag Group - Search for Tag
user_preferred
within the Tag Group. - 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"
]
}
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:
- Search for and select the
Orchestration
Tag Group. - Search for Tag
last_active
,priority_platform
, oruser_preferred
within the Tag Group. - Set the True operator to include users for whom the condition is true.
Categories