# Configuration

Source: https://docs.open.video/docs/roku-sdk/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. |

## 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`). |

