Pause Ads (VAST)

What are Pause Ads

Pause Ads display brand messages during natural breaks in playback on Roku devices. When a viewer pauses live or on-demand content, a promotional overlay is displayed after a brief delay. This format provides a high-visibility, non-interruptive surface that integrates naturally with the viewing experience.

On Roku, Pause Ads can be delivered via an externally hosted VAST XML from any VAST-compliant ad server (e.g., Google Ad Manager) and are rendered by the StreamLayer Roku SDK.

Pause Ads are effective for driving brand awareness while respecting user-initiated playback behavior.


Key Characteristics

  • Trigger The viewer manually pauses live or on-demand content.

  • Delay The Pause Ad is displayed after a short delay (approximately 5 seconds) to avoid accidental pause-and-resume actions.
    The delay and display trigger are controlled by the host player integration.

  • Display The ad is rendered as a promotional overlay managed by the StreamLayer SDK.

  • Resume Resuming playback automatically dismisses the Pause Ad.

  • Delivery Ad content can be delivered via an externally hosted VAST XML.


SDK Initialization Mode (Roku)

On Roku, Pause Ads use VAST XML as the ad source and support multiple SDK initialization modes depending on the integration.

When VAST-only mode is enabled, the StreamLayer SDK is initialized specifically for Pause Ad delivery, rendering, and VAST analytics tracking. In this mode:

  • Only Pause Ad–related functionality and VAST analytics event processing are loaded
  • The SDK fetches and renders ads from a VAST XML
  • Full StreamLayer platform features (such as real-time feeds, moderation configuration, and live data subscriptions) are not initialized

This mode is designed to support lightweight, ad-only integrations where Pause Ads are required without enabling the full StreamLayer platform experience.


Configuration

Pause Ads on Roku are enabled via application-level configuration and player integration behavior.

Key configuration fields include:

  • isVastModeEnabled
    Enables or disables VAST-based Pause Ads.
    When set to true, the SDK is initialized in VAST-only mode.

  • vastUrl
    A URL pointing to the VAST XML used for Pause Ads.

  • type
    The ad unit the host wants drawn. Omit it and the SDK picks a shape from the creative.
    Pause units: PauseVastFullBleed, PauseVastAd, PauseAdSidebar11, PauseAdSidebar21.

  • isNotificationEnabled
    Show a notification first; the viewer opens the ad from it. Defaults to false.

Pause Ad Display Timing

The host application is responsible for triggering Pause Ad display after a pause event.
It is recommended that Pause Ads are shown after a short delay (for example, ~5 seconds), although the exact delay duration is controlled by the host application and may vary by integration.

The following example shows a typical host-side timer configuration:

   <Timer id="PauseAdTimer" duration="5" repeat="false"/>

Once triggered, the StreamLayer SDK renders the Pause Ad and tracks its lifecycle and analytics.

Example call:

m.slView.callFunc("showPauseAd", {
    vastUrl: "<external VAST XML URL>"
    type: "PauseVastFullBleed"
})

Ads over running playback

showPauseAd covers ad units shown over a stream the host has already stopped. A host VAST
tag can also feed the standard ad units — SideBar21, LBar21, SideBarImageOnly,
LBarImageOnly, SideBySide — which are shown over running playback. Those go through
showAd, where the ad card stops and resumes the host player
itself, and are dismissed with closeOverlay().

showAd is ignored until the SDK reports isEventReady, since it needs a resolved event to
attach the ad to.

Notes on VAST XML:

  • Standard VAST 3.0 is expected — an InLine ad with a NonLinear image, a Linear
    MP4, or both, plus optional CompanionAds for the sponsor logo and the 6:1 bottom banner.
  • Impression, creativeView, quartile and error beacons are fired from the tag.
  • Wrapper responses are not resolved: the SDK flags and skips them, so the tag must
    point at an InLine ad rather than a redirect chain.