Data Collection

Types of data collected by the SDK.

Data collection can be disabled at the SDK level to prevent the collection of any data (with the exception of the data collection opt-in status). Disabling data collection disables all features of the SDK.

Data collected in the SDK

 Note

The data collected in the SDK is not used to track users across apps.

Any feature enabled

If any feature is enabled, the SDK will collect and send the following data:

  • Channel ID
  • Locale
  • TimeZone
  • Platform
  • Opt in state (push and notifications)
  • SDK version
  • Accengage Device ID (Accengage module for migration)

In-app automation enabled

In addition to the default data collection when any feature is enabled, In-App Automation will also collect:

  • App Version (App update triggers)

Message center enabled

In addition to the default data collection when any feature is enabled, Message Center will also collect:

  • Message Center User
  • Message Reads & Deletes

Push enabled

In addition to the default data collection when any feature is enabled, push will also collect:

  • Push tokens

Chat enabled

In addition to the default data collection when any feature is enabled, Airship Chat will also collect:

  • User messages

Analytics enabled

In addition to the default data collection when any feature is enabled, analytics will also collect:

  • Events
  • Associated Identifiers
  • Registered Notification Types
  • Time in app
  • App Version
  • Device model
  • Device manufacturer
  • OS version
  • Carrier
  • Connection type
  • Framework usage

Tags and attributes enabled

In addition to the default data collection when any feature is enabled, tags and attributes will also collect:

  • Channel and Contact Tags
  • Channel and Contact Attributes

Contacts enabled

In addition to the default data collection when any feature is enabled, contacts will also collect:

  • External ids (named user)

Location enabled

In addition to the default data collection when any feature is enabled, location will also collect:

  • Location permissions
  • Collect location for the app (Airship no longer supports uploading location as events)

All SDK features are enabled by default, but individual features can be enabled or disabled by using the Privacy Manager. The privacy manager can also be used to completely opt out of SDK functionality, or to initially run the SDK in an opted-out state. If all features are disabled the SDK will not make any network requests or collect data, and will effectively no-op. Data collection can also be enabled or disabled on a per-module basis.

 Note

The privacy manager is available in Android SDK 14.5 and above.

Configuring default enabled features

Default enabled features can be declared by extending AirshipConfigOptions or by setting the enabledFeatures flag in airshipconfig.properties. For instance, to default to just push:

airshipconfig.properties
  enabledFeatures = push
AirshipConfigOptions
AirshipConfigOptions options = AirshipConfigOptions.newBuilder()
        ...
        .setEnabledFeatures(PrivacyManager.FEATURE_PUSH)
        .build();
val options = AirshipConfigOptions.newBuilder()
        ...
        .setEnabledFeatures(PrivacyManager.FEATURE_PUSH)
        .build()

To fully disable data collection by default, just set the enabled features in your config to PrivacyManager.FEATURE_NONE:

airshipconfig.properties
  enabledFeatures = none
AirshipConfigOptions
AirshipConfigOptions options = AirshipConfigOptions.newBuilder()
        ...
        .setEnabledFeatures(PrivacyManager.FEATURE_NONE)
        .build();
val options = AirshipConfigOptions.newBuilder()
        ...
        .setEnabledFeatures(PrivacyManager.FEATURE_NONE)
        .build()

Enabling features at runtime

To enable full Airship functionality at runtime, make the following call:

Enabling all features
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_ALL);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_ALL)

To enable individual features, provide the associated option as shown below:

Enabling Push
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_PUSH);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_PUSH)
Enabling Message Center
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_MESSAGE_CENTER);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_MESSAGE_CENTER)
Enabling Analytics
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_ANALYTICS);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_ANALYTICS)
Enabling In-App Automation
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_IN_APP_AUTOMATION);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_IN_APP_AUTOMATION)
Enabling Chat
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_CHAT);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_CHAT)
Enabling Tags and Attributes
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_TAGS_AND_ATTRIBUTES);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_TAGS_AND_ATTRIBUTES)
Enabling Contacs
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_CONTACTS);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_CONTACTS)
Enabling Location
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_LOCATION);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_LOCATION)

You can also enable combinations of features by combining options. For instance, to enable both push and message center:

Enabling a subset of features
  UAirship.shared().getPrivacyManager.enable(PrivacyManager.FEATURE_PUSH, PrivacyManager.FEATURE_MESSAGE_CENTER);
  UAirship.shared().privacyManager.enable(PrivacyManager.FEATURE_PUSH, PrivacyManager.FEATURE_MESSAGE_CENTER)