Wire the provider to the content element and the ad UI container.
Called before the first requestAds, and again whenever the host's video
element or ad container changes (a re-mounted ad layer) — a provider must
adopt the new nodes and release anything bound to the old ones.
Content reached its end (so VMAP postrolls fire).
Remote-control hand-off (Android TV's "Right/Up steps into the ad's own
UI"): the SDK's CTV AdsManager.focus() moves real DOM focus into
IMA's iframe — asynchronously, a few ms later — onto its skip button
when there is one, else its interactive elements. From then on the keys
are the SDK's; on Back or OK it hands focus back to the parent document
by itself (measured on a Tizen 10 set with a real preroll, 2026-09-24:
WINDOW focus + focusin on the player after each of them), where the
chrome puts the ring back on the ad play/pause. Returns true when a
hand-off was attempted; the chrome confirms a beat later whether focus
actually moved (an ad with nothing to focus moves it nowhere).
Request ads for the item's config. autostart carries the content's
autoplay intent: false = hold the break until startPendingBreak().
The player/container was resized (fullscreen, layout).
IMA plays the creative in its own layer, so the ad's volume is its own.
Start a loaded-but-held break. True if one was started.
SPI for a client-side ads integration (Google IMA HTML5, future slot providers) — the web mirror of the mobile
AdsProviderSPI. Opt-in: apps that never touch ads load none of this.