Channel coordination
Channel coordination is a group of strategies you can use to target 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 via their web browser, 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 method for sending 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 tags 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 sequences:
- Fan out is the default behavior when targeting named users.
- For sequences, Originating channel is used for all accounts not enabled for channel coordination.
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.In the Audience step of the Message and A/B Test composers: For sequences, you select and configure channel coordination when adding each message. After clicking Add message content: In the API, you will enumerate all configured messaging platforms using the Composer: Message or A/B Test
Composer: Sequence
API
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.
In the Audience step of the Message and A/B Test composers: For sequences, you select and configure channel coordination when adding each message. After clicking Add message content: In the API, use the Example Response:Composer: Message or A/B Test
last_active
within the tag group.Composer: Sequence
API
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 the 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.
Composer: Sequence
For sequences, you select and configure channel coordination when adding each message. After clicking Add message content:
- Select Originating Channel and the channels you want to send the message to.
- Click 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, e.g., 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: When choosing the App channel as priority, we will deliver to any iOS, Android, or Fire OS devices that are opted-in to notifications. Open Channels are listed using the name entered when adding the service in your project settings. 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. In the Audience step of the Message and A/B Test composers: For sequences, you select and configure channel coordination when adding each message. After clicking Add message content: In the API, use the Example Response:Configure Channel Priority Order
Composer: Message or A/B Test
priority_platform
within the tag group.Composer: Sequence
API
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.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 List all channels for your named user by using the Named User Lookup API. Once you parse the results to gather the Channel IDs, you maintain the In the Audience step of the Message and A/B Test composers: In the API, use the Example Response:Set User Preference Tags
"user_preferred"
tag in the "ua:orchestration"
tag group on one channel per named user."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"
]
}
}
Composer: Message or A/B Test
user_preferred
within the tag group.API
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 an Audience Segment
You can include channel coordination 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 Tutorial to create a new segment, and include 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