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:

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

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:

ColumnTypeDescription
timestampTimestampTime the event occurred.
attributes.experience.idStringThe unique identifier for this experience.
attributes.experience.nameStringThe experience's name, as set in the Experiences area of the Rover portal.
attributes.screen.idStringThe unique identifier for the screen of the experience.
attributes.screen.nameStringThe 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:

ColumnTypeDescription
attributes.campaign.idStringThe unique identifier for the campaign.
attributes.campaign.nameStringThe 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.

ColumnTypeDescription
attributes.node.idStringUnique identifier for the node that was tapped.
attributes.node.nameStringThe 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:

ColumnTypeDescription
timestampTimestampTime the event occurred.
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.keysObject/RecordCustom key value pairs set in the Experiences authoring app in a BigQuery RECORD type.
attributes.experience.nameStringThe 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:

ColumnTypeDescription
attributes.campaign.idStringThe unique identifier for the campaign.
attributes.campaign.nameStringThe 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.

ColumnTypeDescription
attributes.durationIntegerDuration 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.

ColumnTypeDescription
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.keysObject/RecordCustom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
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.keysObject/RecordCustom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
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.keysObject/RecordCustom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type.
attributes.screen.nameStringThe 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.

ColumnTypeDescription
attributes.block.idStringUnique identifier for this block.
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.keysObject/RecordCustom key value pairs set on the Screen in the Experiences authoring app in a BigQuery RECORD type.
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 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.campaign.idStringThe unique identifier for the campaign.
attributes.campaign.nameStringThe 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.

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

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

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.

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?

The location can be found in the device shared fields detailed at the beginning of this document.


Previous
Overview