Skip to main content

Device info context

Device Info Context is an entity attached to events that provides information about the Roku device. It gives information about the device model and OS, adds unique identifiers for the channel and device, includes playback settings, current device usage, locale, display properties, network status, and device features.

The context is automatically added to all tracked events by default. If you prefer not to add the context to events, you may disable it using the subject.deviceContext option during tracker initialization:

m.global.snowplow.init = {
subject: {
deviceContext: false ' disabling device info context
},
...
}

The context entity reflects the ifDeviceInfo interface in Roku SDK and picks some useful properties from it. It adds the following information:

AttributeTypeDescriptionRequired?
modelStringModel name of the Roku device (e.g., 3940EU)yes
modelDisplayNameStringModel display name (e.g., Roku Express 4K)yes
modelTypeStringType of device (STB or TV)yes
osVersionStringRoku OS version (e.g., 10.5.1.4059) (Roku OS ≥ 9.2)no
channelClientIdStringA unique device identifier that is different across channels (Roku OS ≥ 8.1)no
isRIDADisabledBooleanIndicates whether tracking via Roku's ID for Advertisers (RIDA) is disabled (Roku OS ≥ 8.1)no
RIDAStringA persistent unique identifier (UUID) for the device (Roku OS ≥ 8.1)no
captionsModeStringGlobal captions are turned on or off, or are in instant replay modeyes
audioOutputChannelStringType of audio outputyes
memoryLevelStringGeneral memory level of the channel (normal, low, critical) (Roku OS ≥ 8.1)no
timeSinceLastKeypressIntegerNumber of seconds since the last remote keypress was receivedyes
userCountryCodeStringISO 3166-1 country code of the user's Roku account (Roku OS ≥ 8.1)no
countryCodeStringRoku Channel Store associated with a user's Roku accountyes
videoModeStringVideo playback resolutionyes
displayWidthIntegerPhysical width of the attached display in centimetersyes
displayHeightIntegerPhysical height of the attached display in centimetersyes
displayPropertiesString[]List of keys for display properties of the screenyes
connectionTypeStringType of internet connection the device is using (e.g., WiFiConnection)yes
internetStatusBooleanInternet connection status of the device (Roku OS ≥ 10.0) .no
featuresString[]List of features that the current device/firmware supportsyes

The displayProperties list may include keys for the following display properties: Internal (display part of Roku player), Hdr10 (display supports HDR10), Hdr10Plus (display supports HDR10), DolbyVision (display supports Dolby Vision). The features list of activated features of the device may include 5.1_surround_soundcan_output_5.1_surround_soundsd_only_hardwareusb_hardwaresdcard_hardwareethernet_hardwaregaming_hardwareenergy_star_compliantsoundbar_hardware, and handsfree_voice.

Roku's ID for Advertisers (RIDA)

RIDA is a Universally Unique Identifier (UUID) that is unique and persistent for the Roku device. It is designed to generally follow the guidelines established for the IDFA (Identifier for Advertising) that are available on other platforms such as iOS and Android. The ID is intended for Roku publishers to enable frequency capping and targeted advertising on the Roku platform.

Users can disable RIDA tracking by selecting "Limit ad tracking" in the device settings. In this case, the IsRIDADisabled property will be true and RIDA will be a temporary ID that expires after 30 days.

RIDA is tracked by the tracker by default. However, there may be cases where you may not want to track the identifier. To disable tracking RIDA, deactivate the subject.RIDATracking option during tracker initialization:

m.global.snowplow.init = {
subject: {
RIDATracking: false ' disabling tracking RIDA
},
...
}