Pendo Mobile SDK Data Collection

Last Updated:

Overview

Understand which type of data Pendo collects about your end-users.

Data Storage Locations

Event data collected by the SDK is sent to the Pendo’s backend and is stored and processed in Google Cloud Platform (GCP). By default, Pendo subscriptions are hosted in a US-based GCP region. Alternatively, customers can request that a Pendo subscription be hosted in EU-based GCP regions. There is no information transfer between the US and EU regions.

Data Segregation

The following approaches are used to segregate customer data:

  • For Google Cloud Storage (object storage), customer-specific buckets are used.
  • For Google Datastore (data lake), customer-specific namespaces are used.
  • For Google BigQuery (data warehouse), customer-specific datasets are used.

Automated Data Collection

The following table summarizes the type of data that the Pendo SDK collects:

Data

Details

Auto-generated App ID on device

A unique string which identifies the user’s device and your app to Pendo. If you have additional applications on your device using Pendo, they will each get a different Device ID, such that they cannot be tracked back to the same device.

Visitor ID

At the minimum, Pendo requires a Visitor ID. In order to function properly, Pendo needs an id for each visitor who logs into your application.  Each customer chooses what they will use for their visitor IDs. Customers can send an anonymized ID that can’t be tracked back to a user. Customers can also just send the string ANONYMOUS, which will result in Pendo creating an anonymized ID for them, which is unique for each app on each device.

Generic Usage Analytics

The following information is sent automatically:

  • Session start time
  • Session end time
  • Session duration (how much time a user spent in the app)
  • Application in foreground
  • Application in background 

Device Data

The following information is sent automatically:

  • Device OS (e.g. iOS, Android)
  • Device OS version (e.g. iOS 13)
  • Device Model (e.g. iPhone XS)
  • Device Manufacturer (e.g. Samsung)
  • Device Locale / Default Display Language
  • Device Height & Width (in device-independent pixels)
  • App Version
  • Screen (e.g. 5.3")
  • Device Type (e.g. Phone, Tablet)

Screen Events

Events for Screens the user visited in the application (ScreenView and ScreenLeft). Screen view events are sent regardless of tagging. Screen’s data include:

  • Screen’s structural elements
  • An optional hash of screen texts 

It is possible to globally disable sending screen text labels & screen’s title text.

Button Clicks

Buttons the user clicked in the application. Button click events are sent regardless of tagging. A button’s data includes:

  • Structural details for each Element
  • An optional element text and it's accessibility text label

It is possible to turn off sending button text & accessibility labels.

Guide Analytics

Analytics related to any in-application guides you have built, for example:

“Guide ID”

"guide viewed"/

“guide dismissed”/

“Guide button clicked”/

“Poll submitted”/

“Poll response: 5”

 

Optional Data Collection

Our customers have many configuration options, and each customer configures their instance of Pendo slightly differently.  The following are OPTIONAL categories of data that you could direct us to collect:

Data

Details

User Metadata

Metadata about users that you may or may not associate with their Visitor ID. This data comes in the form of Key, Value pairs.

Account ID

Optional parameter that can be sent from the app to identify a logical user group or an internal account ID

Account Metadata

Metadata about users’ accounts that you may or may not associate with their Account ID. This data comes in the form of Key, Value pairs.

Code Events (Track Events)

Code events can be sent by the hosting application. A code event includes a string-based event name, and a set of key-value pairs for event properties. For example:

Event name: "could not connect to server"

Parameter name: error ID

Parameter value: 404