Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

1.0 Overview

This document captures a high-level requirements and architecture for client-side DAI Implementation in the AAMP Native Engine

Table of key web links

...

Web Resource

...

Owner

...

Descrption

...

dfddfdf

...

2.0 Product and Technical Requirements

Req   No.

Product   Requirements

Status

1.0



2.0




3.0 Architecture

This section provides a high-level architecture


draw.io Diagram
diagramNameClientSideDAI-1.drawio
diagramWidth561
revision2

...

draw.io Diagram
diagramNameClientSideDAI-5.drawio
diagramWidth631
revision23

draw.io Diagram
diagramNameClientsideDAI-6.drawio
width600
diagramWidth522
revision3

Image AddedImage AddedImage Added

Image AddedImage AddedImage Added

View file
nameIP Linear DAI - API Design 072519.docx
height250

3.1 Component Overview  


Process viewView


4.0 Integrated AAMP-FOG 

Detaching the AAMP from browser & merging with the FOG's executable gives us the flexibility in caching the dynamic Ads in the local storage. It provides many other advantages and few disadvantages too.

...

Name

Data Type

Read or Write

Description

adBreaksObject[]r

Array of AdBreak objects (sorted by time).

Contains replaced and inserted Ad placed into the timeline.

adOpportunitiesObject[]r

Array of AdOpportunity objects (sorted by time).

Contains replaced and inserted Ad opportunities available for client-side Ad insertion.

durationNumberrDuration of the entire timeline in milliseconds (includes content and placed Ads).
positionNumberrCurrent playback position in milliseconds.
startNumberrEarliest seekable position in milliseconds
timedMetadataObject[]r

Array of TimedMetadata objects (sorted by time).

Contains metadata associated with HLS subscribed tags and embedded SCTE35 data.

6.

...

3 Timeline Functions

Name

Return Value

Arguments

Description

addEventListenervoid

eventType - String,

listener - Function

Register an event listener for the specified eventType.

removeEventListenervoid

eventType - String,

listener - Function

De-register the specifiend event listener for the specified eventType.
placeAdBreakbooladBreak - Object

Places the specified AdBreak into the timeline.

Return true if successful.

subscribedTimedMetadatavoidtags - String []

Sets collection of HLS tags to monitor during parsing, or embedded data.

Fire "timedMetadata" event when subscribed tags are parsed.

6.

...

4 Timeline Events

Name

Payload

Description

timelineUpdated

seekableRangeChanged - bool

adBreaks - Object[] - array of modified AdBreaks

adOpportunities - Object[] - array of inserted AdOpportunities

duration - Number - duration of entire timeline (milliseconds)

position - Number - current position in the timeline (milliseconds)

start - Number - earliest seekable position in the timeline (milliseconds)

Fired timeline is updated.

An update occurs when the timeline start/duration changes, or new AdOpportunity has been inserted, or an AdBreak / Ad has been placed.

timedMetadatatimedMetadata - ObjectFired when new TimedMetadata has been parsed.
adBreakStart

adBreak - Object - the AdBreak being started

speed - Number - current playback rate

seenCount - Number - number of times Ad break was played (in full).

Fired when player starts playing an AdBreak.
adBreakComplete

adBreak - Object - the Adbreak being finished

progress - Number - percentage of Ads played

ads - Object[] - array of Ad including played progress of each Ad.

Fired when player finishes playing an AdBreak.
adBreakSkipped

adBreak - Object - the Adbreak being skipped or exited

progress - Number - percentage of Ads played

Fired when player skips over an AdBreak.
adStart

ad - Object - the Ad being started

speed - Number - current playback rate

seenCount - Number - number of times Ad was played (in full).

Fired when player start playing an Ad.
adProgress

ad - Object - the Ad being played

progress - Number - percentage of Ad played

Reports the player's progress as it plays an Ad.
adComplete

ad - Object - the Ad that finished begin played

progress - Number - percentage of Ad played

Fired when player finishes playing an Ad.

6.5.

...

AdBreak Properties

Name

Data Type

Read or Write

Description

ADBREAK_TYPE_INSERT0static const

Indicates adBreak was inserted.

ADBREAK_TYPE_REPLACED1static const

Indicates adBreak was replaced.

typeNumberrSpecified the abBreak type, and indicates if adds are inserted or replace existing content.
idStringrUnique identifier associated with the ad break.
startNumberrStarting position (milliseconds) of the ad break in the timeline.
durationNumberrDuration (milliseconds) of the ad break.
adsObject[]r

Array of Ad objects (sorted by time).

Contains the ads that will be played during the ad break.

6.

...

6 AdBreak Functions

Name

Return Value

Arguments

Description

placeAdsbool

position - Number,

ads - Object[]

Place the specified Ad objects in the AdBreak.

Return true if successful.

6.

...

7 Ad Properties

Name

Data Type

Read or Write

Description

idStringr

Unique identifier associated with the ad.

urlStringr

URL specifying the location of the ad's manifest.

durationNumberrDuration (milliseconds) of the ad.
metadataObjectrAdditional metadata associated with the ad.

6.

...

8 AdOpportunity Properties

Name

Data Type

Read or Write

Description

AD_PLACEMENT_TYPE_PREROLL0static const

Indicates opportunity places ad before the main content.

AD_PLACEMENT_TYPE_MIDROLL1static const

Indicates opportunity places ad in the main content.

AD_PLACEMENT_TYPE_POSTROLL2static const

Indicates opportunity places ad after the main content.

AD_PLACEMENT_MODE_INSERT0static const

Indicates opportunity inserts ad inside content.

AD_PLACEMENT_MODE_REPLACE1static const

Indicates opportunity replaces content.

idStringr

Unique identifier associated with the ad opportunity.

placementNumberrIndicates placement type: preroll vs. midroll vs. postroll.
modeNumberrIndicates placement mode: insertion vs. replacement.
startNumberrStarting position (milliseconds) of the ad opportunity.
durationNumberrDuration (milliseconds) of the ad.
metadataObjectrAdditional metadata associated with the ad opportunity.

6.

...

9 TimedMetadata Properties

Name

Data Type

Read or Write

Description

METADATA_TYPE_TAG0static const

Indicates metadata is from the manifest.

METADATA_TYPE_ID31static const

Indicates metadata was embedded in the content.

typeNumberr

Specified the metadata type: manifest vs. embedded.

timeNumberr

Time (in milliseconds) of the metadata.

nameStringr

Name of the metadata. E.g., #EXT-X-CUE, #EXT-X-SCTE35.

contentStringrValue of the metadata.
idStringr

Unique identifier associated with the metadata.

metadataObjectrAdditional name / value pairs obtained from the metadata content string.

6.

...

10 TrickModeRestrictions Properties

Name

Data Type

Read or Write

Description

pauseNumberr

Specifies if pause is restricted during Ad playback.

rewindNumberr

Specifies if rewind is restricted during Ad playback.

fastForwardNumberr

Specified if fastForward is restricted during Ad playback.