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.
Consent
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).