openapi: 3.0.3 info: title: OptiView Ads API version: v1 components: securitySchemes: basicAuth: type: http scheme: basic description: API key (username) and secret (password). orgId: type: apiKey in: header name: x-org-id description: Organization identifier. schemas: {} paths: /api/v1/channels: get: description: List all channels with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a new channel. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique channel identifier. Provided by the customer or auto-generated when omitted. type: string minLength: 1 name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts description: 'Time reference used for scheduling breaks on the channel: `wallclock` (ISO 8601 datetime) or `pts` (numeric presentation timestamp). `mediatime` is only valid for VOD channels.' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - mode description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. required: - timebase responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false /api/v1/channels/{channelId}: get: description: Get a channel by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false patch: description: Update a channel. requestBody: required: true content: application/json: schema: type: object properties: name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts description: 'Time reference used for scheduling breaks on the channel: `wallclock` (ISO 8601 datetime) or `pts` (numeric presentation timestamp). `mediatime` is only valid for VOD channels.' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: nullable: true minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - mode description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false delete: description: Delete a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response /api/v1/channels/{channelId}/detection/enable: post: description: Enable automatic ad-break detection for a channel. Starts the per-channel detection scheduler. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false /api/v1/channels/{channelId}/detection/disable: post: description: Disable automatic ad-break detection for a channel. Stops the per-channel detection scheduler. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer exclusiveMinimum: true maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false /api/v1/channels/{channelId}/breaks: get: description: List all breaks for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a break. Optionally provide a templateId to use a template as base. requestBody: required: true content: application/json: schema: anyOf: - type: object properties: id: description: Unique identifier of the break within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 start: description: 'Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a non-negative PTS number. On any channel, an event trigger object (`{type: "event", event, delay?}`) starts the break on a player event instead of a timeline position. On wallclock channels only, omit to create a cued break that is scheduled later via the punch endpoint.' anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event duration: description: Break duration in seconds. Optional when creating from a template; falls back to the template duration. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. templateId: type: string minLength: 1 description: Identifier of the template to base this break on. The template content is copied onto the break at creation. eventId: description: Optional identifier of the event this break belongs to. The break start must fall within the event window. type: string assetParameters: description: Optional asset parameters as a string map, merged into the vendor assets of the template when the break is created. Parameters provided here are combined with the ones defined on the template assets; on duplicate keys the values provided here win. type: object additionalProperties: type: string required: - templateId - type: object properties: id: description: Unique identifier of the break within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 start: description: 'Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a non-negative PTS number. On any channel, an event trigger object (`{type: "event", event, delay?}`) starts the break on a player event instead of a timeline position. On wallclock channels only, omit to create a cued break that is scheduled later via the punch endpoint.' anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. eventId: description: Optional identifier of the event this break belongs to. The break start must fall within the event window. type: string required: - duration - variant parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false delete: description: Bulk delete breaks by IDs. requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the breaks to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response /api/v1/channels/{channelId}/breaks/{breakId}: get: description: Get a break by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false delete: description: Delete a break. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '204': description: Default Response /api/v1/channels/{channelId}/breaks/{breakId}/punch: post: description: schedule a CUED break, transitioning it to READY. Accepts an optional startDate (ISO 8601); defaults to now. Past dates are clamped to now. requestBody: required: true content: application/json: schema: type: object properties: start: description: Optional start time for the break, as an ISO 8601 datetime string. Defaults to now; times in the past are clamped to now. type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false /api/v1/channels/{channelId}/events: get: description: List all events for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique event identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 name: type: string minLength: 1 description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: description: Event start time. Breaks under this event must be scheduled at or after this time. endDate: description: Event end time. Breaks under this event must be scheduled at or before this time. required: - name - startDate - endDate parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false delete: requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the events to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response /api/v1/channels/{channelId}/events/{eventId}: get: parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false patch: requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: description: Event start time. Breaks under this event must be scheduled at or after this time. endDate: description: Event end time. Breaks under this event must be scheduled at or before this time. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false delete: parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '204': description: Default Response /api/v1/channels/{channelId}/events/{eventId}/templates: get: description: List all templates associated with the event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false /api/v1/channels/{channelId}/events/{eventId}/templates/{templateId}/breaks: get: description: List breaks created from a template during an event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. - schema: type: string in: path name: templateId required: true description: Identifier of the template. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false /api/v1/channels/{channelId}/events/{eventId}/breaks: get: description: List all breaks associated with the event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false /api/v1/channels/{channelId}/events/{eventId}/breaks/current: get: description: 'List the breaks currently playing for the event: scheduled breaks whose start + duration window contains the request time, plus event-triggered breaks while the event is active.' parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false required: - data additionalProperties: false /api/v1/channels/{channelId}/markerRules: get: description: List all marker rules for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a marker rule. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique marker rule identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string minLength: 1 description: Identifier of the template applied when this rule matches. enabled: default: true description: Whether this rule is evaluated during break detection. Defaults to true. type: boolean required: - streamType - type - conditions - templateId parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false delete: description: Bulk delete marker rules by IDs. requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the marker rules to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response /api/v1/channels/{channelId}/markerRules/{markerRuleId}: get: description: Get a marker rule by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false patch: description: Update a marker rule. requestBody: required: true content: application/json: schema: type: object properties: streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string minLength: 1 description: Identifier of the template applied when this rule matches. enabled: default: true description: Whether this rule is evaluated during break detection. Defaults to true. type: boolean parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false delete: description: Delete a marker rule. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '204': description: Default Response /api/v1/channels/{channelId}/detection/history: get: description: List detected ad-marker history for a channel with pagination, filtering, and sorting. Each entry records the detected marker and the action taken, plus (when applicable) the matched marker rule, the resulting break, and a reason for skipped/failed detections. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique marker detection identifier. originId: type: string description: Identifier of the origin whose polling detected the marker. markerRuleId: description: Identifier of the marker rule that matched the detected marker, if any. type: string breakId: description: Identifier of the break scheduled from this detection, if one was created. type: string action: type: string enum: - CREATED - SKIPPED - FAILED description: 'Outcome recorded for a detected marker: `CREATED` (a break was scheduled), `SKIPPED` (no break scheduled), or `FAILED` (scheduling failed).' marker: type: string description: The raw marker detected in the stream manifest. reason: description: Reason a detection was skipped or failed. type: string createdAt: type: string description: Timestamp when the marker was detected, as an ISO 8601 datetime string. required: - id - originId - action - marker - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false /api/v1/channels/{channelId}/detection/history/{markerDetectionId}: get: description: Get a detected ad-marker history entry by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerDetectionId required: true description: Identifier of the marker detection record. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker detection identifier. originId: type: string description: Identifier of the origin whose polling detected the marker. markerRuleId: description: Identifier of the marker rule that matched the detected marker, if any. type: string breakId: description: Identifier of the break scheduled from this detection, if one was created. type: string action: type: string enum: - CREATED - SKIPPED - FAILED description: 'Outcome recorded for a detected marker: `CREATED` (a break was scheduled), `SKIPPED` (no break scheduled), or `FAILED` (scheduling failed).' marker: type: string description: The raw marker detected in the stream manifest. reason: description: Reason a detection was skipped or failed. type: string createdAt: type: string description: Timestamp when the marker was detected, as an ISO 8601 datetime string. required: - id - originId - action - marker - createdAt additionalProperties: false /api/v1/channels/{channelId}/integrations: get: description: List all channel integrations for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a channel integration. requestBody: required: true content: application/json: schema: oneOf: - oneOf: - type: object properties: id: description: Unique channel integration identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 type: type: string enum: - SSAI description: 'Channel integration type discriminator. `SSAI`: server-side ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. At least one is required; duplicate keys are removed. Each key may back at most one channel integration within an organization. minItems: 1 type: array items: type: string minLength: 1 required: - type - vendor - daiAssetKeys - oneOf: - type: object properties: id: description: Unique channel integration identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 type: type: string enum: - SGAI description: 'Channel integration type discriminator. `SGAI`: server-guided ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' customAssetKey: type: string minLength: 1 description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. A key may back at most one channel integration within an organization. required: - type - vendor - customAssetKey parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false /api/v1/channels/{channelId}/integrations/{channelIntegrationId}: get: description: Get a channel integration by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false patch: description: Update a channel integration. requestBody: required: true content: application/json: schema: oneOf: - oneOf: - type: object properties: type: type: string enum: - SSAI description: 'Channel integration type discriminator. `SSAI`: server-side ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. At least one is required; duplicate keys are removed. Each key may back at most one channel integration within an organization. minItems: 1 type: array items: type: string minLength: 1 required: - type - vendor - daiAssetKeys - oneOf: - type: object properties: type: type: string enum: - SGAI description: 'Channel integration type discriminator. `SGAI`: server-guided ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' customAssetKey: type: string minLength: 1 description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. A key may back at most one channel integration within an organization. required: - type - vendor - customAssetKey parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false delete: description: Delete a channel integration. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '204': description: Default Response /api/v1/channels/{channelId}/origins: get: description: List all origins for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a new origin within a channel. The channel is taken from the path. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique origin identifier. Provided by the customer or auto-generated when omitted. type: string minLength: 1 url: type: string format: uri description: Manifest URL polled by the break detection service. Must be a valid URL. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: default: false description: Whether this origin participates in its channel break-detection failover. Set the initial value on create; afterwards toggle it via the enable/disable endpoints (PATCH does not change it). Defaults to false. type: boolean priority: default: 0 description: 'Failover order within the channel: the detection loop tries enabled origins from lowest to highest priority and uses the first that responds. Lower means higher priority; negatives are allowed. Defaults to 0.' type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - url - type parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false /api/v1/channels/{channelId}/origins/{originId}: get: description: Get an origin by ID within a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false patch: description: Update an origin within a channel. requestBody: required: true content: application/json: schema: type: object properties: url: type: string format: uri description: Manifest URL polled by the break detection service. Must be a valid URL. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string priority: description: Failover order within the channel; lower means higher priority, and negatives are allowed. type: integer minimum: -9007199254740991 maximum: 9007199254740991 parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false delete: description: Delete an origin within a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '204': description: Default Response /api/v1/channels/{channelId}/origins/{originId}/enable: post: description: Enable an origin within a channel (sets `enabled` to true). parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false /api/v1/channels/{channelId}/origins/{originId}/disable: post: description: Disable an origin within a channel (sets `enabled` to false). parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false /api/v1/templates: get: description: List all templates with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 92e7f418-1f0b-42bf-acf7-a7ed068eb8e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create a new template. Backdrop is required for non-SINGLE layouts. requestBody: required: true content: application/json: schema: type: object properties: duration: description: Default break duration in seconds applied when creating a break from this template. Optional. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: a3a8f05c-f04d-4f92-a2b7-92164f7de809 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: description: Unique template identifier. Provided by the customer or auto-generated when omitted. type: string minLength: 1 name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string minLength: 1 eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string minLength: 1 required: - variant responses: '201': description: Default Response content: application/json: schema: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: e6e1f3e2-3d99-4f3d-8058-664a78a4b181 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false delete: description: Bulk delete templates by IDs. requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the templates to delete. At least one is required. required: - ids responses: '204': description: Default Response /api/v1/templates/{templateId}: get: description: Get a template by ID. parameters: - schema: type: string in: path name: templateId required: true description: Identifier of the template. responses: '200': description: Default Response content: application/json: schema: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: d0fb8fd2-156a-46ca-abc6-c76c94d4e15b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false patch: description: Update a template. Backdrop is required for non-SINGLE layouts. requestBody: required: true content: application/json: schema: type: object properties: duration: description: Default break duration in seconds applied when creating a break from this template. Optional. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: 0460515c-edbb-4b1c-bb04-88972284df77 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string minLength: 1 eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string minLength: 1 parameters: - schema: type: string in: path name: templateId required: true description: Identifier of the template. responses: '200': description: Default Response content: application/json: schema: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 735471b9-a4fa-4caf-9e92-19aabb2ae3e4 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false delete: description: Delete a template. parameters: - schema: type: string in: path name: templateId required: true description: Identifier of the template. responses: '204': description: Default Response /api/v1/organizations/integrations: get: description: List all organization integrations for the organization with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique organization integration identifier within the organization. type: type: string enum: - GOOGLE description: Organization integration type. Currently only `GOOGLE` (Google GAM configuration). networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. state: type: string enum: - READY - ERROR description: 'Server-managed state of the integration. Issues with the integration, such as invalid credentials, cause it to be in `ERROR`, which runtime consumers skip. Currently always `READY`: nothing transitions it yet.' createdAt: type: string description: Timestamp when the organization integration was created, as an ISO 8601 datetime string. required: - id - type - networkCode - state - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false post: description: Create an organization integration. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique organization integration identifier within the organization. Provided by the customer or auto-generated when omitted. type: string minLength: 1 type: type: string enum: - GOOGLE description: Organization integration type. Currently only `GOOGLE` (Google GAM configuration). networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. serviceAccountCredentials: type: object properties: auth_uri: type: string format: uri description: OAuth2 authorization endpoint, as found in the service account key file. client_email: type: string format: email pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ description: Service account email address, as found in the key file. private_key: type: string description: PEM-encoded private key, copied verbatim from the key file's "private_key" field. Its "\n" escapes are standard JSON string escaping and decode to the real line breaks the PEM needs; a doubly-escaped key (decoded value still containing literal "\n") is rejected. token_uri: type: string format: uri description: OAuth2 token endpoint from the key file, used to mint access tokens. required: - auth_uri - client_email - private_key - token_uri description: 'Google service account credentials to upload (the `auth_uri`, `client_email`, `private_key` and `token_uri` fields of the key file JSON; other fields are ignored). Write-only: the backend stores them in the secret manager at the location derived from the organization, and they are never returned. Optional — omit it when the credentials are already stored, e.g. when only changing `networkCode`. The credentials are not exchanged with Google on write; use the verify endpoint for that.' eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. required: - type - networkCode responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique organization integration identifier within the organization. type: type: string enum: - GOOGLE description: Organization integration type. Currently only `GOOGLE` (Google GAM configuration). networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. state: type: string enum: - READY - ERROR description: 'Server-managed state of the integration. Issues with the integration, such as invalid credentials, cause it to be in `ERROR`, which runtime consumers skip. Currently always `READY`: nothing transitions it yet.' createdAt: type: string description: Timestamp when the organization integration was created, as an ISO 8601 datetime string. required: - id - type - networkCode - state - createdAt additionalProperties: false /api/v1/organizations/integrations/{organizationIntegrationId}: get: description: Get an organization integration by ID. parameters: - schema: type: string in: path name: organizationIntegrationId required: true description: Identifier of the organization integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique organization integration identifier within the organization. type: type: string enum: - GOOGLE description: Organization integration type. Currently only `GOOGLE` (Google GAM configuration). networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. state: type: string enum: - READY - ERROR description: 'Server-managed state of the integration. Issues with the integration, such as invalid credentials, cause it to be in `ERROR`, which runtime consumers skip. Currently always `READY`: nothing transitions it yet.' createdAt: type: string description: Timestamp when the organization integration was created, as an ISO 8601 datetime string. required: - id - type - networkCode - state - createdAt additionalProperties: false patch: description: Update an organization integration. `type` is immutable. requestBody: required: true content: application/json: schema: type: object properties: networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. serviceAccountCredentials: type: object properties: auth_uri: type: string format: uri description: OAuth2 authorization endpoint, as found in the service account key file. client_email: type: string format: email pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ description: Service account email address, as found in the key file. private_key: type: string description: PEM-encoded private key, copied verbatim from the key file's "private_key" field. Its "\n" escapes are standard JSON string escaping and decode to the real line breaks the PEM needs; a doubly-escaped key (decoded value still containing literal "\n") is rejected. token_uri: type: string format: uri description: OAuth2 token endpoint from the key file, used to mint access tokens. required: - auth_uri - client_email - private_key - token_uri description: 'Google service account credentials to upload (the `auth_uri`, `client_email`, `private_key` and `token_uri` fields of the key file JSON; other fields are ignored). Write-only: the backend stores them in the secret manager at the location derived from the organization, and they are never returned. Optional — omit it when the credentials are already stored, e.g. when only changing `networkCode`. The credentials are not exchanged with Google on write; use the verify endpoint for that.' eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. additionalProperties: false description: Organization integration configuration update. `type` is immutable and cannot be changed. description: Organization integration configuration update. `type` is immutable and cannot be changed. parameters: - schema: type: string in: path name: organizationIntegrationId required: true description: Identifier of the organization integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique organization integration identifier within the organization. type: type: string enum: - GOOGLE description: Organization integration type. Currently only `GOOGLE` (Google GAM configuration). networkCode: type: string minLength: 1 description: Google Ad Manager network code used when signaling ad breaks. eabnLookForwardTimeMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: How far ahead (in milliseconds) upcoming ad breaks are looked up when syncing with Google EABN. eabnDecisioningMarginMs: type: integer exclusiveMinimum: true maximum: 9007199254740991 description: Minimum margin (in milliseconds) before a break starts for Google EABN decisioning. state: type: string enum: - READY - ERROR description: 'Server-managed state of the integration. Issues with the integration, such as invalid credentials, cause it to be in `ERROR`, which runtime consumers skip. Currently always `READY`: nothing transitions it yet.' createdAt: type: string description: Timestamp when the organization integration was created, as an ISO 8601 datetime string. required: - id - type - networkCode - state - createdAt additionalProperties: false delete: description: Delete an organization integration. parameters: - schema: type: string in: path name: organizationIntegrationId required: true description: Identifier of the organization integration. responses: '204': description: Default Response /api/v1/organizations/integrations/{organizationIntegrationId}/verify: post: description: 'Verify the organization''s stored service account credentials with the ad system: `204` when they verify, `422` with the reason when they do not, `502` when the check itself could not complete. The outcome is not persisted.' parameters: - schema: type: string in: path name: organizationIntegrationId required: true description: Identifier of the organization integration. responses: '204': description: Default Response security: - basicAuth: [] orgId: []