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:

ColumnTypeDescription
device.appBuildStringThe app's build number (both iOS and Android require a unque and naturally ordered build number).
device.appIdentifierStringThe bundle ID (iOS) or application ID (Android). E.g. "com.example.MyApp".
device.appVersionStringThe app's version number (version "name" on Android).
device.carrierNameStringHuman-readable name of the User's mobile network carrier. E.g. "T-Mobile".
device.deviceManufacturerStringThe manufacturer of the device. E.g. "Samsung".
device.deviceModelStringThe device model name, the well-known marketing name if possible. E.g. "iPhone 6 Plus".
device.deviceIdentifierStringA 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.deviceNameStringThe user set device name. Uses bluetooth name on Android.
device.isCellularEnabledBooleanWhether or not the cellular radio is enabled.
device.isLocationServicesEnabledBooleanWhether or not location is enabled on the device.
device.isWifiEnabledBooleanWhether or not WiFi is enabled on the device.
device.locationAuthorizationStringWhether or not the user has granted location permissions to the app. One of [authorizedAlways, authorizedWhenInUse, denied, notDetermined, restricted]. Currently only tracked on iOS.
device.localeLanguageStringThe currently set device language in ISO 639 Alpha-2.
device.localeRegionStringThe currently set region in BCP-47 format (ie., en-US).
device.localeScriptStringThe script of the writing system, given as a ISO 15924 Alpha-4 code.
device.notificationAuthorizationStringWhether or not the user has authorized notifications One of [authorized, denied].
device.operatingSystemNameStringThe name of the device's OS itself, such as "iOS" or "Android".
device.operatingSystemVersionStringThe version number of the device's OS.
device.buildEnvironmentStringOne of [production, development]. Currently only tracked on iOS.
device.pushToken.valueStringThe token used by APNs or FCM/GCM to send notifications to the device.
device.pushToken.timestampTimestampThe time that the push token was updated.
device.radioStringThe mode by which the device's radio/baseband is currently connected to the carrier. E.g. "LTE".
device.screenWidthIntegerThe width of the display, in device independent pixels. "Points" on iOS, and "dp" on Android.
device.screenHeightIntegerThe height of the display, in device independent pixels. "Points" on iOS, and "dp" on Android.
device.sdkVersionStringThe version of the Rover SDK included in the app the device has installed. E.g. 2.2.3
device.timeZoneStringThe time zone the device is currently present in. In tz database name format. E.g. "America/Toronto".
device.isBluetoothEnabledBooleanWhether or not bluetooth is enabled on the device.
device.isTestDeviceBooleanWhether 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.locationObjectGeographic 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.altitudeDoubleDisplacement from sea level in meters.
device.location.verticalAccuracyDoubleThe margin of error for the altitude, in meters.
device.location.horizontalAccuracyDoubleThe margin of error for the latitude/longitude coordinates, in meters.
device.location.timestampTimestampThe moment in time the location update was captured.
device.location.addressObjectThe '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.streetStringStreet address, with number as applicable.
device.location.address.cityStringThe city.
device.location.address.stateStringThe province or state.
device.location.address.postalCodeStringPostal or ZIP code (or similar postal system code addressing system used in the given country)
device.location.address.countryStringGCountry name.
device.location.address.isoCountryCodeStringISO 3166 Alpha-2 code for the country.
device.location.address.subAdministrativeAreaStringTypically a borough of a city.
device.location.address.subLocalityStringTypically the neighborhood of a city.
device.userInfoObjectApp developer defined custom information, as a hash/dictionary with whatever custom fields have been set.
device.advertisingIdentifierStringAn 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:

ColumnTypeDescription
attributes.experience.idStringThe 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.keysObjectCustom key value pairs set in the Experiences authoring app.
attributes.experience.nameStringThe experience's name, set in the Experiences authoring app.
attributes.experience.campaignIDStringThe 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.durationIntegerDuration 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.screen.idStringUnique 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.keysObjectCustom key value pairs set on the Screen in the Experiences authoring app.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.durationIntegerDuration of the session in seconds.
attributes.screen.idStringUnique 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.keysObjectCustom key value pairs set on the Screen in the Experiences authoring app.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.screen.idStringUnique 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.keysObjectCustom key value pairs set on the Screen in the Experiences authoring app.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.durationIntegerDuration of the session in seconds.
attributes.block.idStringUnique identifier for this block.
attributes.block.tapBehaviorObjectDescribes the action the app performed when the user tapped the block.
attributes.block.tapBehavior.typeStringThe type of performed action. One of [none, goToScreen, openURL, presentWebsite].
attributes.block.tapBehavior.screenIDStringIf type was goToScreen, then specifies the ID of the Screen in the same experience to navigate to.
attributes.block.tapBehavior.urlObjectIf 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.keysObjectCustom key value pairs set on the Block in the Experiences authoring app.
attributes.block.nameStringThe block's name, set in the Experiences authoring app.
attributes.screen.idStringUnique 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.keysObjectCustom key value pairs set on the Screen in the Experiences authoring app.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.durationIntegerDuration 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.previousVersionStringThe version number of the previously installed version of the app (equivalent to device.appVersion).
attributes.previousBuildIntegerThe 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.durationIntegerDuration 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.

ColumnTypeDescription
timestampTimestampTime 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.sourceStringThe context the user opened the notification from. One of [notificationCenter, pushNotification, influencedOpen].
attributes.notification.idStringUnique identifier for the notification. Unique to each user's device.
attributes.notification.campaignIDStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.notification.idStringUnique identifier for the notification. Unique to each user's device.
attributes.notification.campaignIDStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.notification.idStringUnique identifier for the notification. Unique to each user's device.
attributes.notification.campaignIDStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.geofence.idStringThe 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.radiusDoubleThe radius of the geofence in meters.
attributes.geofence.namenameThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.geofence.idStringThe 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.radiusDoubleThe radius of the geofence in meters.
attributes.geofence.namenameThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.beacon.idStringRover's unique identifier for the given beacon registered in the Rover proximity app.
attributes.beacon.nameStringA human-readable name assigned to beacon.
attributes.beacon.uuidStringThe UUID emitted by the beacon, as per the iBeacon format.
attributes.beacon.majorStringThe major emitted by the beacon, as per the iBeacon format.
attributes.beacon.minorStringThe 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.

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.beacon.idStringRover's unique identifier for the given beacon registered in the Rover proximity app.
attributes.beacon.nameStringA human-readable name assigned to beacon.
attributes.beacon.uuidStringThe UUID emitted by the beacon, as per the iBeacon format.
attributes.beacon.majorStringThe major emitted by the beacon, as per the iBeacon format.
attributes.beacon.minorStringThe 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.

ColumnTypeDescription
timestampTimestampTime 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.


Previous
Overview