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.

Table Schema

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.
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.
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 Campaigns 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.