/** * ORTB 2.5 section 3.2.7 - Video.mimes */ export type VIDEO_MIME_TYPE = OrtbVideoParams.mimes; export namespace VIDEO_MIME_TYPE { let MP4: string; let MPEG: string; let OGG: string; let WEBM: string; let AAC: string; let HLS: string; } export const JS_APP_MIME_TYPE: string; export const VPAID_MIME_TYPE: string; /** * ORTB 2.5 section 5.9 - Video Placement Types */ export type PLACEMENT = OrtbVideoParams.placement; export namespace PLACEMENT { let INSTREAM: number; let BANNER: number; let ARTICLE: number; let FEED: number; let INTERSTITIAL: number; let SLIDER: number; let FLOATING: number; let INTERSTITIAL_SLIDER_FLOATING: number; } /** * ADCOM - https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/develop/AdCOM%20v1.0%20FINAL.md#list_plcmtsubtypesvideo */ export type PLCMT = OrtbVideoParams.plcmt; export namespace PLCMT { let INSTREAM_1: number; export { INSTREAM_1 as INSTREAM }; export let ACCOMPANYING_CONTENT: number; let INTERSTITIAL_1: number; export { INTERSTITIAL_1 as INTERSTITIAL }; export let OUTSTREAM: number; export let NO_CONTENT: number; } /** * ORTB 2.5 section 5.4 - Ad Position */ export type AD_POSITION = OrtbVideoParams.pos; export namespace AD_POSITION { let UNKNOWN: number; let ABOVE_THE_FOLD: number; let BELOW_THE_FOLD: number; let HEADER: number; let FOOTER: number; let SIDEBAR: number; let FULL_SCREEN: number; } /** * ORTB 2.5 section 5.11 - Playback Cessation Modes */ export type PLAYBACK_END = OrtbVideoParams.playbackend; export namespace PLAYBACK_END { export let VIDEO_COMPLETION: number; export let VIEWPORT_LEAVE: number; let FLOATING_1: number; export { FLOATING_1 as FLOATING }; } /** * ORTB 2.5 section 5.10 - Playback Methods */ export type PLAYBACK_METHODS = OrtbVideoParams.playbackmethod; export namespace PLAYBACK_METHODS { let AUTOPLAY: number; let AUTOPLAY_MUTED: number; let CLICK_TO_PLAY: number; let CLICK_TO_PLAY_MUTED: number; let VIEWABLE: number; let VIEWABLE_MUTED: number; } /** * ORTB 2.5 section 5.8 - Protocols */ export type PROTOCOLS = OrtbVideoParams.protocols; export namespace PROTOCOLS { let VAST_2_0: number; let VAST_3_0: number; let VAST_2_0_WRAPPER: number; let VAST_3_0_WRAPPER: number; let VAST_4_0: number; let VAST_4_0_WRAPPER: number; } /** * ORTB 2.5 section 5.6 - API Frameworks */ export type API_FRAMEWORKS = OrtbVideoParams.api; export namespace API_FRAMEWORKS { let VPAID_1_0: number; let VPAID_2_0: number; let OMID_1_0: number; } /** * ORTB 2.5 section 5.18 - Content Context */ export type CONTEXT = OrtbContentParams.context; export namespace CONTEXT { let VIDEO: number; let AUDIO: number; } export type OrtbParams = { video: OrtbVideoParams; content: OrtbContentParams; }; export type OrtbVideoParams = { /** * - Content MIME types supported (e.g., “video/x-ms-wmv”, “video/mp4”). */ mimes: [string]; /** * - Minimum video ad duration in seconds. */ minduration: number | undefined; /** * - Maximum video ad duration in seconds. */ maxduration: number | undefined; /** * - Supported video protocols. At least one supported protocol must be specified. */ protocols: [number]; /** * - Width of the video player in device independent pixels (DIPS). */ w: number; /** * - Height of the video player in device independent pixels (DIPS). */ h: number; /** * - Indicates the offset of the ad placement. */ startdelay: number | undefined; /** * - Legacy Placement type for the impression. */ placement: number | undefined; /** * - Modern placement type for the impression. */ plcmt: number | undefined; /** * - Indicates if the impression must be linear, nonlinear, etc. If omitted, assume all are allowed. */ linearity: number | undefined; /** * - Indicates if the player can allow the video to be skipped, where 0 is no, 1 is yes. */ skip: number; /** * - Only ad creatives with a duration greater than this value can be skippable; only applicable if the ad is skippable. */ skipmin: number | undefined; /** * - Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. */ skipafter: number | undefined; /** * - If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives. */ sequence: number | undefined; /** * - Blocked creative attributes. Use this to indicate which creatives the player does not support. */ battr: [number] | undefined; /** * - Maximum extended ad duration if extension is allowed. */ maxextended: number | undefined; /** * - Minimum bit rate in Kbps supported by the player. */ minbitrate: number | undefined; /** * - Maximum bit rate in Kbps supported by the player. */ maxbitrate: number | undefined; /** * - Indicates if letter-boxing of 4:3 content into a 16:9 window is allowed. 0 is no, 1 is yes. */ boxingallowed: number | undefined; /** * - Playback methods that may be in use. */ playbackmethod: [number] | undefined; /** * - The scenario that causes playback to end. */ playbackend: number | undefined; /** * - Supported delivery methods (e.g., streaming, progressive). */ delivery: [number] | undefined; /** * - Ad position on screen. */ pos: number | undefined; /** * - list of companion ads. Refer to Section 3.2.6 of the oRTB v2.5 spec for the interface of the companion ad object. */ companionad: [any] | undefined; /** * - List of supported API frameworks for this impression. */ api: [number] | undefined; /** * - Supported VAST companion ad types. Refer to List 5.14 of the oRTB v2.5 spec for the interface. */ companiontype: [number] | undefined; /** * - Placeholder for exchange-specific extensions to OpenRTB. */ ext: any | undefined; }; export type OrtbContentParams = { /** * - ID uniquely identifying the content. */ id: string; /** * - URL of the content, for buy-side contextualization or review. */ url: string; /** * - Episode number. */ episode: number | undefined; /** * - Content title. */ title: string | undefined; /** * - Content series i.e. “The Office” (television), “Star Wars” (movie). */ series: string | undefined; /** * - Content season (e.g., “Season 3”). */ season: string | undefined; /** * - Artist credited with the content. */ artist: string | undefined; /** * - Genre that best describes the content (e.g., rock, pop, etc). */ genre: string | undefined; /** * - Album to which the content belongs. Typically for audio. */ album: string | undefined; /** * - International Standard Recording Code conforming to ISO3901. */ isrc: string | undefined; /** * - Details about the content Producer. For Producer interface visit Section 3.2.17 of the oRTB v2.5 spec. */ producer: any | undefined; /** * - List of IAB content categories that describe the content. Refer to List 5.1. of the oRTB v2.5 spec for the complete list. */ cat: [string] | undefined; /** * - Production quality. Refer to List 5.13 of the oRTB v2.5 spec. */ prodq: number | undefined; /** * - Type of content (game, video, text, etc.). Refer to List 5.18 of the oRTB v2.5 spec. */ context: number | undefined; /** * - Content rating (e.g., MPAA). */ contentrating: string | undefined; /** * - User rating of the content (e.g., number of stars, likes, etc.). */ userrating: string | undefined; /** * - Media rating per IQG guidelines. Refer to List 5.19 of the oRTB v2.5 spec. */ qagmediarating: number | undefined; /** * - Comma separated list of keywords describing the content. */ keywords: string | undefined; /** * - Whether the stream is live or not. 0 means not live (VOD), 1 means content is live streaming. */ livestream: number | undefined; /** * - 0 means indirect, 1 means direct. */ sourcerelationship: number | undefined; /** * - Duration of content in seconds. */ len: number; /** * - Content language using ISO-639-1-alpha-2. */ language: string | undefined; /** * - Indicator of whether or not the content is embeddable (e.g., an embeddable video player). 0 means no, 1 means yes. */ embeddable: number | undefined; /** * - Additional content data. Each Data object represents a different data source. See Section 3.2.21 of the oRTB v2.5 spec. */ data: [any] | undefined; /** * - Placeholder for exchange-specific extensions to OpenRTB. */ ext: any | undefined; };