Track ads on Roku track-ads-on-roku
The following instructions provide guidance for implementation using the 2.x SDKs.
Ad tracking constants
AdBreakStartAdBreakCompleteAdStartAdCompleteAdSkipImplementation steps
-
Identify when the ad break boundary begins, including pre-roll, and create an
AdBreakObjectby using the ad break information.AdBreakObjectreference:table 0-row-3 1-row-3 2-row-3 3-row-3 3-align-center 7-align-center 11-align-center 15-align-center Variable Name Description Required nameAd break name such as pre-roll, mid-roll, and post-roll. Yes positionThe number position of the ad break starting with 1. Yes startTimePlayhead value at the start of the ad break. Yes code language-none ‘ Create an adbreak info object adBreakInfo = adb_media_init_adbreakinfo() adBreakInfo.name = <ADBREAK_NAME> adBreakInfo.startTime = <START_TIME> adBreakInfo.position = <POSITION> -
Call
trackEvent()withAdBreakStartin theMediaHeartbeatinstance to begin tracking the ad break:code language-none contextData = {} ADBMobile().mediaTrackEvent(MEDIA_AD_BREAK_START, adBreakInfo, contextData) -
Identify when the ad asset starts and create an
AdObjectinstance using the ad information.code language-none adInfo = adb_media_init_adinfo(ad.title, ad.id, ad.position, ad.duration) -
Optionally attach standard and/or ad metadata to the media tracking session through context data variables.
-
Custom ad metadata - For custom metadata, create a variable object for the custom data variables and populate with the data for the current ad asset:
code language-none contextData = {} contextData["adinfo1"] = "adinfo2" contextData["adinfo2"] = "adinfo2"
-
Call
trackEvent()with theAdStartevent in theMediaHeartbeatinstance to begin tracking the ad playback:code language-none ADBMobile().mediaTrackEvent(ADBMobile().MEDIA_AD_START, adInfo, contextData) -
When the ad asset playback reaches the end of the ad, call
trackEvent()with theAdCompleteevent.code language-none standardAdMetadata = {} contextData = {} ADBMobile().mediaTrackEvent(ADBMobile().MEDIA_AD_COMPLETE, adInfo, contextData) -
If ad playback did not complete because the user chose to skip the ad, track the
AdSkipevent:code language-none contextData = {} ADBMobile().mediaTrackEvent(ADBMobile().MEDIA_AD_SKIP, adInfo, contextData -
If there are any additional ads within the same
AdBreak, repeat steps 3 through 7 again. -
When the ad break is complete, use the
AdBreakCompleteevent to track:code language-none contextData = {} ADBMobile().mediaTrackEvent(MEDIA_AD_BREAK_COMPLETE, adBreakInfo, contextData)
See the tracking scenario VOD playback with pre-roll ads for more information.