Skip to Content

title: PlayerConfig

Interface: PlayerConfig

Fully resolved player configuration — all fields required.

interface PlayerConfig {    ad: { apsTimeout: number; autoPauseWhenInvisible: boolean; bidding: boolean; customClickButton: boolean; enable: boolean; imaUi: boolean; intensity: number; maxRedirectCount: number; maxWaterfallLength: number; palSdk: boolean; pauseButton: boolean; player: "ads-sdk" | "ima"; prebidTimeout: number; vastLoadTimeout: number; videoLoadTimeout: number; maxDuration?: number; tagConfig?: string | { url: string; errorPixels?: string[]; externalId?: string; id?: string } | { lineItems: { url: string; errorPixels?: string[]; externalId?: string; id?: string }[]; maxDuration?: number; maxFallbackAttempts?: number; name?: string }[] };    analytics: { scriptUrl?: string };    dock: { allowAdClose: boolean; bottom: string; enable: boolean; left: string; position: "top" | "right" | "bottom" | "left" | "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | "stickyTop" | "stickyTopExpanded"; right: string; snapTop: string; top: string; targetSelector?: string };    earlyRecommendations: { buttonCountdownSeconds: number; enable: boolean; maximumVisibility: number; minimumContentDurationSeconds: number; showAfterSeconds: number };    otherPlayers: { pauseOnOtherPlay: boolean; pauseOnOtherPlayWhenMuted: boolean; singleDockMode: boolean };    playback: { anyClickUnmute: boolean; initialAutoplayPlaybackRate: number; initialPlaybackRate: number; noConsentNoAutoplay: boolean; playOnVisibility: number; preload: "metadata" | "none" | "auto"; restoreMediaPreferences: boolean; startBehavior: "click-to-play" | "scroll-to-play" | "scroll-to-play-when-ad" | "scroll-to-play-with-out-to-play-fallback" | "scroll-to-play-with-silent-fallback" | "silent-scroll-to-play" | "silent-scroll-to-play-when-ad" | "scroll-out-to-play" | "scroll-out-to-play-when-ad"; autoplayVolume?: number };    playlist: { contentFrequencyCapping: boolean; endBehavior: "stop" | "loop"; endscreen: "continue" | "none"; recommendations: boolean; revolverPlay: boolean; revolverPlayAutoplayCountdown: number; revolverPlayCountdown: number };    privacy: { loadThirdPartyOnlyIfConsent: boolean };    seo: { addJsonLd: boolean };    ui: { contentBranding: boolean; contentComposition: "content" | "content-network" | "content-streamer"; contentOwnerLogo: boolean; enable: boolean; epgButton: boolean; globalKeyboardEvents: boolean; nextVideoButton: boolean; premiumProductName: string; tapToUnmute: boolean; title: boolean; upsellButton: boolean; useInitialTeaserComposition: boolean };    context?: { deviceType?: string; extra?: Record<string, unknown>; partnerId?: string; partnerName?: string; productFormat?: string; productName?: string; publisherCountryCode?: string; publisherId?: string; userCountryCode?: string };    developmentFlags?: { configOverrides?: PlayerConfigInput; debug?: boolean; environment?: "stage"; stylesUrl?: string; [key: string]: unknown };    experiments?: Record<string, string>;    id?: string;    variant?: { id: string; [x: string]: unknown };}

Properties

ad: object

apsTimeout

apsTimeout: number

autoPauseWhenInvisible

autoPauseWhenInvisible: boolean

bidding

bidding: boolean

customClickButton

customClickButton: boolean

enable

enable: boolean

imaUi

imaUi: boolean

intensity

intensity: number

maxRedirectCount

maxRedirectCount: number

maxWaterfallLength

maxWaterfallLength: number

palSdk

palSdk: boolean

pauseButton

pauseButton: boolean

player

player: "ads-sdk" | "ima"

prebidTimeout

prebidTimeout: number

vastLoadTimeout

vastLoadTimeout: number

videoLoadTimeout

videoLoadTimeout: number

maxDuration?

optional maxDuration: number

tagConfig?

optional tagConfig: string | { url: string; errorPixels?: string[]; externalId?: string; id?: string; } | object[]


analytics

analytics: object

scriptUrl?

optional scriptUrl: string


dock

dock: object

allowAdClose

allowAdClose: boolean

bottom

bottom: string

enable

enable: boolean

left

left: string

position

position: "top" | "right" | "bottom" | "left" | "bottomLeft" | "bottomRight" | "topLeft" | "topRight" | "stickyTop" | "stickyTopExpanded"

right: string

snapTop

snapTop: string

top

top: string

targetSelector?

optional targetSelector: string


earlyRecommendations

earlyRecommendations: object

buttonCountdownSeconds

buttonCountdownSeconds: number

enable

enable: boolean

maximumVisibility

maximumVisibility: number

minimumContentDurationSeconds

minimumContentDurationSeconds: number

showAfterSeconds

showAfterSeconds: number


otherPlayers

otherPlayers: object

pauseOnOtherPlay

pauseOnOtherPlay: boolean

pauseOnOtherPlayWhenMuted

pauseOnOtherPlayWhenMuted: boolean

singleDockMode

singleDockMode: boolean


playback

playback: object

anyClickUnmute

anyClickUnmute: boolean

initialAutoplayPlaybackRate

initialAutoplayPlaybackRate: number

initialPlaybackRate

initialPlaybackRate: number

noConsentNoAutoplay

noConsentNoAutoplay: boolean

playOnVisibility

playOnVisibility: number

preload

preload: "metadata" | "none" | "auto"

restoreMediaPreferences

restoreMediaPreferences: boolean

startBehavior

startBehavior: "click-to-play" | "scroll-to-play" | "scroll-to-play-when-ad" | "scroll-to-play-with-out-to-play-fallback" | "scroll-to-play-with-silent-fallback" | "silent-scroll-to-play" | "silent-scroll-to-play-when-ad" | "scroll-out-to-play" | "scroll-out-to-play-when-ad"

autoplayVolume?

optional autoplayVolume: number


playlist

playlist: object

contentFrequencyCapping

contentFrequencyCapping: boolean

endBehavior

endBehavior: "stop" | "loop"

endscreen

endscreen: "continue" | "none"

recommendations

recommendations: boolean

revolverPlay

revolverPlay: boolean

revolverPlayAutoplayCountdown

revolverPlayAutoplayCountdown: number

revolverPlayCountdown

revolverPlayCountdown: number


privacy

privacy: object

loadThirdPartyOnlyIfConsent

loadThirdPartyOnlyIfConsent: boolean


seo

seo: object

addJsonLd

addJsonLd: boolean


ui

ui: object

contentBranding

contentBranding: boolean

contentComposition

contentComposition: "content" | "content-network" | "content-streamer"

contentOwnerLogo: boolean

enable

enable: boolean

epgButton

epgButton: boolean

globalKeyboardEvents

globalKeyboardEvents: boolean

nextVideoButton

nextVideoButton: boolean

premiumProductName

premiumProductName: string

tapToUnmute

tapToUnmute: boolean

title

title: boolean

upsellButton

upsellButton: boolean

useInitialTeaserComposition

useInitialTeaserComposition: boolean


context?

optional context: object

deviceType?

optional deviceType: string

extra?

optional extra: Record<string, unknown>

partnerId?

optional partnerId: string

partnerName?

optional partnerName: string

productFormat?

optional productFormat: string

productName?

optional productName: string

publisherCountryCode?

optional publisherCountryCode: string

publisherId?

optional publisherId: string

userCountryCode?

optional userCountryCode: string


developmentFlags?

optional developmentFlags: object

Index Signature

[key: string]: unknown

configOverrides?

optional configOverrides: PlayerConfigInput

Final-layer config override — applied on top of defaults, remote, and inline config.

debug?

optional debug: boolean

Enable debug mode. Can also be set via the ?turboDebug=true URL parameter.

environment?

optional environment: "stage"

Target the stage environment instead of production.

stylesUrl?

optional stylesUrl: string

Override the styles URL.


experiments?

optional experiments: Record<string, string>


id?

optional id: string


variant?

optional variant: object

Index Signature

[x: string]: unknown

id

id: string