Video Session API Diagram for Roku Scene Graph

## Integration Summary * ## Integration APIs **Initialize Objects** ConvivaClient(settings) Initialize the top-level object.

Updated 2026-06-30 roku, api, table, sensor developer center, sensor integration, integration

Integration Summary

Integration API diagram

Integration APIs

**Initialize Objects**

ConvivaClient(settings)

Initialize the top-level object.

conviva.setOrUpdateContentInfo(videoNode, contentInfo)

Call this API to update or amend metadata.

**Reports Events and Metadata**

conviva.monitorVideoNode(video, contentInfo)

Report when the video node is available.

It's critical to make this API call correctly to monitor the video experience. For example, if the call is delayed (say, when the video starts rather than the user clicking play*), the Video Startup Time will be under-reported and the Video Start Failures will be missed.

Call this API when:

  • User clicks the video play button

  • Video starts in auto-play mode

  • User replays video

  • A new video starts in play list

conviva.monitorVideoNode(conviva.videoNodeIdentifier, contentInfo)

Report when the video node is unavailable yet. Associate the video later.

conviva.associateVideoNode(video)

conviva.reportAdBreakStarted(videoNode as object, adType as string, adBreakInfo as object)

Required, if your application has Ads.

Inform conviva object that an ad break has been started.

conviva.reportAdBreakEnded(videoNode, conviva.AD_TYPE.SERVER_SIDE, podMetadata)

Report when the ad break ends.

conviva.endMonitoring(videoNode)

Call this when the video play back ends. It releases the Conviva objects without the need to release them explicitly.

**Report Playback Metrics**

Most of the metrics such as player states, app backgrounding, foregrounding, and buffering, are automatically collected.

However, there are these metrics that you need to report for Roku:

conviva.reportSeekStarted(videoNode, seekToPosition)

Report when user seeks the video.

conviva.setCDNServerIp(videoNode, cdnServerIp)

Report the CDN IP address

conviva.reportPlayerAverageBitrate(videoNode, avgBitrate)

At video start and frequently thereafter

**Report User Actions**

conviva.setContentPauseMonitoring(videoNode) [Advanced and Optional] Report when the video playback request halts due to user dialogues like pin popup, accepting strong language or violence, or confirming age.

conviva.setContentResumeMonitoring(videoNode) [Advanced and Optional] Report when the user wait time ends

**Report Errors**

Conviva library auto-collects both fatal and non-fatal playback errors. There's no need to report them.

To release the conviva object on unrecoverable fatal error, invoke:

conviva.endMonitoring(videoNode)

**Report Custom Playback Events**
conviva.reportContentPlayerEvent(videoNode, eventType as string, eventDetail as object)

For more details about the custom playback events, reach out to your Conviva representative.

**Cleanup Session**

conviva.endMonitoring(videoNode)

Call these APIs to release the object on player's sudden exit, application's graceful exit, or when the Conviva object needs to be destroyed.