Device Insights documentation
All you need to know in order to start using Device Data Collector (DDC) SDK
Device Insights consists of three main components - the Device Data Collector (DDC) SDK, a machine learning platform and prediction reports that can be imported or integrated into CRM tools in order to drive retention and acquisition market activities.
Start by reading this
eBuilder Device Insights is a prescriptive big data analytics solution that offer unique device and user behavior insight for mobile operators and other telecom players. The DDC SDK is available for iOS and Android devices.
To get started with eBuilder Device Insights, you need to read the instructions below and download the necessary artifacts:
1. Technical instructions and Sample code - available on the eBuilder GitHub page, see below
2. DDC SDK - add as dependency to your project
3. Licence key - acquired upon request to deviceinsight.sdk.support [at] ebuilder.com
4. Public key for encryption - provided to eBuilder by tenant
A Licence key is necessary in order to use the DDC SDK.
The Licence key is available upon request by email to: deviceinsight.sdk.support [at] ebuilder.com
Data encryption and encryption keys
Data is encrypted using a standard 2048 bit RSA key. Device Insights uses a key pair - a public and a private key - to encrypt/decrypt personal data. The operator must provide eBuilder with the public key.
Only sensitive DDC-SDK Event attributes that can serve as identifiers for devices or for the persons operating the devices (such as deviceID, externalUserID or IMEI) are subject to anonymization via encryption.
- Encryption takes place in the SDK installed in the host-app on the end-users smartphone using the public key.
- While Device Insights data is processed in the eBuilder back-end, the encrypted data stays encrypted.
- The tenant (operator) can then decrypt the data using the private key.
SDK Resource Consumption - is the end-user impacted by the DDC SDK?
The DDC SDK use less than 4 seconds of low CPU, device processing time/day - from an end-user perspective, there is no impact on device and battery performance
The DDC SDK is designed to run lean in the background. Device resource use and battery life impact is minimal and will not be noticeable for end users.
The SDK can extract and upload device data when the host app is opened, based on a background scheduler (Android) or based on location updates (iOS). Normal configuration is to extract data once per hour and uploading every second hour (configurable).
Extracting device data normally takes < 0.2 seconds and processing the upload takes < 0.4 seconds (+ network latency time) of low CPU, background resource use.
With OS based throttling of background services, we typically get ~10 samples uploaded at ~5 occasions every 24 hours. This results in a total SDK processing time of < 4 seconds per day.
What are the requirements of the host-app?
The DDC SDK supports host-apps that run on:
- Android 4.4 or later
- iOS v.9 or later
How many data points are captured with the DDC SDK?
Depending on the OS-version, more than 50 unique data points are captured.
How is the data encrypted?
Encryption takes place within eBuilder’s DDC-SDK, running on the mobile device where the tenant (operator/data controller) provides the public key to use for encryption as a parameter.
All processing of Device Insights data on eBuilder’s back-end (running at AWS) use the encrypted values.
The tenant can leverage eBuilder’s back-end reporting API to either display various reports graphically or to fetch insights reports as compressed CSV files - these reports contain the encrypted values.
Decryption can be done using eBuilder’s decrypt-util, running on Tenant’s computer. Using decrypt-util requires Tenant to provide their secret, private key as a parameter.
The key set is owned and managed by Tenant and the public key is shared with eBuilder to encrypt data.
We use to minimize/obfuscate the host app, will that work with the DDC SDK?
The settings required for ProGuard to exclude our SDK from obfuscation are available on the DDC SDK GitHub page. Make sure to follow the instructions to allow ProGuard to obfuscate the host app without interfering with the SDK code.
Are there any differences between the Android and iOS SDK?
The big difference between the Android and the iOS SDK lies in the way we collect data.
Android has a time based trigger that collects data on set time intervals, normally 2x per hour (scheduling can be adjusted). iOS has an activity trigger (activating the app or on location change), so the volume of data will depend on app usage as well as location permission.
Another difference is in the amount of different data parameters that can be collected.