OptiView Ads SDK on Web
On Web, the OptiView Ads SDK works with any HLS-capable player through a player adapter. Ready-made adapters are available for the OptiView Player (THEOplayer), HLS.js, Shaka Player, and the browser's native <video> element, and you can implement a custom adapter for any other player.
Prerequisites
- Retrieve the channel's Break Manifest URL. See Retrieving the required values.
- For Google Pod Serving, have your Google Ad Manager
networkCodeand the channel'scustomAssetKeyat hand. - Install the SDK together with the adapter for your player (see the player sections below).
Integration
Create the SDK with your player's adapter, then start a session with the channel's Break Manifest URL. The example below uses the OptiView Player (THEOplayer) adapter; the other adapters work the same way:
import { OptiViewAds } from '@dolby-optiview/ads-sdk';
import { THEOplayerAdapter } from '@dolby-optiview/ads-adapter-theoplayer';
const sdk = new OptiViewAds({
player: new THEOplayerAdapter(player, container),
container: document.getElementById('container'),
gam: { networkCode: 'NETWORK-CODE' },
});
await sdk.startSession({
manifestUrl: 'https://us.markers.optiview.dolby.com/manifest/v1/ORG-ID/channels/CHANNEL-ID',
});
From this point the SDK polls the Break Manifest, schedules the breaks against your player's timeline, plays the ads, and reports the impressions. To verify the integration, schedule a break through the API or dashboard and confirm that it plays out.
Supported players
OptiView Player (THEOplayer)
Install the THEOplayer adapter alongside the SDK:
npm install @dolby-optiview/ads-sdk @dolby-optiview/ads-adapter-theoplayer theoplayer
Wrap the ChromelessPlayer instance in a THEOplayerAdapter. THEOplayer manages its own <video> element inside a container <div>.
Limitations:
- Requires THEOplayer v9 or later and a valid THEOplayer license.
- Set
mutedAutoplay: 'all'in the player configuration; without it, ad playback can be blocked by browser autoplay policies.
HLS.js
Install the HLS.js adapter alongside the SDK:
npm install @dolby-optiview/ads-sdk @dolby-optiview/ads-adapter-hlsjs hls.js
Wrap your Hls instance and content <video> element in an HlsJsAdapter and pass it as the player.
Shaka Player
Install the Shaka adapter alongside the SDK:
npm install @dolby-optiview/ads-sdk @dolby-optiview/ads-adapter-shaka shaka-player
Call shaka.polyfill.installAll() once before creating any shaka.Player instance, then wrap the player and <video> element in a ShakaAdapter.
Limitations:
- Requires Shaka Player 4.x or 5.x.
Native video (Safari and iOS browsers)
The SDK ships a native <video> adapter for platforms without Media Source Extensions, such as Safari on older iOS versions, where HLS plays natively through video.src. The SDK selects the appropriate playback technology per ad automatically.
Limitations:
- On iOS versions older than 17.1, ads play through the content video element: advanced layouts are downgraded to a single fullscreen ad.
Custom players
Any other player can be integrated by implementing the SDK's PlayerAdapter interface, which exposes playback position, timing information, and basic playback controls. Contact us for the adapter interface reference.