Cloud API
BigQuery Events
Overview
Events reported by the Rover SDK are stored in a Google BigQuery database. Each event type is stored in its own table.
As a Rover customer, you have access to your private dataset containing all the events generated from your app. This documentation lists the events captured by the Rover SDK out of the box and provides a detailed description of the schema for each event.
Device Shared Fields
All of the event tables share the following fields, which include details about the device associated with the event:
Column | Type | Description |
---|---|---|
device.appBuild | String | The app's build number (both iOS and Android require a unque and naturally ordered build number). |
device.appIdentifier | String | The bundle ID (iOS) or application ID (Android). E.g. "com.example.MyApp". |
device.appVersion | String | The app's version number (version "name" on Android). |
device.carrierName | String | Human-readable name of the User's mobile network carrier. E.g. "T-Mobile". |
device.deviceManufacturer | String | The manufacturer of the device. E.g. "Samsung". |
device.deviceModel | String | The device model name, the well-known marketing name if possible. E.g. "iPhone 6 Plus". |
device.deviceIdentifier | String | A unique device identifier. On iOS this is the value returned from UIDevice.identifierForVendor. On Android this is a UUID generated by the Rover SDK. |
device.deviceName | String | The user set device name. Uses bluetooth name on Android. |
device.isCellularEnabled | Boolean | Whether or not the cellular radio is enabled. |
device.isLocationServicesEnabled | Boolean | Whether or not location is enabled on the device. |
device.isWifiEnabled | Boolean | Whether or not WiFi is enabled on the device. |
device.locationAuthorization | String | Whether or not the user has granted location permissions to the app. One of [authorizedAlways , authorizedWhenInUse , denied , notDetermined , restricted ]. Currently only tracked on iOS. |
device.localeLanguage | String | The currently set device language in ISO 639 Alpha-2. |
device.localeRegion | String | The currently set region in BCP-47 format (ie., en-US ). |
device.localeScript | String | The script of the writing system, given as a ISO 15924 Alpha-4 code. |
device.notificationAuthorization | String | Whether or not the user has authorized notifications One of [authorized , denied ]. |
device.operatingSystemName | String | The name of the device's OS itself, such as "iOS" or "Android". |
device.operatingSystemVersion | String | The version number of the device's OS. |
device.buildEnvironment | String | One of [production , development ]. Currently only tracked on iOS. |
device.pushToken.value | String | The token used by APNs or FCM/GCM to send notifications to the device. |
device.pushToken.timestamp | Timestamp | The time that the push token was updated. |
device.radio | String | The mode by which the device's radio/baseband is currently connected to the carrier. E.g. "LTE". |
device.screenWidth | Integer | The width of the display, in device independent pixels. "Points" on iOS, and "dp" on Android. |
device.screenHeight | Integer | The height of the display, in device independent pixels. "Points" on iOS, and "dp" on Android. |
device.sdkVersion | String | The version of the Rover SDK included in the app the device has installed. E.g. 2.2.3 |
device.timeZone | String | The time zone the device is currently present in. In tz database name format. E.g. "America/Toronto". |
device.isBluetoothEnabled | Boolean | Whether or not bluetooth is enabled on the device. |
device.isTestDevice | Boolean | Whether or not the app has had Rover switched into Test Device mode, which allows it to be used to test Campaigns with in the Rover app. |
device.location | Object | Geographic information about the current location of the device. |
device.location.coordinate | [Double] | A tuple of latitude and longitude, as a BigQuery REPEATED array. |
device.location.altitude | Double | Displacement from sea level in meters. |
device.location.verticalAccuracy | Double | The margin of error for the altitude, in meters. |
device.location.horizontalAccuracy | Double | The margin of error for the latitude/longitude coordinates, in meters. |
device.location.timestamp | Timestamp | The moment in time the location update was captured. |
device.location.address | Object | The 'geocoded' address. The Rover SDK uses the mobile platform built-in location services (in iOS and Android) to perform a geocoding lookup to determine the street address. |
device.location.address.street | String | Street address, with number as applicable. |
device.location.address.city | String | The city. |
device.location.address.state | String | The province or state. |
device.location.address.postalCode | String | Postal or ZIP code (or similar postal system code addressing system used in the given country) |
device.location.address.country | String | GCountry name. |
device.location.address.isoCountryCode | String | ISO 3166 Alpha-2 code for the country. |
device.location.address.subAdministrativeArea | String | Typically a borough of a city. |
device.location.address.subLocality | String | Typically the neighborhood of a city. |
device.userInfo | Object | App developer defined custom information, as a hash/dictionary with whatever custom fields have been set. |
device.advertisingIdentifier | String | An Advertising Identifier unique to app installation, from either Apple AdSupport or Google AdMob. Your developers have to enable the Rover advertising support module for this field to be present. |
Experience Events
All of the following events have these fields in common:
Column | Type | Description |
---|---|---|
attributes.experience.id | String | The unique identifier for this experience. |
attributes.experience.tags | [String] | Tags set on the Experience in the Experiences authoring app as a BigQuery REPEATED array. |
attributes.experience.keys | Object | Custom key value pairs set in the Experiences authoring app. |
attributes.experience.name | String | The experience's name, set in the Experiences authoring app. |
attributes.experience.campaignID | String | The associated campaign that was the context for the interaction with this experience. |
Experience Presented
The Experience Presented event is triggered when the app displays a given experience to the user (perhaps opened from a notification or custom logic in the app).
Experience Presented events are stored in BigQuery in the v2_rover_experience_presented
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
Experience Viewed
The Experience Viewed event is triggered when the app displays a given experience to the user (perhaps opened from a notification or custom logic in the app) and then the user leaves the experience.
Experience Viewed events are stored in BigQuery in the v2_rover_experience_viewed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.duration | Integer | Duration of the session in seconds. |
Experience Dismissed
The Experience Dismissed event is triggered when the user leaves a presented experience.
Experience Dismissed events are stored in BigQuery in the v2_rover_experience_dismissed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
Screen Presented
The Screen Presented event is triggered when the app displays a given screen within an experience to the user.
Screen Presented events are stored in BigQuery in the v2_rover_screen_presented
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.screen.id | String | Unique identifier for this screen. |
attributes.screen.tags | [String] | Tags set on the Screen in the Experiences authoring app as a BigQuery REPEATED array. |
attributes.screen.keys | Object | Custom key value pairs set on the Screen in the Experiences authoring app. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Screen Viewed
The Screen Viewed event is triggered when the app displays a given screen within a experience to the user (perhaps opened from a notification or custom logic in the app) and then the user moves on from that screen.
Screen Viewed events are stored in BigQuery in the v2_rover_screen_viewed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.duration | Integer | Duration of the session in seconds. |
attributes.screen.id | String | Unique identifier for this screen. |
attributes.screen.tags | [String] | Tags set on the Screen in the Experiences authoring app as a BigQuery REPEATED array. |
attributes.screen.keys | Object | Custom key value pairs set on the Screen in the Experiences authoring app. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Screen Dismissed
The Screen Dismissed event is triggered when the user moves on from a screen in a presented experience.
Screen Dismissed events are stored in BigQuery in the v2_rover_screen_dismissed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.screen.id | String | Unique identifier for this screen. |
attributes.screen.tags | [String] | Tags set on the Screen in the Experiences authoring app as a BigQuery REPEATED array. |
attributes.screen.keys | Object | Custom key value pairs set on the Screen in the Experiences authoring app. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Block Tapped
The Block Tapped event is triggered when the user taps a given block within an experience.
Block Tapped events are stored in BigQuery in the v2_rover_block_tapped
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.duration | Integer | Duration of the session in seconds. |
attributes.block.id | String | Unique identifier for this block. |
attributes.block.tapBehavior | Object | Describes the action the app performed when the user tapped the block. |
attributes.block.tapBehavior.type | String | The type of performed action. One of [none , goToScreen , openURL , presentWebsite ]. |
attributes.block.tapBehavior.screenID | String | If type was goToScreen , then specifies the ID of the Screen in the same experience to navigate to. |
attributes.block.tapBehavior.url | Object | If type was openURL or presentWebsite , is the URI/URL of item to open or present within the app, respectively. |
attributes.block.tags | [String] | Tags set on the Block as a BigQuery REPEATED array. |
attributes.block.keys | Object | Custom key value pairs set on the Block in the Experiences authoring app. |
attributes.block.name | String | The block's name, set in the Experiences authoring app. |
attributes.screen.id | String | Unique identifier for this screen. |
attributes.screen.tags | [String] | Tags set on the Screen in the Experiences authoring app as a BigQuery REPEATED array. |
attributes.screen.keys | Object | Custom key value pairs set on the Screen in the Experiences authoring app. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
General Events
App Opened
The App Opened event is triggered when a user enters the app.
App Opened events are stored in BigQuery in the v2_rover_app_opened
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
App Viewed
The App Viewed event is triggered when a user enters and leaves the app, constituting a discrete session.
App Viewed events are stored in BigQuery in the v2_rover_app_viewed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.duration | Integer | Duration of the session in seconds. |
App Closed
The App Closed event is triggered when a user leaves the app.
App Closed events are stored in BigQuery in the v2_rover_app_closed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
App Installed
The App Installed event is triggered when a user opens an app for the first time (or after the first update has gone out in which the Rover SDK has been newly installed).
App Installed events are stored in BigQuery in the v2_rover_app_installed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
App Updated
The App Updated event is triggered when a user opens the app after it has received an update.
App Updated events are stored in BigQuery in the v2_rover_app_updated
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.previousVersion | String | The version number of the previously installed version of the app (equivalent to device.appVersion ). |
attributes.previousBuild | Integer | The build number of the previously installed version of the app (equivalent to devoce.appBuild ). |
Notifications
Notification Center Presented
The Notification Center Presented event is triggered when a user enters the app's Rover-powered notification center.
Notification Center Presented events are stored in BigQuery in the v2_rover_notification_center_presented
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
Notification Center Viewed
The Notification Center Viewed event is triggered when a user enters the app's Rover-powered notification center and then moves on.
Notification Center Viewed events are stored in BigQuery in the v2_rover_notification_center_viewed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.duration | Integer | Duration of the session in seconds. |
Notification Center Dismissed
The Notification Center Dismissed event is triggered when a user moves on from app's Rover-powered notification center.
Notification Center Dismissed events are stored in BigQuery in the v2_rover_notification_center_dismissed
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
Notification Opened
The Notification Opened event is triggered when a user opens a notification, or, in the case of an influenced open, when they open the app.
An influenced open is tracked if a user opens the app directly within 2 minutes of receiving a notification. In this case Rover considers the action taken by the user was influenced by receiving the push notification.
Notification Opened events are stored in BigQuery in the v2_rover_notification_opened
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.source | String | The context the user opened the notification from. One of [notificationCenter , pushNotification , influencedOpen ]. |
attributes.notification.id | String | Unique identifier for the notification. Unique to each user's device. |
attributes.notification.campaignID | String | The Rover campaign that dispatched this notification. |
Notification Marked Deleted
The Notification Marked Deleted event is triggered when a user removes a notification from the notification center.
Notification Marked Deleted events are stored in BigQuery in the v2_rover_notification_marked_deleted
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.notification.id | String | Unique identifier for the notification. Unique to each user's device. |
attributes.notification.campaignID | String | The Rover campaign that dispatched this notification. |
Notification Marked Read
The Notification Marked Read event is triggered when a user has opened a notification for the first time.
Notification Marked Read events are stored in BigQuery in the v2_rover_notification_marked_read
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.notification.id | String | Unique identifier for the notification. Unique to each user's device. |
attributes.notification.campaignID | String | The Rover campaign that dispatched this notification. |
Location Events
Geofence Entered
The Geofence Entered event is triggered when a user's device enters range of a geofence defined within the Rover Proximity app.
Geofence Entered events are stored in BigQuery in the v2_rover_geofence_entered
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.geofence.id | String | The unique identifier for the geofence. |
attributes.geofence.center | [Double] | A tuple of latitude and longitude that describes the exact center of the geofence, as a BigQuery REPEATED array. |
attributes.geofence.radius | Double | The radius of the geofence in meters. |
attributes.geofence.name | name | The geofence's human readable name, set in the Rover proximity app. |
attributes.geofence.tags | [String] | Tags set on the Geofence as a BigQuery REPEATED array. |
Geofence Exited
The Geofence Entered event is triggered when a user's device enters range of a geofence defined within the Rover Proximity app.
Geofence Entered events are stored in BigQuery in the v2_rover_geofence_entered
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.geofence.id | String | The unique identifier for the geofence. |
attributes.geofence.center | [Double] | A tuple of latitude and longitude that describes the exact center of the geofence, as a BigQuery REPEATED array. |
attributes.geofence.radius | Double | The radius of the geofence in meters. |
attributes.geofence.name | name | The geofence's human readable name, set in the Rover proximity app. |
attributes.geofence.tags | [String] | Tags set on the Geofence as a BigQuery REPEATED array. |
Beacon Entered
The Beacon Entered event is triggered when a user's device enters range of a Bluetooth Low Energy Beacon registered with the Rover Proximity app. Currently only beacons that speak the iBeacon protocol are supported.
Beacon Entered events are stored in BigQuery in the v2_rover_beacon_entered
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.beacon.id | String | Rover's unique identifier for the given beacon registered in the Rover proximity app. |
attributes.beacon.name | String | A human-readable name assigned to beacon. |
attributes.beacon.uuid | String | The UUID emitted by the beacon, as per the iBeacon format. |
attributes.beacon.major | String | The major emitted by the beacon, as per the iBeacon format. |
attributes.beacon.minor | String | The minor emitted by the beacon, as per the iBeacon format. |
attributes.beacon.tags | [String] | Tags set on the Beacon as a BigQuery REPEATED array. |
Beacon Exited
The Beacon Exited event is triggered when a user's device leaves range of a Bluetooth Low Energy Beacon registered with the Rover Proximity app. Currently only beacons that speak the iBeacon protocol are supported.
Beacon Exited events are stored in BigQuery in the v2_rover_beacon_exited
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.beacon.id | String | Rover's unique identifier for the given beacon registered in the Rover proximity app. |
attributes.beacon.name | String | A human-readable name assigned to beacon. |
attributes.beacon.uuid | String | The UUID emitted by the beacon, as per the iBeacon format. |
attributes.beacon.major | String | The major emitted by the beacon, as per the iBeacon format. |
attributes.beacon.minor | String | The minor emitted by the beacon, as per the iBeacon format. |
attributes.beacon.tags | [String] | Tags set on the Beacon as a BigQuery REPEATED array. |
Location Updated
The Location Updated event is triggered when a user's device has changed location. It is emitted only when the minimum displacement has been about 500 meters.
Location Updated events are stored in BigQuery in the v2_rover_location_updated
table. The following is a detailed description of each column in the table.
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
Where's the location?
Remember, the location is to be found in device shared fields detailed at the beginning of this document.