View as Markdown

Configuration

Both components take one associative array on their config field. Pass the same array to each.

Required

Key Meaning
channelSlug Your open.video channel slug.
adUnit The ad unit name you already use for your video inventory. There is no separate connected-TV ad unit to create: the SDK marks every request as CTV (connected-TV device type, your Roku channel id as the app bundle, app identity), and that is what buyers classify on. Keep the value stable; your reporting is grouped by it.
appDomain, appName Your Ezoic domain and app name, sent on every ad request as app identity.
sdkLibraryUrl The pinned SDK URL, for example https://sdk.open.video/roku/v0.1.4/OpenVideoRokuSDK.zip.

Ads

Key Default Meaning
adsEnabled true to serve ads.
adLane "app" Ad request identity. Leave as "app" for a Roku channel.
ssaiStitchPlayback false false: ad breaks render client-side through RAF. true: ad breaks are stitched into the stream server-side. Stitched breaks are not eligible for Google demand.
adPodDurationSeconds 60 Maximum length of one ad break.
adPodMaxAds 2 Maximum ads in one break.
adBreakGapSeconds Minimum content time between midrolls. Roku's ad policy floor applies.
adBreaksWaitMs 750 On a deep link, how long to wait for the video's ad break plan before freezing it.

The SDK does not own consent. Pass through whatever your consent surface collects:

Key Meaning
consentTcString, consentGdpr IAB TCF string and GDPR applicability.
consentUsPrivacy US Privacy (CCPA) string.
consentGpp, consentGppSid IAB GPP string and section ids.

Content and display

Key Default Meaning
apiBase, pageUrlBase open.video Leave alone unless told otherwise.
feedUrl derived Overrides the catalog's channel feed URL.
theme { surfaceBase } colors the default ad backdrop (falls back to #0d0d0f).