Engine Data Collection

The Factual Engine SDK collects a variety of data points to enable developers to easily incorporate location data and intelligence into mobile products to better understand users, build personalized interactions and increase user engagement. Developers have the option to keep all data on device* or to share collected data with Factual. If you choose to share data with Factual, please review carefully our Privacy Policy.

Factual proactively created policies and practices to use data responsibly and to protect personal information and location data. Please find below a breakdown of the information collected by Factual Engine’s iOS and Android SDKs.

*at the exception of the required configuration data see details below.

Engine Android SDK

Data exchange between Engine and the Factual backend
Configuration
Data sent to the Factual backend. Required calls to enable the Engine SDK. Call is made once per 24 hour or on SDK restart.

Name Description
API Key Factual API Key
Engine SDK Version Engine SDK Version #
Garage Release ID Unique configuration ID for event management

Factual Places Data Request
Periodic calls to request updated tiles to cache places data on device.

Name Description
Tile Version Factual Places data set ID
Engine SDK Version Engine SDK Version #
Tile Area ID Level 7 Geohash


Data processed on device by Engine

Data are kept by default on the device for 6 months. Deleting the app will delete all data from the device.
Generic Information

Name Description
Engine SDK Status Stopped, started
Factual User ID Factual user unique identifier
App Name App bundle
Organization ID An organization might have many app ids
Device ID Device unique identifier (either GAID or generated GUID)
Advertiser ID Google advertiser id
Make Device manufacturer
Model Device Model
OS Device operating system
OS Version Device operating system version
Preferred Language Device current language using ISO-639-1
Carrier Carrier name
Carrier Country Carrier Country (2 letters ISO code)
App State Foreground, Background, Unknown
Connection Type Network connection type


Location Data Information

Name Description
Entry Timestamp Timestamp in milliseconds of when the entry was added
Entry Type Location or on demand location
Sensor Timestamp When the event occured
Request Timestamp When the location request was made
Received Timestamp When the OS reported the event to Engine
Dwell Time Dwell time spent by a device at the associated location
Location Data Type Source of location data. Refer to List 5.20 of the OpenRTB 2.5 spec
Latitude Latitude of device as reported by OS
Longitude Longitude of device as reported by OS
Horizontal Accuracy Horizontal accuracy in meters as reported by the OS
Speed Speed in meters per second as reported by the OS
Activity Activity as reported by the OS (Stationary, Walking)
Bearing Direction as reported by the OS (North, South…)
Altitude Altitude in meters as reported by the OS
Altitude Accuracy Altitude accuracy in meters as reported by the OS
Floor Level Floor of the building on which the device is located, as reported by the OS
Circumstance ID Identifier of circumstance met (user was at location X)
Action ID Action associated when a circumstance is met (trigger a push notification, in app messaging…)


Permission Required

Permission Name Description
uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” Enables most accurate location
uses-permission android:name=”android.permission.INTERNET” Enables Factual to send data to the cloud
uses-feature android:name=”android.hardware.location.gps” Enables GPS access
uses-feature android:name=”android.hardware.location.network” Enables location updates via WiFi and Cellular Networks


Compatibility
Android API level support: 20
Google Play Version: 11.0.4

Engine iOS SDK

Data exchange between Engine and the Factual backend
Configuration
Data sent to the Factual backend. Required calls to enable the Engine SDK. Call is made once per 24 hour or on SDK restart.

Name Description
API Key Factual API Key
Engine SDK Version Engine SDK Version #
Garage Release ID Unique configuration ID for event management

Factual Places Data Request
Periodic calls to request updated tiles to cache places data on device.

Name Description
Tile Version Factual Places data set ID
Engine SDK Version Engine SDK Version #
Tile Area ID Level 7 Geohash


Data processed on device by Engine

Data are kept by default on the device for 6 months. Deleting the app will delete all data from the device.
Generic Information

Name Description
Engine SDK Status Stopped, started
Factual User ID Factual user unique identifier
App Name App bundle
Organization ID An organization might have many app ids
Device ID Device unique identifier (either IDFA or generated GUID)
Advertiser ID Apple advertiser id
Make Device manufacturer
Model Device Model
OS Device operating system
OS Version Device operating system version
Preferred Language Device current language using ISO-639-1
Carrier Carrier name
Carrier Country Carrier Country (2 letters ISO code)
App State Foreground, Background, Unknown
Connection Type Network connection type


Location Data Information

Name Description
Entry Timestamp Timestamp in milliseconds of when the entry was added
Entry Type Location or on demand location
Sensor Timestamp When the event occured
Request Timestamp When the location request was made
Received Timestamp When the OS reported the event to Engine
Dwell Time Dwell time spent by a device at the associated location
Location Data Type Source of location data. Refer to List 5.20 of the OpenRTB 2.5 spec
Latitude Latitude of device as reported by OS
Longitude Longitude of device as reported by OS
Horizontal Accuracy Horizontal accuracy in meters as reported by the OS
Speed Speed in meters per second as reported by the OS
Activity Activity as reported by the OS (Stationary, Walking)
Bearing Direction as reported by the OS (North, South…)
Altitude Altitude in meters as reported by the OS
Altitude Accuracy Altitude accuracy in meters as reported by the OS
Floor Level Floor of the building on which the device is located, as reported by the OS
Circumstance ID Identifier of circumstance met (user was at location X)
Action ID Action associated when a circumstance is met (trigger a push notification, in app messaging…)


Permission Required

Permission Name Description
Location “When in Use” or “Always” The user permits location for the app

App Plist Declaration

Key Description
NSLocationWhenInUseUsageDescription Message displayed to users on location permission request
NSLocationAlwaysAndWhenInUseUsageDescription Message displayed to users on location permission request
UIBackgroundModes location Location updates background mode


Compatibility
iOS supported version: iOS 8 to 11.1.3