Device Insights documentation
All you need to know in order to start using Device Insights SDK
Device Insights consists of three main components - a data collection SDK (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 Device Insights 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. Device Insights SDK - can be downloaded below
3. API and Licence key - acquired upon request to deviceinsight.sdk.support [at] ebuilder.com
4. Public key for encryption - provided to eBuilder by tenant
Instructions and sample code
To implement the Device Insights SDK into a host app the following steps must be taken:
- Set dependencies in the Build Gradle
- Declare the licence key in Strings.XML
- Add the licence key to the AndroidManifest
- Initiate the SDK and set the neccessary IDs to track individual user and device
On the eBuilder GitHub page you can find all relevant instructions and sample code.
Device Insights SDK
For Android, there are 2 components available for download:
DDC-SDK - Collection SDK that is to be installed into a host-app
Scheduler - Scheduler SDK that is used if the host-app does NOT schedule collection.
If the Host-App can schedule collection, you will only need the DDC-SDK. If you the Host-App cannot schedule collection, then you need to download and use both the DDC-SDK as well as the Scheduler.
Device Insights SDK
For iOS, use the link below to download the SDK.
Xcode is Apple’s integrated development environment for mobile apps, used to build iOS apps and SDKs.
Currently the Device Insights SDK is built using Apple Xcode version v9.2. This also means that the Host-Apps that integrate with the Device Insights SDK must also be built using Xcode v9.2. This dependency is controlled by Apple’s iOS platform and it affects all iOS apps and SDKs. It is not specific to eBuilder's Device Insights SDK.
API and Licence key
An API and Licence key are necessary in order to use the Device Insights SDK.
The Licence and API Keys are 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 Device Insights SDK?
The Device Insights 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 Device Insights 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 Device Insights 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 Device Insights 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 Device Insights SDK?
The settings required for ProGuard to exclude our SDK from obfuscation are available on the Device Insights 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.