Skip to main content
Version: v2

Player integration

OptiView Ads is designed to work with the OptiView Player, but you are not required to use it. The Break Manifest and SSAI EXT-X-DATERANGE cue injection are open contracts that you can integrate with your own player.

Choose an integration path

  • OptiView Player is the recommended path. The Web, Android, and iOS SDKs handle Break Manifest polling, ad scheduling, Google IMA/DAI integration, and OptiView impression reporting. Chromecast CAF and React Native have platform-specific capabilities described in their guides.
  • Bring your own player is for open-source and native players. Poll the Break Manifest yourself, or consume the SSAI cues injected into a proxied media playlist. OptiView does not provide first-party adapters for these players.

Capability matrix

CapabilityOptiView Player Web / Android / iOSChromecast CAFReact Nativehls.jsShaka PlayerExoPlayer / Media3AVPlayer
Automatic Break Manifest handlingYesVia sender/receiver integrationPlatform-dependentNoNoNoNo
breakManifestUrl supportYesNoNoN/AN/AN/AN/A
SSAI EXT-X-DATERANGE consumptionYesReceiver handles supported cuesPlatform-dependentYes, application codeYes, as timeline regionsYes, via metadata/interstitial APIsYes, via AVFoundation metadata/interstitial APIs
Single (full-screen) adYesYesYesApplication codeApplication codeApplication codeApplication code
Double boxDefined in schema; not currently selected by current schedulers*NoNot currently selected*Application codeApplication codeApplication codeApplication code
L-shapeDefined in schema; not currently selected by current schedulers*NoNot currently selected*Application codeApplication codeApplication codeApplication code
OverlayDefined in schema; not currently selected by current schedulers*Image overlays onlyNot currently selected*Application codeApplication codeApplication codeApplication code
Google IMA / DAI integrationBuilt inBuilt in for supported CAF flowPlatform-dependentApplication codeApplication codeApplication codeApplication code
OptiView impression reportingYesNoNoNoNoNoNo

The Break Manifest schema defines single, double, lshape_ad, lshape_content, and overlay. The current Web, Android, and iOS OptiView Player schedulers select the single layout only. Chromecast CAF currently supports image overlays only.

How ads are delivered and tracked

OptiView Ads uses server-guided ad insertion (SGAI):

  1. A channel's Break Manifest, or injected HLS cues, signals when an ad break occurs.
  2. Google DAI / Pod Serving performs server-side ad decisioning and stitching. The OptiView Player configuration identifies the Google account with networkCode and customAssetKey.
  3. The client-side Google IMA SDK handles the ad request and tracking. On Web this is the ima3_dai.js library; on iOS it is the GoogleInteractiveMediaAds SDK.

Google IMA and Google DAI are related but different: IMA is the client-side library, while DAI / Pod Serving is the server-side ad-decisioning and stitching service.

There are two impression types:

  • OptiView impression beacon: sent by OptiView Player once per ad experience with the player's adbreakbegin event. It is linked to the player license, contains no viewer data, and is visible in the portal. See Ad impression tracking.
  • Google ad-server impressions: the standard IMA/DAI creative impression and tracking pings sent to Google Ad Manager.

BYO players do not emit the OptiView impression beacon. They can still generate Google impressions if they implement the applicable IMA or ad-tracking integration.