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.
You can obtain access credentials to your team's BigQuery database via your account manager.
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
These are the events emitted for experiences. Note that Classic-style experiences emit separate events, documented below.
All of the following events have these fields in common:
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
attributes.experience.id | String | The unique identifier for this experience. |
attributes.experience.name | String | The experience's name, as set in the Experiences area of the Rover portal. |
attributes.screen.id | String | The unique identifier for the screen of the experience. |
attributes.screen.name | String | The screen's name, as set in the experiences authoring app. |
Additionally, if this experience event is associated with a campaign (such as if the experience was launched by a push campaign), then the following fields will also be present:
Column | Type | Description |
---|---|---|
attributes.campaign.id | String | The unique identifier for the campaign. |
attributes.campaign.name | String | The campaign's name. |
attributes.campaign.tags | [String] | Tags set on the campaign as a BigQuery REPEATED array. |
Experience Screen Viewed
The Screen Viewed event is triggered when the app displays a given screen within a experience to the user.
Screen Viewed events are stored in BigQuery in the v2_rover_experience_screen_viewed
table.
Experience Button Tapped
The Button Tapped event is triggered when the user taps a given node with an action set within an experience.
Button Tapped events are stored in BigQuery in the v2_rover_experience_button_tapped
table.
The following is a detailed description of the additional columns in the table for this event type.
Column | Type | Description |
---|---|---|
attributes.node.id | String | Unique identifier for the node that was tapped. |
attributes.node.name | String | The node's name, as set in the experiences authoring app. |
Classic Experience Events
These are the events emitted for Classic experiences.
All of the following events have these fields in common:
Column | Type | Description |
---|---|---|
timestamp | Timestamp | Time the event occurred. |
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/Record | Custom key value pairs set in the Experiences authoring app in a BigQuery RECORD type. |
attributes.experience.name | String | The experience's name, set in the Experiences authoring app. |
Additionally, if this experience event is associated with a campaign (such as if the experience was launched by a push campaign), then the following fields will also be present:
Column | Type | Description |
---|---|---|
attributes.campaign.id | String | The unique identifier for the campaign. |
attributes.campaign.name | String | The campaign's name. |
attributes.campaign.tags | [String] | Tags set on the campaign as a BigQuery REPEATED array. |
Classic 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_classic_rover_experience_presented
table.
Classic 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_classic_rover_experience_viewed
table.
The following is a detailed description of the additional columns in this table for this event type.
Column | Type | Description |
---|---|---|
attributes.duration | Integer | Duration of the session in seconds. |
Classic 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_classic_rover_experience_dismissed
table.
Classic 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_classic_rover_screen_presented
table.
The following is a detailed description of the additional columns in this table for this event type.
Column | Type | Description |
---|---|---|
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/Record | Custom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Classic 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_classic_rover_screen_viewed
table.
The following is a detailed description of the additional columns in this table for this event type.
Column | Type | Description |
---|---|---|
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/Record | Custom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Classic 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_classic_rover_screen_dismissed
table.
The following is a detailed description of the additional columns in this table for this event type.
Column | Type | Description |
---|---|---|
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/Record | Custom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type. |
attributes.screen.name | String | The screen's name, set in the Experiences authoring app. |
Classic 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 classic_rover_block_tapped
table.
The following is a detailed description of the additional columns in this table for this event type.
Column | Type | Description |
---|---|---|
attributes.block.id | String | Unique identifier for this block. |
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/Record | Custom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type. |
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 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.campaign.id | String | The unique identifier for the campaign. |
attributes.campaign.name | String | The campaign's name. |
attributes.campaign.tags | [String] | Tags set on the campaign as a BigQuery REPEATED array. |
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.campaign.id | String | The unique identifier for the campaign. |
attributes.campaign.name | String | The campaign's name. |
attributes.campaign.tags | [String] | Tags set on the campaign as a BigQuery REPEATED array. |
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.campaign.id | String | The unique identifier for the campaign. |
attributes.campaign.name | String | The campaign's name. |
attributes.campaign.tags | [String] | Tags set on the campaign as a BigQuery REPEATED array. |
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. |
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?
The location can be found in the device shared fields detailed at the beginning of this document.