Segmentation
You can define your audience based on named users, attributes, tags, tag groups, and Airship channel IDs.
Named Users
Named Users allow you to associate multiple devices to a single user or profile that may be associated with more than one device, e.g., an end-user’s tablet and phone. A device can have only one Named User, and a single Named User should not be associated with more than 50 devices. Named Users provide the ability to directly set tags on them.
By default, Named Users can only be associated server-side, via the API. A 403 Forbidden response is returned if Named User association is attempted when client-side association is disabled. In order to associate a Named User through the application, you must change the application’s Named Users security setting to allow Named Users to be set from devices. See: Enable Named Users.

Associating the channel with a Named User ID will implicitly disassociate the channel from the previously associated Named User ID, if an association existed.
UAirship.shared().getContact().identify("NamedUserID");
UAirship.shared().contact.identify("NamedUserID")
UAirship.shared().getContact().reset();
UAirship.shared().contact.reset()
Attributes
Attributes are metadata that you can use for audience segmentation. Attributes differ from tags in that when evaluating users with attributes, Airship uses operators, e.g., equals, less than/greater than, contains, before/after, to determine whether or not to target a user. Supported attribute types are TEXT, NUMBER, and DATE. For more information see the attributes guide.
UAirship.shared().getChannel().editAttributes()
.setAttribute("device_name", "Bobby's Phone")
.setAttribute("average_rating", 4.99)
.removeAttribute("connection_type")
.apply();
UAirship.shared().channel.editAttributes()
.setAttribute("device_name", "Bobby's Phone")
.setAttribute("average_rating", 4.99)
.removeAttribute("connection_type")
.apply()
UAirship.shared().getContact().editAttributes()
.setAttribute("first_name", "Bobby")
.setAttribute("birthday", Date(524300400000))
.apply();
UAirship.shared().contact.editAttributes()
.setAttribute("first_name", "Bobby")
.setAttribute("birthday", Date(524300400000))
.apply()
Tag-based segmentation
Tags are an easy way to group channels. Many tags can be applied to one or more devices. Then, a message sent to a tag will be sent out to all devices that are associated with that tag.
UAirship.shared().getChannel().editTags()
.addTag("some_tag")
.removeTag("some_other_tag")
.apply();
UAirship.shared().channel.editTags()
.addTag("some_tag")
.removeTag("some_other_tag")
.apply()
Tag groups
A tag group is an array of tags that you can associate with both channels and named users. In addition to the Airship default tag groups, you can create custom tag groups in the dashboard. See the Tag Groups documentation for more details, including security information.
If setting channel tags is enabled during registration, the
predefined device
Tag Group cannot be modified from the device
and will log an error message. Disable channel tags by setting
setChannelTagRegistrationEnabled
to false on the AirshipChannel instance if
you want to modify this “default” Tag Group.
UAirship.shared().getChannel().editTagGroups()
.addTag("loyalty", "bronze-member")
.removeTag("loyalty", "bronze-member")
.setTag("games", "bingo")
.apply();
UAirship.shared().channel.editTagGroups()
.addTag("loyalty", "bronze-member")
.removeTag("loyalty", "bronze-member")
.setTag("games", "bingo")
.apply()
UAirship.shared().getContact().editTagGroups()
.addTag("loyalty", "bronze-member")
.removeTag("loyalty", "bronze-member")
.setTag("games", "bingo")
.apply();
UAirship.shared().contact.editTagGroups()
.addTag("loyalty", "bronze-member")
.removeTag("loyalty", "bronze-member")
.setTag("games", "bingo")
.apply()
Airship Channel IDs
The Channel ID is a unique identifier that ties together an application/device pair on Android and Amazon devices. The Channel ID is used to target pushes to specific devices using the Airship API. Once a Channel ID is created, it will persist the application until it is either reinstalled, or its internal data is cleared.
String channelId = UAirship.shared().getChannel().getId();
Logger.info("My Application Channel ID: " + channelId);
val channelId = UAirship.shared().channel.id
Logger.info("My Application Channel ID: $channelId")
Don’t worry if this value initially comes back as null on the app’s first run
(or after clearing the application data), as the Channel ID will be created and
persisted during registration. To receive an event when the Channel ID is available,
add an AirshipChannelListener
on the Channel instance.
UAirship.shared().getChannel().addChannelListener(new AirshipChannelListener() {
@Override
public void onChannelCreated(@NonNull String channelId) {
// created
}
@Override
public void onChannelUpdated(@NonNull String channelId) {
// updated - tags, tokens, opt-in status changed
}
});
UAirship.shared().channel.addChannelListener(object : AirshipChannelListener {
override fun onChannelCreated(channelId: String) {
// created
}
override fun onChannelUpdated(channelId: String) {
// updated - tags, tokens, opt-in status changed
}
})
Categories