What data is captured by the SDK?

This page describes what information is collected by the SDK, what it's used for and what control the user and developer has over the process. It's important to note no personally identifiable (PI) information is ever captured by the SDK.

Attributes collected

To enable accurate segmentation and to understand the make up of your user base, a number of metrics about the device the SDK has been installed on are captured. These are:

Location

  • Latitude / Longitude - Controlled by user permissions. Can be completely disabled in the SDK.
  • City - Only collected if location permissions are enabled.
  • Country - Always collected.
  • Timezone - Always collected.

NB - City and Country are also available for segmentation via reverse IP lookup if location permissions are disabled, though these will be less accurate.

Device attributes

  • Manufacturer - Always collected.
  • Model - Always collected.
  • Screen size (width and height in pixels) - Always collected.
  • Operating system - Always collected.
  • Operating system version - Always collected.
  • Radio type (WiFi/Cellular) - Always collected.
  • Device identifier - Always collected. This is from UIDevice.current.identifierForVendor on iOS, Settings.Secure.ANDROID_ID on Android.

User attributes

  • Device language - Always collected.
  • Notification permissions enabled - Always collected.
  • Location permissions enabled - Always collected.

App attributes

  • SDK version - Always collected.
  • App version - Always collected.

When data is collected

There are three primary times of data collection:

Device registration
This is triggered the first time a device is seen to register with our API. All attributes above are captured at this point in time.

Sessions
A session is recorded each time the app opens and closes.
Attributes captured are :

  • All location attributes
  • All user attributes
  • Operating system
  • Radio type
  • Device identifier

Events
Events can be triggered either by creating a custom defined events in code, or when a notification related event take place.
Attributes captured are :

  • All location attributes
  • All user attributes
  • Operating system
  • Radio type
  • Device identifier

Events that are captured

In addition to the above attributes, certain actions in an app or notification can trigger a data collection activity.

Notification events
When a notification is generated for delivery, the runs through the following stages. At each stage the status of the notification is updated and certain attributes are collected.

  • Pending - Notification has left the Pushologies infrastructure and is awaiting delivery to the device. Applicable to all notifications.
  • Received - Notification has been received on the target device. Applicable to all notifications and triggers a collection as described above.
  • Downloaded - The SDK has downloaded the requested content and a notification has been displayed to the user. Applicable only to content related notifications and triggers a collection as described above.
  • Download failed - The SDK failed to download the requested content. The notification without the content will be displayed. Applicable only to content related notifications and triggers a collection as described above.
  • Opened - Notification has been opened by the user on the target device. Applicable only to content notifications and triggers a collection as described above.
  • Viewed - The content has been completely viewed, or the notification has no content and has been opened. Applicable to all notifications and triggers a collection as described above.
  • Link opened - An interactive link has been tapped. Applicable to all notifications and triggers a collection as described above. This event also includes the URL of the link tapped.