Your audience

Learn how your audience is identified, how users are added to your project, where data comes from, and how to use that data for segmentation, personalization, and more.

What is a Contact?

A Contact is any user in your project. Within the Airship documentation, we use “user” and “Contact” interchangeably.

You can think of a Contact as a container that holds all the information about a person who can receive messages from you. This includes their devices, communication preferences, and any data you’ve collected about them. While a Contact can be associated with multiple devices, such as a user’s tablet and phone, a device can only be associated with a single Contact.

A Contact can be in one of two states:

Airship can set targeting data on these identifiers, which are also used to map devices and channels to a specific user.

When a Contact goes from anonymous to named, the anonymous data automatically carries over to the Named User ID, if the Named User is new. If the Named User already exists, a conflict event is emitted by the SDK, and the app is responsible for migrating anonymous data to the existing Named User.

See Named users for more information, including implementation steps.

What is a channel?

A channel is a specific device or communication method that belongs to a Contact. For example, a Contact might have an iOS device, an Android device, an email address, a phone number for SMS, or a web browser registered for web push. Each of these is a separate channel associated with that Contact.

A single Contact can have multiple channels, allowing you to reach the same person through different devices and communication methods. Each channel has a unique Channel IDAn Airship-specific unique identifier used to address a channel instance, e.g., a smartphone, web browser, email address. that Airship uses to identify and send messages to that specific device or communication method.

In another context, “channel” can refer to the communication media supported by the Airship Service: app, web, email, SMS, and Open Channels.

Where Contacts come from

Users enter your project when they interact with your brand through any of your communication channels. Each of these interactions creates a Contact in your project, even if the person hasn’t logged in or provided their name yet.

The way users are added depends on which channel they use to connect with you:

Where data can be associated with your audience

You can attach data to users at two levels:

  • Channel level — This data is tied to a specific device or communication method, such as a particular phone or email address. This level is useful when the information is specific to that device.
  • Contact level — This is data tied to the user themselves, which applies across all their devices and channels. This level is recommended for most use cases because it gives you a complete view of each person.

When you identify a Contact as a Named User, you can store data at the Contact level, making it available across all their associated channels. This is especially powerful because it lets you see the full picture of how someone interacts with your brand, regardless of which device or channel they use.

Where audience data comes from

User data can come from multiple sources:

How data can be added or removed

You can manage user data in several ways:

  • Dashboard — Upload CSV files to add or update user data in bulk, or use the Contact Management tool to view and manage individual users.
  • APIs — Use Airship’s REST APIs to programmatically add, update, or remove Tags, Attributes, and other data. This is useful for real-time updates from your systems.
  • SDKs — Your mobile app or website can add or remove data directly using Airship SDK methods. This is ideal for capturing user actions as they happen.
  • Integrations — Connected platforms like Segment or your CRM can automatically sync data to Airship.

You can remove data by:

  • Setting Attributes to empty values or removing Tags
  • Using the API to explicitly remove specific data points
  • Resetting a Contact to clear all anonymous data, typically done when a user logs out

What you can do with audience data

User data powers many features in Airship that help you send more relevant, effective messages:

Segmentation — Divide your audience into groups based on their data. For example, you might create a SegmentA grouping of audience members selected by unique or shared identifiers. Multiple identifiers can be combined within a Segment. of users who have made a purchase in the last 30 days, or users who live in a specific city. You can then send targeted messages to these Segments. You can create Segments based on:

  • Attributes, such as age, location, or purchase history
  • Tags, such as “premium_member” or “newsletter_subscriber”
  • Events, such as “purchased” or “app_opened”
  • Subscription lists
  • Device properties
  • Named User IDs

See Segmenting your audience.

Personalization — Customize message content for each individual user. Instead of sending “Hello!” to everyone, you can send “Hello, Sarah!” using the user’s first name Attribute. You can personalize:

  • Message text and subject lines
  • Product recommendations based on purchase history
  • Special offers based on loyalty tier
  • Content based on location, language, or preferences

See About personalization.

Automation — Trigger messages automatically based on user behavior or data changes. For example, send a welcome message when someone first opens your app, or a re-engagement message if they haven’t visited in 30 days. See Scenes, In-App Automation, and About Automations and Sequences.

Channel Coordination — When you have Named Users with multiple channels, Airship can help you choose the best channel to reach each person. For example, you might prefer to send messages to the channel they used most recently, or let users choose their preferred channel. See Channel Coordination.

Analytics and insights — Use user data to understand your audience better. See which segments are most engaged, which personalization strategies work best, and how user behavior changes over time. See Reports & Analytics.

Advanced features — User data also powers these advanced capabilities:

The more complete and accurate your user data, the more effectively you can use these features to create meaningful, relevant experiences for your audience.

Managing the Contact’s identifier (Named User ID)

For the mobile SDKS, see Contacts in the SDK developer documentation.

Email channel association

When an email address is registered through the SDK, it will be registered for both transactional and commercial emails by default. To change this behavior, you can override the options to request Double Opt-InA process where users who sign up for messaging must confirm opting in before they can receive messages. for commercial messages.

Associating an email channel

val properties = JsonMap.newBuilder().put("place", "paris").build()
val options = EmailRegistrationOptions.commercialOptions(commercialDate, transactionalDate, properties)
Airship.contact.registerEmail("your@example.com", options)
JsonMap properties = JsonMap.newBuilder().put("place", "paris").build();
EmailRegistrationOptions options = EmailRegistrationOptions.commercialOptions(commercialDate, transactionalDate, properties);
Airship.getContact().registerEmail("your@example.com", options);
let options = EmailRegistrationOptions.commercialOptions(
    transactionalOptedIn: transactionalDate,
    commercialOptedIn: commercialDate,
    properties: properties
)
Airship.contact.registerEmail("your@example.com", options: options)
UAEmailRegistrationOptions* options = [UAEmailRegistrationOptions commercialOptionsWithTransactionalOptedIn:transactionalDate commercialOptedIn:commercialDate properties:properties];
[UAirship.contact registerEmail:@"your@example.com" options:options];
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported

SMS channel association

When an MSISDNThe mobile phone number, including country code, of a device in your Airship audience. Each MSISDN represents an individual mobile device. is registered through the SDK, Airship sends a message to that number, prompting them to opt in. For more information, see the SMS platform documentation: Non-Mobile Double Opt-In.

Associating an SMS channel

val options = SmsRegistrationOptions.options("senderId")
Airship.contact.registerSms("yourMsisdn", options)
SmsRegistrationOptions options = SmsRegistrationOptions.options("senderId");
Airship.getContact().registerSms("yourMsisdn", options);
let options = SMSRegistrationOptions.optIn(senderID: "senderId")
Airship.contact.registerSMS("yourMsisdn", options: options)
UASMSRegistrationOptions* options = [UASMSRegistrationOptions optInSenderID:@"senderId"];
[UAirship.contact registerSMS:"yourMsisdn" options:options];
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported

Open Channel association

Open Channels support notifications to any medium that can accept a JSON payload, through either the Airship API or web dashboard. For more information about Open Channels, see the Open Channels documentation.

Associating an Open Channel

val options = OpenChannelRegistrationOptions.options("platformName")
Airship.contact.registerOpenChannel("address", options)
OpenChannelRegistrationOptions options = OpenChannelRegistrationOptions.options("platformName");
Airship.getContact().registerOpenChannel("address", options);
let options = OpenRegistrationOptions.optIn(platformName: "platformName", identifiers: identifiers)
Airship.contact.registerOpen("address", options: options)
UAOpenRegistrationOptions* options = [UAOpenRegistrationOptions optInSenderID:@"platformName"];
[UAirship.contact registerOpen:"address" options:options];
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported
// Not supported