# Data Collection Get information about data collection methods, data types, and privacy compliance. # SDK Data Collection > Learn about data collection and privacy controls provided by the Airship SDK. ## Privacy Manager Data collected by the Airship SDK can be controlled using Privacy Manager flags. Each flag enables additional Airship features within the SDK and controls what data is collected. The flags are for individual or groups of functional features within the SDK. Some Airship features, such as contact tags, require enabling multiple flags. | Privacy Manager Flag | Features | |----------------------|----------| | Push | Push notifications | | In-App Automation | In-App Automation, In-App Messages, Scenes, and Landing Pages | | Message Center | Message Center | | Tags and Attributes | [Tags](https://www.airship.com/docs/guides/audience/tags/), [Attributes](https://www.airship.com/docs/guides/audience/attributes/about/), Subscription Lists, and Preference Center | | Contacts | Contact Tags, Attributes, and Subscription Lists; Named User; and Associated Channels | | Analytics | Associated identifiers, Custom events, Screen tracking, Surveys (questions and NPS surveys in Scenes), email address (via form inputs in Scenes), Feature Flag interaction | | Feature Flags | Feature Flag evaluation and interaction | ### SDK Data Collection All SDK features are enabled by default, but the SDK can be configured to disable all or a subset of features on start. If the SDK is initialized without any features enabled, it will not store any data or make any network requests. If the SDK features are disabled after being previously enabled, it may make a few network requests to opt the channel out to prevent notifications. > **Note:** The data collected automatically by the SDK is not used to track users across apps. | Data | Description | Privacy Manager Features | |------|-------------|--------------------------| | Channel ID | Airship app install identifier. | *Any* | | Locale | The app's locale, comprised of language and language country. | *Any* | | Time zone | The device time zone. | *Any* | | Platform | The platform the device is running on, e.g., Android, Fire OS, iOS. | *Any* | | SDK version | The Airship SDK version. | *Any* | | Notification opt-In status | Notifications and background opt-in status. | *Any* | | Contact ID | Internal Airship ID that maps to contact. | Contacts | | App version | The app's version. | Analytics, In-App Automation | | Message Center credentials | The message center credentials for message list access. | Message Center | | Message Center message status | Message reads and deletes. | Message Center | | Push token | The push address for push notifications. | Push | | Push provider | The push delivery platform, e.g., FCM, HMS. | Push | | Device model | The device model, e.g., Samsung GT-S5830L, iPad Air. | Analytics | | Device manufacturer | The device manufacturer name. | Analytics | | OS version | The device OS version. | Analytics | | Carrier1 | The device mobile carrier. | Analytics | | Connection Type1 | The connection type, e.g., Cell, Wifi. | Analytics | | Framework | Airship framework usage: React Native, Unity, Cordova, Flutter, Titanium, and .NET Maui. | Analytics | | Lifecycle events | Init, foreground, background, and time in app. | Analytics | | Scheduled summary2 | Scheduled summary notification status. Only collected if it is being used. | Analytics | | Time sensitive2 | Time sensitive notification status. Only collected if it is being used. | Analytics | | Notification events | Push notification interaction events. | Analytics, Push | | Notification permissions | Authorized notification types and permissions. | Analytics, Push | | In-App Automation events | Events within an In-App display: displays, resolutions, page views, button taps, and survey results. | Analytics, In-App Automation | 1. No longer collected as of SDK 20. 2. iOS 15+ only ### App Data Collection In addition to the data automatically collected by the SDK, the app can provide data to the SDK for collection: | Data | Description | Privacy Manager Features | |------|-------------|--------------------------| | Channel Tags | Tags and tag groups set on the channel | Tags and Attributes | | Channel Subscription Lists | Subscription Lists set on the channel | Tags and Attributes | | Channel Attributes | Attributes set on the channel | Tags and Attributes | | Contact Tags | Tags and tag groups set on the contact | Tags and Attributes, Contacts | | Contact Subscription Lists | Subscription Lists set on the contact | Tags and Attributes, Contacts | | Contact Attributes | Attributes set on the contact | Tags and Attributes, Contacts | | Named User | Contact's external ID | Contacts | | Associated Channels | Email and email opt-in data, SMS and SMS opt-in data, etc. | Contacts | | Associated Identifiers | Additional analytics identifiers | Analytics | | Custom Events | App's custom events | Analytics | | Screen Tracking | App's screen tracking | Analytics | | Permission Collection | Additional permissions collected by the SDK | Analytics | | Feature Flag Interaction | Events related to [Feature Flags](https://www.airship.com/docs/reference/glossary/#feature_flag) | Feature Flags, Analytics | ## Data Privacy Airship makes HTTPS encryption (also referred to as TLS connection) available for data in transit to or from the Service. For more information, see [Airship Security Measures](https://www.airship.com/legal/security-measures/). Data collected by the SDK is not transferred to any third parties unless a partner integration is enabled and configured by the application. For information on individual data requests, see [Individual Data Privacy Rights](https://www.airship.com/docs/guides/audience/privacy/individual-data-privacy/). ## Platform-Specific Guides - [Apple Privacy Manifest](https://www.airship.com/docs/reference/data-collection/apple-privacy-manifest/) - Declare data collection practices to Apple - [Google Play Data Safety](https://www.airship.com/docs/reference/data-collection/google-play-data-safety/) - Reference for Google Play's Data Safety section # Device Properties > This reference provides details about device properties, default Attributes, and device property Tags collected by the SDK. *Device properties* are metadata representing the default attributes and property tags of a device, such as language and time zone settings, OS and browser versions, and notification opt-in status. Device properties are used for audience segmentation. The data used for the tags and attributes is collected automatically from the Airship SDKs, and are updated daily. See also: [Attributes](https://www.airship.com/docs/reference/glossary/#attributes), [Tags](https://www.airship.com/docs/reference/glossary/#tag). > **Note:** Default Attributes differ from device property tags in providing evaluation operators such as equals, less than/greater than, contains, before/after, to determine whether or not to target a user. Additionally, they can be used for message personalization. ## Default Attributes Airship default Attributes are built-in metadata that represent device Attributes that are collected by the SDK and used to segment your audience, target specific devices, and personalize messages. See [Default Attributes](https://www.airship.com/docs/reference/data-collection/attributes/#default-attributes) in the *Attributes Reference*. ## Device Property Tags Airship device property tags are built-in metadata tags that represent the properties of a device, are collected by the SDK and used to segment your audience and target specific devices. | UI Name | Tag Group ID | Valid Tags | Sentinel Value | | --- | --- | --- | --- | | Timezone | `timezone` | [Time zone](#time-zone) | Unknown (UI) or NO_TIME_ZONE (API) | | Notification Opt-in | `ua_opt_in` | `"true"` or `"false"` | None available | | Background Enabled | `ua_background_enabled` | `"true"` or `"false"`1 | None available | | Location Enabled | `ua_location_enabled` | `"true"` or `"false"`1,2 | None available | | Application Version | `ua_app_version` | Any sanitized string3 | Unknown | | Language | `ua_locale_language`4 | [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) | Unknown | | Language Country | `ua_locale_country`4 | [ISO 3166-1 (alpha-2 codes)](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) | Unknown | | SDK Version | `ua_sdk_version` | [SDK version number](#sdk-version) | Unknown | | Device OS Version | `ua_os_version` | [Device OS version number](#platform-version) | Unknown | | Device Model | `ua_ios_model` | [iOS Model](#device-model) | Unknown | 1 Note that when pushing to these tags via the API, you use a string that represents a boolean value, not an actual boolean. In other words, the valid tags are `"true"` and `"false"` rather than `true` and `false`. For example: ```json { "group": "ua_background_enabled", "tag": "true" } ``` 2 The *Location Enabled* tag group only contains devices with SDK 6.0+. 3 Because we cannot check whether a string describing your app version is correct, the iOS App Version and Android App Version tag groups will accept any sanitized string as valid. However, a push will only reach your users if you use a valid version string for your app. For example, while the API will not flag a push to the following as invalid, presumably none of your iOS users are using the `"pizzzzzza"` version of your app, so no one will receive the message: ```json { "tag": "pizzzzzza", "group": "ua_ios_app_version" } ``` 4 See [Locale](#locale) below. UI Name : How the tag group is displayed within the Airship dashboard. Tag Group ID : The ID used to refer to the tag group in the API. Valid Tags : The tags contained within the tag group. Sentinel Value : A special tag that is equivalent to "unknown". > **Note:** **Example:** If our system is unable to determine a device's language > settings, the device will receive an `"Unknown"` tag in the `"ua_locale_language"` tag group. You could target such devices like so: > > ```json > { "group": "ua_locale_language", "tag": "Unknown" } > ``` > > This push goes to all devices with unknown language settings. > **Note:** There are no sentinel values for *Background Enabled*, *Location Enabled*, > or *Notification Opt-in*; every device will be tagged with either `"true"` > or `"false"` for each of these groups. > > Sentinel values will be presented as **Unknown**, both in the UI and API, with > the exception of *Timezone*. Due to legacy reasons, the sentinel value for > Timezone will display as **Unknown** in the UI but must be referred to as > `"NO_TIME_ZONE"` via the API, e.g.: > > ```json > { "group": "timezone", "tag": "NO_TIME_ZONE" } > ``` ## Collected Properties **Apps and web browsers** * Language * Language country * Time zone > **Note:** By default, for web browsers the language and country data are retrieved from the browser. Under some conditions, the browser might not have Country information set. Using the [Locale Override](https://www.airship.com/docs/developer/sdk-integration/web/advanced/localization/#overriding-locale) methods in the Web SDK, you can set the language and country and override the browser defaults. **Apps only** * Device model * Device OS * Application version * Location * SDK Version * Push Notification opt-in * Background enabled **Web browsers only** * Browser name * Browser version * Browser type **Email only** * Email domain ### Time Zone A time zone (`timezone`) tag is identical to its UI name. > **Note:** This is not a full list of possible device time zones. If a device has a > time zone setting that is not listed below, our system will attempt to resolve > it to the nearest available time zone, then tag the device accordingly. > **Tip:** Make sure to use quotes around the tag when using the API. Example: > > ```json > { "group": "timezone", "tag": "Africa/Addis_Ababa" } > ``` | Time Zone Tag / UI Name| UTC Offset | UTC DST Offset | | --- | --- | --- | | `Africa/Addis_Ababa` | +03:00 | +03:00 | | `Africa/Harare` | +02:00 | +02:00 | | `Africa/Lagos` | +01:00 | +01:00 | | `America/Argentina/Buenos_Aires` | -03:00 | -03:00 | | `America/Bogota` | -05:00 | -05:00 | | `America/Caracas` | -04:30 | -04:30 | | `America/Chicago` (Central time zone) | -06:00 | -05:00 | | `America/Costa_Rica` | -06:00 | -06:00 | | `America/Denver` (Mountain time zone) | -07:00 | -06:00 | | `America/Halifax` | -04:00 | -03:00 | | `America/Juneau` (Alaska time zone) | -09:00 | -08:00 | | `America/Lima` | -05:00 | -05:00 | | `America/Los_Angeles` (Pacific time zone) | -08:00 | -07:00 | | `America/New_York` (Eastern time zone) | -05:00 | -04:00 | | `America/Phoenix` | -07:00 | -07:00 | | `America/Santiago` | -03:00 | -03:00 | | `America/Sao_Paolo` | -03:00 | -02:00 | | `Asia/Bangkok` | +07:00 | +07:00 | | `Asia/Dhaka` | +06:00 | +06:00 | | `Asia/Dubai` | +04:00 | +04:00 | | `Asia/Hong_Kong` | +08:00 | +08:00 | | `Asia/Jakarta` | +07:00 | +07:00 | | `Asia/Karachi` | +05:00 | +05:00 | | `Asia/Kolkata` | +05:30 | +05:30 | | `Asia/Manila` | +08:00 | +08:00 | | `Asia/Seoul` | +09:00 | +09:00 | | `Asia/Singapore` | +08:00 | +08:00 | | `Asia/Tehran` | +03:30 | +04:30 | | `Asia/Tokyo` | +09:00 | +09:00 | | `Asia/Vladivostok` | +10:00 | +10:00 | | `Australia/Adelaide` | +09:30 | +10:30 | | `Australia/Brisbane` | +10:00 | +10:00 | | `Australia/Sydney` | +10:00 | +11:00 | | `Etc/GMT` | +00:00 | +00:00 | | `Europe/Istanbul` | +02:00 | +03:00 | | `Europe/Lisbon` | +00:00 | +01:00 | | `Europe/London` | +00:00 | +01:00 | | `Europe/Moscow` | +03:00 | +03:00 | | `Europe/Paris` | +01:00 | +02:00 | | `Pacific/Auckland` | +12:00 | +13:00 | | `Pacific/Honolulu` (Hawaii time zone) | -10:00 | -10:00 | | `UTC` | +00:00 | +00:00 | ### SDK Version SDK version tags are in the format `#.#.X`, e.g., `14.0.X`. We do not allow targeting of specific patches, such as `14.0.1`. When setting a tag, searching for the SDK version group will resolve any queries of specific patches to the nearest possible version. For example, searching for *14.0.1* will return *14.0.X* as a result. When using the API, you must use the `#.#.X` format or the push will not reach your audience. **Example**: ```json { "tag": "14.0.X", "group": "ua_ios_version" } ``` ### Platform Version Platform version tags are in format `#.#.X`, e.g., `14.2.X`. We do not allow targeting of specific patches, such as `14.2.6`. ### Device Model A device model tag's UI name appears in the dashboard when building [Segments](https://www.airship.com/docs/reference/glossary/#segment) or using the Targeting Specific Users audience option. Example: | UI Name | Device Model | | --- | --- | | iPhone 12 Pro | `iPhone13,3` | ### Locale A device's locale is determined by its language and country settings. Target a specific locale via tag groups `ua_locale_language` and `ua_locale_country`. > **Warning:** Keep in mind that a device's language and country settings imply nothing about > the user's actual language or location. For example, an English speaking citizen of > the US could set the phone's country to China and language to Arabic, and the > device locale would reflect those changes. > > It is best to think of `ua_locale_country` and `ua_locale_language` as useful approximations only. On iOS, the locale is a combination of the *iPhone Language* and *Region* settings. Using ISO standards, an iPhone with language English and region United States has a locale of `en_US`. With Android devices, you choose the language/country combination together, e.g., English (United States). The `ua_locale_language` tag group is used to specify the language half of the locale. To target both iOS and Android devices set to English, use the tag `en`: ```json { "group": "ua_locale_language", "tag": "en" } ``` ### Email Domain Email channels include an `ua_email_domain` tag group with a single tag indicating the domain of the email address. The domain is the portion after the `@` symbol. This tag is often used to help with reputation management by excluding problem domains from bulk sends. # Events Reference > This reference lists all default and predefined events with their properties, use cases, and paths. This page organizes events by type and channel. See also: * [Events user guide](https://www.airship.com/docs/guides/audience/events/events/) * [API: Activity Audience Object](https://www.airship.com/docs/developer/rest-api/ua/schemas/event-segmentation/#activityobject) For a complete list of events, see our [RTDS API Reference](https://www.airship.com/docs/developer/rest-api/connect/schemas/events/). ## Default events Below are lists of all available default events per channel. Default events do not require additional configuration. ### App and Web events The events in this section are recorded for both mobile apps and web. #### Scenes Your project includes these default Scene events: Scene displayed — `scene_displayed` : User viewed at least the first screen in a Scene. Scene completed — `scene_completed` : User viewed all the screens in a Scene. Scene incomplete — `scene_incomplete` : User dismissed a Scene before the last screen was viewed. The following table describes properties for Scene events: | Property | Use case | Path | | --- | --- | --- | | Push ID | Received a Scene associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_msg/push_id` | | Campaign Category | Received a Scene from a push with a specific campaign category. | `$._msg.campaigns.categories[*]` | #### Surveys Your project includes these default events for survey content in Scenes: Survey displayed — `survey_displayed` : Scene containing questions or NPS survey was displayed on a user's device. Survey submitted — `survey_submitted` : Scene containing questions or NPS survey was submitted by a user. Survey not submitted — `survey_not_submitted` : Scene containing questions or NPS survey was dismissed without being submitted. The following table describes properties for survey events: | Property | Use case | Path | | --- | --- | --- | | Push ID | Received a survey associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_msg/push_id` | | Survey type | Received a survey associated with a survey type `nps` or `user_feedback`. | `/_msg/context/state/form/response_type` | | Campaign Category | Received survey from a push with a specific campaign category. | `$._msg.campaigns.categories[*]` | ### App events The events in this section are recorded for mobile apps. #### First seen Your project includes this default app event:
First seen — first_seen
User opted in to notifications or opened your app for the first time.

The following table describes properties for the first seen event:

Property Use case Path
Platform Target users who were [first seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) on a specific platform in a sequence. /_msg/platform
#### App open Your project includes this default app open event: App open — `app_open` : User opened your mobile app. This event fires every time a user opens your app, including the first time. See also [First open](#first-open). The following table describes properties for the app open event: | Property | Use case | Path | | --- | --- | --- | | Push ID | Opened app as result of a specific [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Opened app as result of a specific [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | | Variant ID | Opened app as result of a specific A/B test variant. | `/_triggering_push/variant_id` | | Campaign Category | Opened app as result of a push with a specific campaign category. | `/_triggering_push/campaigns/categories` | #### First open Your project includes this default first open event: First open — `first_open` : User first registered a channel in your app. This event fires only once per user, when a channel is first registered. Channel registration most commonly occurs immediately after the first app open but can happen at other times as well, For example, if channel registration was delayed. The [app open](#app-open) event fires on every app open, including the first. The `first_open` event has no additional properties at this time. #### Message received Your project includes this default message received event: Message received — `message_received` : User was sent a message by Airship. The following table describes properties for the message received event:
Property Use Case Path
Push ID Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). /_msg/push_id
Group ID Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). /_msg/group_id
Variant ID Received message as a member a specific A/B test variant. /_msg/variant_id
Campaign Category Received message from a push with a specific campaign category. $._msg.campaigns.categories[*]
#### In-app messages Your project includes these default in-app message events: In-app message display — `in_app_message_display` : In-app message was displayed on user's device. In-app message resolution — `in_app_message_resolution` : In-app message was cleared from the display, either by user action or timeout. In-app message events have no properties at this time. #### Message Center Your project includes these default Message Center events: Message Center delivered — `message_center_delivered` : Message Center message was delivered to device. Message Center read — `message_center_read` : User viewed Message Center message. Message Center deleted — `message_center_deleted` : Message Center message was deleted by user. The following table describes properties for Message Center events: | Property | Use case | Path | | --- | --- | --- | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_msg/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_msg/group_id` | | Variant ID | Received message as a member of a specific A/B test variant. | `/_msg/variant_id` | | Campaign Category | Received message from a push with a specific campaign category. | `/_msg/campaigns/categories` | #### Message Center control Your project includes this default Message Center control event: Message Center control — `message_center_control` : Message Center message was not sent to user because the user's channel or contact was held out of a push as part of an experiment. The following table describes properties for the Message Center control event: | Property | Use case | Path | | --- | --- | --- | | Push ID | Did not receive a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_msg/push_id` | | Group ID | Did not receive a message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_msg/group_id` | | Variant ID | Did not receive a message as a member of a specific A/B test variant. | `/_msg/variant_id` | | Campaign Category | Did not receive a message from a push with a specific campaign category. | `/_msg/campaigns/categories` | ### Web events The events in this section are recorded for websites. #### First seen Your project includes this default web event:
First seen — first_seen
User opted in to notifications or opened your app for the first time.

The following table describes properties for the first seen event:

Property Use case Path
Platform Target users who were [first seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) on a specific platform in a sequence. /_msg/platform
#### Message received Your project includes this default message received event: Message received — `message_received` : User was sent a message by Airship. The following table describes properties for the message received event:
Property Use Case Path
Push ID Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). /_msg/push_id
Group ID Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). /_msg/group_id
Variant ID Received message as a member a specific A/B test variant. /_msg/variant_id
Campaign Category Received message from a push with a specific campaign category. $._msg.campaigns.categories[*]
#### Engagement Your project includes these default web engagement events: Web click — `web_click` : User clicked the web notification. Web session — `web_session` : User generated a [web session](https://www.airship.com/docs/reference/glossary/#web_session). The following table describes properties for web engagement events: | Property | Use case | Path | | --- | --- | --- | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | ### Email events The events in this section are recorded for email. #### First seen Your project includes this default email event:
First seen — first_seen
User opted in to notifications or opened your app for the first time.

The following table describes properties for the first seen event:

Property Use case Path
Platform Target users who were [first seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) on a specific platform in a sequence. /_msg/platform
#### Delivery and opens Your project includes these default email delivery and open events: Email injection — `email_injection` : The number of emails successfully sent from SparkPost to the email provider. Email delay — `email_delay` : Mailbox provider temporarily rejected an email. In general, this event indicates that the provider will attempt to resend the message. Email bounce — `email_bounce` : Email could not be delivered to an address. Email delivered — `email_delivered` : Remote email server acknowledged receipt of a message. Initial open — `initial_open` : User opened an email, rendering a tracking pixel at the top of the message. Email open — `email_open` : User opened an email, rendering a tracking pixel at the bottom of the message. This event only occurs when the entire email has loaded on screen. The following table describes properties for email delivery and open events: | Property | Use case | Path | | --- | --- | --- | | Sender | Received email from a specific email address. | `sender` | | Subject | Received email with specific subject. | `subject` | | Email address | Message targeted recipient's email address. | `email` | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | | Campaign Category | Received message associated with a specific campaign category. | `$._triggering_push.campaigns.categories[*]` | #### Link clicks Your project includes this default email click event: Email click — `email_click` : User clicked a tracked link in a message. Only HTTP and HTTPS links are tracked. The following table describes properties for the email click event: | Property | Use case | Path | | --- | --- | --- | | Sender | Received email from a specific email address. | `sender` | | Subject | Received email with specific subject. | `subject` | | Link URL | User clicked on a specific email link. | `link_url` | | Link Name | User clicked on a [named email link](https://www.airship.com/docs/guides/messaging/messages/content/email/email/#link-names). | `link_name` | | Email address | Message targeted recipient's email address. | `email` | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | | Campaign Category | Received message associated with a specific campaign category. | `$._triggering_push.campaigns.categories[*]` | #### Unsubscribe Your project includes this default email unsubscribe event: Email unsubscribe — `email_unsubscribe` : User clicked an unsubscribe link in an email you sent. The following table describes properties for the email unsubscribe event: | Property | Use case | Path | | --- | --- | --- | | Unsubscribe | User unsubscribes via the link that you provided. **Note**: There is only one unsubscribe event type (`link_unsubscribe`) | `unsubscribe_event_type` | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | | Campaign Category | Received message associated with a specific campaign category. | `$._triggering_push.campaigns.categories[*]` | ### SMS events The events in this section are recorded for SMS. #### First seen Your project includes this default SMS event:
First seen — first_seen
User opted in to notifications or opened your app for the first time.

The following table describes properties for the first seen event:

Property Use case Path
Platform Target users who were [first seen](https://www.airship.com/docs/reference/glossary/#first_seen_event_trigger) on a specific platform in a sequence. /_msg/platform
#### Delivery status Your project includes these default SMS delivery status events: SMS dispatched — `sms_dispatched` : SMS message was dispatched and accepted for delivery by the short message service center. SMS delivered — `sms_delivered` : SMS message was delivered. SMS aborted — `sms_aborted` : SMS message was aborted before reaching short message service center. SMS expired — `sms_expired` : SMS message expired before delivery to the short message service center. SMS rejected — `sms_rejected` : SMS message was rejected by short message service center. SMS failed — `sms_failed` : SMS message failed to be delivered. SMS undeliverable — `sms_undeliverable` : SMS message could not be delivered. SMS unknown — `sms_unknown` : SMS message was delivered to the short message service center, but no delivery receipt has been received or a delivery receipt that could not be interpreted was received. The following table describes properties for SMS delivery status events: | Property | Use case | Path | | --- | --- | --- | | Vendor Delivery ID | Received SMS from specific vendor. | `vendorDeliveryId` | | Sender ID | Received SMS from specific sender. | `sender` | | Error code | SMS resulted in specific error code. | `error_code` | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | #### Short Link click Your project includes this default Short Link click event: Short Link click — `short_link_click` : User clicked the Short Link in the sent message. The following table describes properties for the Short Link click event: | Property | Use case | Path | | --- | --- | --- | | Original Url | User clicked on a shortened link in a message. | `original_url` | | Push ID | Received a message associated with a [Push ID](https://www.airship.com/docs/reference/glossary/#push_id). | `/_triggering_push/push_id` | | Group ID | Received message associated with a [Group ID](https://www.airship.com/docs/reference/glossary/#group_id). | `/_triggering_push/group_id` | ## Predefined events Below are groupings of all available predefined events. See the templates information in our [Custom Events](https://www.airship.com/docs/sdk-topics/custom-events/) SDK documentation for implementation details. Before you can segment on predefined events you must [activate them for segmentation](https://www.airship.com/docs/guides/audience/events/manage/) in the dashboard. Predefined events are [Custom Events](https://www.airship.com/docs/reference/glossary/#custom_event), so you can define additional properties for them if you like, as long as you declare the properties in the SDK. > **Note:** **Transaction ID** is not currently supported with event segmentation for predefined events. ### Registration Your project includes this predefined registration event: Registered for account — `registered_account` : User registered for an account. It has a single string property, `category`. ### Authentication Your project includes these predefined authentication events: Logged in — `logged_in` : User logged into their account. Logged out — `logged_out` : User logged out of their account. The following table describes properties for authentication events: | Property | Type | |-----------|--------| | `user_id` | String | | `type` | String | ### Shopping Your project includes these predefined shopping events: Browsed — `browsed` : User browsed a product. Starred product — `starred_product` : User starred or favorited a product. Shared product — `shared_product` : User shared a product. Added to cart — `added_to_cart` : User added a product to their shopping cart. Purchased — `purchased` : User completed a purchase. The following table describes properties for shopping events: | Property | Type | |---------------|---------| | `category` | String | | `id` | String | | `description` | String | | `brand` | String | | `new_item` | Boolean | ### Wishlist Your project includes these predefined wishlist events: Added to wishlist — `add_to_wishlist` : User added a product to their wishlist. Removed from wishlist — `remove_from_wishlist` : User removed a product from their wishlist. The following table describes properties for wishlist events: | Property | Type | |-----------------|---------| | `wishlist_id` | String | | `wishlist_name` | String | | `category` | String | | `id` | String | | `description` | String | | `brand` | String | | `new_item` | Boolean | ### Content Your project includes these predefined content events: Browsed content — `browsed_content` : User browsed content. Consumed content — `consumed_content` : User consumed content, such as read an article or watched a video. Starred content — `starred_content` : User starred or favorited content. Shared content — `shared_content` : User shared content. The following table describes properties for content events: | Property | Type | |------------------|--------| | `category` | String | | `id` | String | | `description` | String | | `type` | String | | `author` | String | | `feature` | String | | `published_date` | Date | ### Search Your project includes this predefined search event: Search — `search` : User performed a search. The following table describes properties for the search event: | Property | Type | |-----------------|--------| | `type` | String | | `query` | String | | `category` | String | | `id` | String | | `total_results` | Number | # Attributes Reference > Get the Name, ID, and type for each Attribute. Values or value examples and supported channels are also provided for default and NPS survey Attributes. See also the [Attributes user guide](https://www.airship.com/docs/guides/audience/attributes/). ## Default Attributes Airship default Attributes. | Name | ID | Type | Channels | Example | | ---- | -- | ---- | -------- | ------- | | Browser Name | `ua_browser_name` | Text | Web | `chrome`, `firefox` | | Browser Type | `ua_browser_type` | Text | Web | `mobile` or `desktop` | | Browser Version | `ua_browser_version` | Text | Web | `chrome-77`, `firefox-69` | | Carrier1 | `ua_carrier` | Text | App | `Verizon`, `AT\u0026T`, `Free`, `Google Fi` | | Device Model | `ua_device_model` | Text | App | `Pixel 3a`, `iPhone8,1` | | Device OS | `ua_device_os` | Text | App | `13.1.2`, `10` | | Email Domain | `ua_email_domain` | Text | Email | `example.com` | | iOS/Android App Version | `ua_app_version` | Text | App | `1051.c3eca0`, `957` | | Language | `ua_language` | Text | App, Web | `en` | | Language Country | `ua_country` | Text | App, Web | Two-letter ISO country code like `DE`, or `Unknown` | | Local Time Zone | `ua_local_tz` | Text | App, Web | `Africa/Abidjan` | | Location Settings | `ua_location_settings` | Text | App | `true`/`false` value indicating if location services are enabled | | Named User ID | `ua_named_user_id` | Text | App, Web, Email, SMS | `a.user` or `abd3c488-52c8-4fb7-942b-10ffSAMPLEb5` | | NDC | `ua_ndc` | Text | SMS | The 2- or 3-digit _national destination code_, commonly known in the US as the _area code_, e.g., `503`. This Attribute is country-specific and is only populated if the [MSISDN](https://www.airship.com/docs/reference/glossary/#msisdn) has a discernible code. | | RCS Enabled | `ua_rcs_enabled` | Text | SMS | `true` if messages can be upgraded to RCS, or unset if unknown | | SDK Version | `ua_sdk_version` | Text | App, Web | `12.0.0-beta3` (Point version) | | Subdivision | `ua_subdivision` | Text | SMS | The ISO 3166 country and subdivision for the channel — state, province, etc e.g., `US-OR`. | 1. This Attribute will not be available as of SDK 20 for both iOS and Android and will be removed on October 8, 2025. ## Predefined Attributes Airship predefined Attributes. | Name | ID | Type | | --- | --- | --- | | Title | `title` | Text | | First Name | `first_name` | Text | | Last Name | `last_name` | Text | | Full Name | `full_name` | Text | | Gender | `gender` | Text | | Zipcode | `zipcode` | Number | | City | `city` | Text | | Region 1 | `region` | Text | | Country | `country` | Text | | Birthdate | `birthdate` | Date | | Age | `age` | Number | | Mobile Phone Number | `mobile_phone` | Number | | Home Phone Number | `home_phone` | Number | | Work Phone Number | `work_phone` | Number | | Loyalty Tier | `loyalty_tier` | Text | | Company | `company` | Text | | Username | `username` | Text | | Account Creation | `account_creation` | Date | | Email Address | `email` | Text | | Altitude| `altitude` | Number | | Latitude | `latitude` | Number | | Longitude | `longitude` | Number | | Advertising ID (IDFA) | `advertising_id` | Text | 1. State or province. ## NPS survey Attributes Airship NPS survey Attributes. | Name | ID | Type | Channels | Value | | --- | --- | --- | --- | --- | | [NPS Score](https://www.airship.com/docs/reference/glossary/#nps_score) | `ua_nps_score` | Number | App | A number 0-10 | | [NPS Category](https://www.airship.com/docs/reference/glossary/#nps_category) | `ua_nps_category` | Text | App | One of three categories: `detractor`, `passive`, or `promoter`. | # Apple Privacy Manifest > Declare to Apple the data collected by your app or by third-party SDKs. Apple's privacy manifest is a file type that outlines the privacy practices of an app or its third-party SDKs. In the manifest, you declare the types of data you collect, using specific categories they provide, and the purpose for collecting the data. See Apple's developer documentation detail about its purpose, data collection categories, and more: * [Privacy manifest files](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files) * [Describing data use in privacy manifests](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests) * [Describing use of required reason API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) --- All privacy manifests in an app and its third-party SDKs automatically roll up into a single **privacy report**. The report provides a full list of the required reason APIs, and it can be used to help developers create more accurate [Privacy Nutrition Labels](https://www.apple.com/privacy/labels/) and protect end users from being tracked through fingerprinting. Apple provides steps for [creating your app's privacy report](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4239187). --- The remainder of this document describes Airship's privacy manifest and data collection information as related to Apple's privacy manifest. Airship's SDKs are configurable by you, both in the data we collect on your behalf and how you use that data. Airship's privacy manifest describes what Airship's SDK collects and the settings at default. However, you should identify all possible data collections and uses based on your configuration of the Airship SDK, even if not outlined here or even if certain data will be collected and used only in limited situations. Your answers should follow the [Apple App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) and any applicable laws. You are solely responsible for keeping your responses accurate and up to date. If your practices change, you must update your responses in your Privacy Nutrition Label as needed. ## Airship privacy manifest Airship includes its own privacy manifest in SDK 17.3.0 and above. For apps using an SDK version older than 17.3.0, refer to the [required reason API usage by Airship](#required-reason-api-usage) defined below when creating an Apple privacy manifest. ### Tracking Airship does not track any data that is protected by the [App Tracking Transparency framework](https://developer.apple.com/documentation/apptrackingtransparency). Therefore, tracking is set to `false` and the tracking domains are empty in Airship's privacy manifest. ### Required reason API usage Apple provides a list of [required reason APIs](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) that could potentially be abused for fingerprinting a user. Usage of these APIs alone does not indicate that the app or third-party SDK is being abused to track users, but the APIs must be listed in the manifest with a valid reason of usage. The Airship SDK uses two APIs that must be declared in the manifest: | API type | Reason | Notes | |---------------------------------------------|:--------:|----------------------------------------------------------------------------------------------------------------------| | `NSPrivacyAccessedAPICategoryFileTimestamp` | `C617.1` | Airship uses the `creationDate` API to determine App install date for In-App and Feature Flag audience segmentation. | | `NSPrivacyAccessedAPICategoryUserDefaults` | `CA92.1` | Airship uses user defaults to persist some SDK settings, such as push enabled and tags. | Customers must audit their app's API usage to see if any of the restricted APIs are being used. If so, the app must create its own privacy manifest that declares the APIs and the reasons for using them. ### Collected data Airship's privacy manifest only defines data categories that Airship collects by default. Customers must review their own implementation and verify what data they are collecting with tags, attributes, and events, as well as how they use this data outside of Airship. Examples: - Fitness apps may collect data about users' workouts or fitness goals that must be declared under the Health and Fitness category. - Retail apps may collect data about purchase behavior that much be declared under the Purchases category. - Quick-service restaurant apps may collect location data in order to locate users for curbside pickup, which must be declared under the Location category. --- Data collected by Airship is not linked to and does not track particular users by default. However, it's possible to configure Airship to do so by associating a [Channel](https://www.airship.com/docs/reference/glossary/#channel_dev) to a [Named User](https://www.airship.com/docs/reference/glossary/#named_user). If an application uses the named user feature to link a particular user to a channel, then the app must declare that in its own Privacy Nutrition Labels. Default Airship collected data categories: | Data type | Purpose | Notes | |-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | User ID | | Airship generates a [Channel ID](https://www.airship.com/docs/reference/glossary/#channel_id), Anonymous [Contact](https://www.airship.com/docs/reference/glossary/#contact) ID, and a Message Center user ID. These IDs are not associated with individuals by default. | | Product interaction | | Airship collects foreground, background, and interaction events for Airship features. | | Other data types | | Airship collects additional data, such as device model, versions (e.g., SDK and OS), and carrier, that can be used for analytics, segmentation, and personalization. | For more details on controlling what data Airship collects, see the [SDK Data Collection](https://www.airship.com/docs/reference/data-collection/sdk-data-collection/). # Google Play Data Safety > This reference provides information for Google Play's Data safety section. Use this table to help fill out the [Google Play data safety section](https://support.google.com/googleplay/android-developer/answer/10787469) in Play console. The Airship SDK can be configured to not require any data (all features disabled), but some data maybe be required based on the app's usage of the SDK. | Data Category | Details | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Location | If location module is used, lat/longs will be requested on behalf of the application but Airship does not upload or store the location lat/longs. | | Personal Info | Only collected if the app uses the Airship SDK to gather such data. (e.g., first name with attributes) | | Financial Info | Only collected if the app uses the Airship SDK to gather such data. (e.g., purchase history with custom events) | | Health and Fitness | Only collected if the app uses the Airship SDK to gather such data. (e.g., favorite type of workout with attributes) | | Messages | User messages are collected only if Chat module is enabled. | | Photos or videos | Airship does not collect photos or video files from users. | | Audio files | Airship does not collect audio or music files from users. | | Files and docs | Airship does not collect files or docs from users. | | Calendar | Airship does not collect calendar events or information from users. | | Contacts | Airship does not collect contacts from users. | | App activity | Some app activity data is collected if analytics is enabled, including analytic lifecycle events (e.g., app foreground and background), message center message status, notification opt-in status, in-app automation events, and push responses (e.g., buttons, quick reply).

Other app activity data may be collected, such as custom events and screen views, if the app uses the Airship SDK to gather such data. | | Web browsing | Airship does not collect browsing history from users | | App info and performance | Airship does not collect crash logs or diagnostics. | | Device or other IDs | Airship creates a device-level ID called a channel ID for functionality and analytics purposes. It is not linked to a user's identity.

If using push notifications, push token is collected.

If using Contacts, Airship creates a Contact ID that is linked to the channel ID. It can be tied to the user's identity if configured by the app. Otherwise, it is anonymous.

If using Message Center, Airship generates Message Center user credentials.

Other identifiers may be collected, such as Advertising ID, if the app uses the Airship SDK to gather such data. | For more details on controlling what data Airship collects, see the [SDK Data Collection](https://www.airship.com/docs/reference/data-collection/sdk-data-collection/).