Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ad 1648 #32

Open
wants to merge 175 commits into
base: feat/AD-1416
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
9db7350
creates core video
Aug 3, 2021
c230038
adds unit tests for submodule builder
Aug 3, 2021
4f50173
tests video core
Aug 3, 2021
2ca9900
capitalizes factory functions
Aug 3, 2021
0cbcf0c
registers as module
Aug 4, 2021
563453a
adds vendor consts
Aug 4, 2021
0fd3d8e
registers jwplayer submodule
Aug 4, 2021
0d6d816
renames render ad
Aug 4, 2021
25df416
checks config autostart
Aug 4, 2021
fb4eaa4
moves private functions to a util obj
Aug 4, 2021
8f01f91
introduces ad optimization
Aug 5, 2021
8a5344b
tests state.js
Aug 9, 2021
82c772c
introduces submodule tests
Aug 9, 2021
fa78d82
populates utils tests
Aug 9, 2021
b3de327
tests callback storage
Aug 9, 2021
0ccf313
tests ad and time states
Aug 10, 2021
e6a9dd5
introduces provider tests:
Aug 10, 2021
658d226
tests init
Aug 10, 2021
c5c53d6
tests get ortb
Aug 10, 2021
6107be5
tests event listeners
Aug 11, 2021
2671dfc
supports removing all event handlers when explicit
Aug 13, 2021
822e5de
splits clear all event listeners from early return
Aug 13, 2021
99a79f0
removes hook
Aug 20, 2021
14ff784
shares directory
Aug 20, 2021
7c6a5cc
prevents registering a same provider twice
karimMourra Aug 31, 2021
b7958dd
adds pb video
karimMourra Aug 31, 2021
81cbc90
adds video module to submodules list
karimMourra Sep 1, 2021
454392a
adds integration example
karimMourra Sep 1, 2021
c97e264
implements ad unit enrichment
karimMourra Sep 1, 2021
c04dbbb
moves submodule to parent dir
karimMourra Sep 1, 2021
b7181d3
removes comment
karimMourra Sep 1, 2021
d25a944
implements event listener
karimMourra Sep 2, 2021
855e702
adds unit tests
karimMourra Sep 2, 2021
479af65
tests updating video config
karimMourra Sep 7, 2021
f1add22
tests events surfacing
karimMourra Sep 7, 2021
5a9990e
nests the event trigger tests
karimMourra Sep 7, 2021
81bba06
restores factory
karimMourra Sep 7, 2021
7a93038
adds adServer
karimMourra Oct 7, 2021
b75fca6
shares base parent module logic
karimMourra Oct 7, 2021
0ab7d06
register gam submodule
karimMourra Oct 7, 2021
1d135c6
tests submodule builder
karimMourra Oct 8, 2021
826e69b
instantiates ad server
karimMourra Oct 8, 2021
3ea13dc
tests parent module
karimMourra Oct 8, 2021
1d78f10
updates core video tests
karimMourra Oct 8, 2021
1a6e72f
adds ad server tests
karimMourra Oct 8, 2021
9b57bce
obtains vast ad to render
karimMourra Oct 11, 2021
b1e2408
passes options
karimMourra Oct 11, 2021
3d43e27
tests ad tag obtention
karimMourra Oct 12, 2021
277ece6
tests settings tags without ad server
karimMourra Oct 12, 2021
b0f41ef
adds vast xml builder
karimMourra Oct 22, 2021
179ff13
tests node makers
karimMourra Oct 22, 2021
4c6c84b
implments vast xml build fn
karimMourra Oct 22, 2021
b865687
renames wrapper builder
karimMourra Oct 22, 2021
9198c54
adds vast xml editor
karimMourra Nov 1, 2021
b9f95f5
modifies vast xml
karimMourra Nov 1, 2021
3ecd891
moves logic to helper
karimMourra Nov 1, 2021
5bc772d
appends doc element
karimMourra Nov 1, 2021
13174c4
copies node when required multiple times
karimMourra Nov 1, 2021
693ab85
improves copy check
karimMourra Nov 1, 2021
7210bb1
adds tests for error node
karimMourra Nov 1, 2021
c1ad1f7
adds tests cases for different config
karimMourra Nov 2, 2021
88e88ec
pulls vast wrapper builders from xml editor
karimMourra Nov 2, 2021
920a7c2
adds tracking tests
karimMourra Nov 2, 2021
e7193dd
tests arguments
karimMourra Nov 2, 2021
065d677
removes obsolete path
karimMourra Nov 3, 2021
d3f43cd
polls for duration when absent
karimMourra Dec 31, 2021
dfa0450
sets up video module
karimMourra Jan 5, 2022
38a945d
prevents ad load if bidding is used
karimMourra Jan 11, 2022
327b6c0
triggers event before loading ad
karimMourra Jan 25, 2022
ec59384
adds inline docs to shared modules
karimMourra Feb 2, 2022
1da81b7
adds inline docs
karimMourra Feb 2, 2022
45162ed
documents providers
karimMourra Feb 3, 2022
984fa34
adds inline docs for ortb
karimMourra Feb 4, 2022
644e223
adds missing ortb params
karimMourra Feb 4, 2022
8a6cfd1
obtains language code
karimMourra Feb 4, 2022
0ad887b
makes placement more precise
karimMourra Feb 4, 2022
aaad64a
adds notes
karimMourra Feb 4, 2022
e76c8f4
updates todo
karimMourra Feb 7, 2022
5df5075
early exit if not video media type
karimMourra Feb 8, 2022
6e639b8
loads ad server config
karimMourra Feb 8, 2022
6539ca0
filters for highest bids before rendering
karimMourra Feb 8, 2022
cceeed6
emits event even on loss
karimMourra Feb 8, 2022
14de3d7
registers video auction events
karimMourra Feb 8, 2022
b527c1d
updates events
karimMourra Feb 9, 2022
a17e357
includes ad unit code in loss
karimMourra Feb 9, 2022
344a291
uses config fallback
karimMourra Feb 10, 2022
710d64c
tracks bids sent for rendering
karimMourra Feb 22, 2022
5340d17
adds video impression verification
karimMourra Feb 23, 2022
f75f446
shares code
karimMourra Feb 23, 2022
95d2aa7
triggers bid video events
karimMourra Feb 23, 2022
4014c81
matches ad event to bid
karimMourra Feb 24, 2022
ba1334d
adds inline documentation
karimMourra Feb 24, 2022
81723c1
allows URL import
karimMourra Mar 4, 2022
d2fd21b
updates vast xml editor tests
karimMourra Mar 4, 2022
a7dc960
tests ad event processsing
karimMourra Mar 7, 2022
0f2ee74
includes ad wrapper ids
karimMourra Mar 7, 2022
77794f8
updates ad tag injection tests
karimMourra Mar 8, 2022
3067884
tests impression tracking
karimMourra Mar 9, 2022
1f5f023
updates for new find
karimMourra Mar 9, 2022
13baa89
removes unused var
karimMourra Mar 9, 2022
ba9663e
uses find polyfill
karimMourra Mar 23, 2022
5e5193d
updates event import
karimMourra Mar 25, 2022
38a72ef
exposes addEvents
karimMourra Mar 25, 2022
a328563
checks for bid identifiers bfore accessing properties
karimMourra Mar 25, 2022
067854e
checks for bid identifiers bfore accessing properties
karimMourra Mar 25, 2022
1aa9170
exposes video bid events
karimMourra Mar 28, 2022
312b1a5
converts ortb params to insternal fields
karimMourra Mar 28, 2022
9582c4d
reads from video
karimMourra Mar 29, 2022
adbb188
removes typo
karimMourra Mar 31, 2022
47585b7
sets ortb video to media type video
karimMourra Apr 1, 2022
50cf3c0
sets ortb2 obj
karimMourra Apr 1, 2022
43577d6
gets impression url from fn
karimMourra Apr 12, 2022
1ea7b1d
tmg uses mediatype video
karimMourra Apr 13, 2022
97bf190
configures provider to properly render ads
karimMourra Apr 13, 2022
ccc1a24
sets up player in demo
karimMourra Apr 13, 2022
88cdb73
triggers load abort
karimMourra Apr 13, 2022
fd0a9b7
uses appnexys
karimMourra Apr 14, 2022
7d25458
uses getGlobal
karimMourra Apr 14, 2022
304ef6a
protects against missing params
karimMourra Apr 18, 2022
888ecfa
breaks out shared and adserver from videoModule
karimMourra Apr 18, 2022
63a0195
updates import
karimMourra Apr 18, 2022
cf551aa
resolves lgtm errors
karimMourra Apr 19, 2022
9eaadaa
uses submodule pattern
karimMourra Apr 19, 2022
60a69e8
uses uuid generator util
karimMourra Apr 20, 2022
b235dd6
removes adServer module
karimMourra Apr 25, 2022
397f73e
moves shared to video folder
karimMourra Apr 25, 2022
5d6b123
prefix events with video_
karimMourra Apr 26, 2022
16c28c4
adds auction end listener when no bids back handler
karimMourra May 9, 2022
5414630
fixes tests
karimMourra May 9, 2022
8edf653
refactors render
karimMourra May 9, 2022
ad29723
exposes rendering
karimMourra May 10, 2022
eeca4b5
uses mergeDeep
karimMourra May 10, 2022
8a7a50a
shares constants
karimMourra May 11, 2022
4a4940a
populates ortb content.data
karimMourra May 11, 2022
c314602
register events as prefixed
karimMourra May 13, 2022
4d90eb4
adds test bidders
karimMourra May 13, 2022
acb6db1
moves videoModule to library
karimMourra Jun 30, 2022
42a0073
adds video module to submodules list
karimMourra Sep 1, 2021
71a94fe
Added draft for videojs integration example
AnirudhRahul Jan 5, 2022
94d7daa
Moved jwplayer integration example, added draft for videojs example
AnirudhRahul Jan 5, 2022
e34758e
Created integration example for a mocked videojs adapter
AnirudhRahul Jan 5, 2022
d01e7d2
Fixed call order for integration examples, moved imports up
AnirudhRahul Jan 5, 2022
869951d
Finished init for videojs provider
AnirudhRahul Jan 13, 2022
3ca179f
Setup videojs init unit tests
AnirudhRahul Jan 14, 2022
98be78e
Formatting to pass linter
AnirudhRahul Jan 18, 2022
265bf91
Removed comments/redundant tests, clarified some sections of code
AnirudhRahul Jan 20, 2022
1254d39
Added semicolon
AnirudhRahul Jan 21, 2022
f2779e9
Videojs ortb params, added ortb constants
AnirudhRahul Jan 24, 2022
264dd41
Fixed integration examples, ortb adjustments
AnirudhRahul Jan 24, 2022
8b7e67f
Cleaned up code added comments
AnirudhRahul Jan 24, 2022
c0fa2cc
Renamed test file
AnirudhRahul Jan 24, 2022
6dbc91b
Removed videojs mock in favor of videojs
AnirudhRahul Jan 24, 2022
0ea5eee
Changed video source, finished tests for ortb
AnirudhRahul Jan 24, 2022
e7f166c
Cleaned up spacing added some comments
AnirudhRahul Jan 26, 2022
b8edf62
Added ad position to ortb
AnirudhRahul Jan 27, 2022
e1e59f6
Cleaned up playback methods code
AnirudhRahul Jan 27, 2022
3bf6ed8
Omitted skip variable per ortb spec
AnirudhRahul Jan 27, 2022
8b94862
Added unit tests for ima integration
AnirudhRahul Jan 28, 2022
983f109
Added util function, and corresponding tests
AnirudhRahul Jan 28, 2022
54087aa
Added code for placement
AnirudhRahul Jan 28, 2022
26423c6
Linter pass through
AnirudhRahul Jan 28, 2022
fc8b48d
Added videojs-ima to integration example
AnirudhRahul Jan 28, 2022
07af9e0
Removed duplicate tests
AnirudhRahul Feb 16, 2022
2b56170
Removed non bidding module tests
AnirudhRahul Feb 16, 2022
52ca541
Added clarifying comments
AnirudhRahul Feb 16, 2022
b765d79
Updated name mapping for videojs events
AnirudhRahul Mar 11, 2022
a5ee36c
Added callback factory, and presetup listeners
AnirudhRahul Mar 11, 2022
4be9dda
Filled in initialization events
AnirudhRahul Mar 11, 2022
44b243b
Importing event constants
AnirudhRahul Mar 11, 2022
6b893a0
Fixing setup failed event handler
AnirudhRahul Mar 11, 2022
0c3231b
Fixed init behavior to work with setupCompleteCallback
AnirudhRahul Mar 11, 2022
1c14110
Added pre setup callback tests
AnirudhRahul Mar 11, 2022
fd79732
Setup presetupListeners/moved away from callbackStorage
AnirudhRahul Mar 25, 2022
da25505
Added missing case for setup failure
AnirudhRahul Mar 25, 2022
77babd0
Basic event handling
AnirudhRahul Jun 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions integrationExamples/videoModule/jwplayerAdapter/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
-<!--

-->

<html>

<head>
<script async src="../../../build/dev/prebid.js"></script>
<script src="https://cdn.jwplayer.com/libraries/l5MchIxB.js"></script>

<script>
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

var adUnits = [{
code: 'div-gpt-ad-51545-0',
mediaTypes: {
video: {}
},
video: {
divId: 'vid-div-1',
adServer: {
vendorCode: "gam",
params: {
iu: '/19968336/prebid_cache_video_adunit',
cust_params: {
section: 'blog',
anotherKey: 'anotherValue'
},
output: 'vast'
}
},
},

// Replace this object to test a new Adapter!
bids: [{
bidder: 'appnexus',
params: {
placementId: 13232361
}
}, {
bidder: 'rubicon',
params: {
accountId: 7780,
siteId: 87184,
zoneId: 412394,
}
}, {
bidder: 'pubmatic',
params: {
publisherId: '156209'
}
}, {
bidder: 'spotx',
params: {
channel_id: 85394
}
}]
}];

pbjs.que.push(function () {
pbjs.setConfig({
video: {
providers: [{
divId: 'vid-div-1',
// vendorCode for jwplayer
vendorCode: 1,
playerConfig: {
licenseKey: 'huJTAG1dRVvvE1bT4Ng2DEnZ2ogCSgwTLwQBp8Cp9BDyAgkKC7uLuw==',
params: {
vendorConfig: {
"file": "http://content.bitsontherun.com/videos/3XnJSIm4-52qL9xLP.mp4",
mediaid: 'd9J2zcaA',
advertising: { client: 'googima' }
}
}
},
adServer: {
vendorCode: "gam"
}
}, {
divId: 'vid-div-2',
vendorCode: 1,
playerConfig: {
licenseKey: 'huJTAG1dRVvvE1bT4Ng2DEnZ2ogCSgwTLwQBp8Cp9BDyAgkKC7uLuw==',
params: {
vendorConfig: {
"file": "http://content.bitsontherun.com/videos/bkaovAYt-DZ7jSYgM.mp4",
mediaid: 'bkaovAYt',
advertising: { client: 'googima' }
}
}
},
adServer: {
vendorCode: "gam"
}
}]
}
});

pbjs.onEvent('video_setupComplete', () => {
console.log('player setup complete');
});

pbjs.onEvent('video_setupFailed', () => {
console.log('player setup failed!');
});

pbjs.onEvent('video_auctionAdLoadAttempt', event => {
console.log('The Video Module is attempting to load an ad into the player! \n', event);
});

pbjs.onEvent('video_adImpression', event => {
console.log('An ad impression has occurred!: \n', event);
});

pbjs.onEvent('video_bidImpression', event => {
console.log('The ad impression resulted from a bid! \n', event);
});

pbjs.onEvent('video_adError', event => {
console.log('An ad error has occurred!: ', event);
});

pbjs.onEvent('video_bidError', event => {
console.log('The ad error resulted from a bid! \n', event);
});

pbjs.addAdUnits(adUnits);
pbjs.requestBids({
adUnits
});
});
</script>
</head>

<body>
<h2>Prebid.js Test</h2>
<h5>Div-1</h5>
<div id='vid-div-1'></div>
<h5>Div-2</h5>
<div id='vid-div-2'></div>
</body>

</html>
119 changes: 119 additions & 0 deletions integrationExamples/videoModule/videojsAdapter/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
<html>

<head>
<script async src="../../../build/dev/prebid.js"></script>
<link href="https://vjs.zencdn.net/7.17.0/video-js.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/6.9.0/videojs-contrib-ads.css"
integrity="sha512-0gIqgiX1dWTChdWUl8XGIBDFvLo7aTvmd6FAhJjzWx5bzYsCJTiPJLKqLF3q31IN4Kfrc0NbTO+EthoT6O0olQ=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/videojs-ima/1.11.0/videojs.ima.css"
integrity="sha512-vvsEsf+dZDp6wbommO1Jbb2bpFhVQjw6pIzfE5fUY5Fgkmsgn/16sQWegqrd236T69kK5F1SbGZ+yK46a9il5A=="
crossorigin="anonymous" referrerpolicy="no-referrer" />

<!-- Setup ad units -->
<script>
var adUnits = [{
code: 'div-gpt-ad-51545-0',
sizes: [[600, 500]],
mediaTypes: {
video: {
sizes: [[600, 500]]
}
},
video: {
divId: 'vid-div-1',
adServer: {
vendorCode: "gam",
params: {
iu: '/19968336/prebid_cache_video_adunit',
cust_params: {
section: 'blog',
anotherKey: 'anotherValue'
},
output: 'vast'
}
},
},

bids: [{
bidder: 'ix',
params: {
siteId: '300',
size: [600, 500]
}
}]
}];

var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function () {
pbjs.onEvent('adImpression', event => {
console.log('adImpression: ', event);
});
pbjs.setConfig({
video: {
providers: [{
divId: 'vid-div-1',
// vendorCode for videojs
vendorCode: 2,
playerConfig: {
params: {
vendorConfig: {
mediaid: 'd9J2zcaA',
advertising: {
adscheduleid: "00000000",
client: 'vast',
offset: "10",
tag: [
'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&' +
'iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&' +
'impl=s&gdfp_req=1&env=vp&output=xml_vmap1&unviewed_position_start=1&' +
'cust_params=sample_ar%3Dpremidpostpod%26deployment%3Dgmf-js&cmsid=496&' +
'vid=short_onecue&correlator=',
"http://playertest.longtailvideo.com/mid.xml"
],
}
}
}
}
},]
}
});
pbjs.addAdUnits(adUnits);
pbjs.requestBids();
});
</script>
</head>

<body>
<h2>VideoJS Adapter Test</h2>

<h5>Div-1 existing Player</h5>

<video id='vid-div-1' class="video-js vjs-big-play-centered"
data-setup='{"controls": true, "autoplay": false, "preload": "auto"}'>
<source src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4">
</video>

<h5>Div-2 existing player without automatic setup</h5>
<video-js id='vid-div-2' data-setup='{"controls": true}'>
<source src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4">
</video-js>

<h5>Div-3 controlled Player</h5>
<div id='vid-div-3'></div>


<script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
<script src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/6.9.0/videojs-contrib-ads.js"
integrity="sha512-XjyyAijQGlXZET35toG8igvVs8HvfVgKXGnbfAs2EpZ0o8vjJoIrxL9RBBQbQjzAODIe0jvWelFfZOA3Z/vdWg=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-ima/1.11.0/videojs.ima.js"
integrity="sha512-9ocW9fl8CKJhZp4cmDpLDGPuTQ93gvw1iIS6daMYc5Y0Xh1all8iwdoI+iNmZpiydpdDGyKMTriXDX0wfs2OEg=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>

</body>

</html>
5 changes: 5 additions & 0 deletions libraries/video/constants/enums.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const PLAYBACK_MODE = {
VOD: 0,
LIVE: 1,
DVR: 2
};
97 changes: 97 additions & 0 deletions libraries/video/constants/events.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// Life Cycle
export const SETUP_COMPLETE = 'setupComplete';
export const SETUP_FAILED = 'setupFailed';
export const DESTROYED = 'destroyed';

// Ads
export const AD_REQUEST = 'adRequest';
export const AD_BREAK_START = 'adBreakStart';
export const AD_LOADED = 'adLoaded';
export const AD_STARTED = 'adStarted';
export const AD_IMPRESSION = 'adImpression';
export const AD_PLAY = 'adPlay';
export const AD_TIME = 'adTime';
export const AD_PAUSE = 'adPause';
export const AD_CLICK = 'adClick';
export const AD_SKIPPED = 'adSkipped';
export const AD_ERROR = 'adError';
export const AD_COMPLETE = 'adComplete';
export const AD_BREAK_END = 'adBreakEnd';

// Media
export const PLAYLIST = 'playlist';
export const PLAYBACK_REQUEST = 'playbackRequest';
export const AUTOSTART_BLOCKED = 'autostartBlocked';
export const PLAY_ATTEMPT_FAILED = 'playAttemptFailed';
export const CONTENT_LOADED = 'contentLoaded';
export const PLAY = 'play';
export const PAUSE = 'pause';
export const BUFFER = 'buffer';
export const TIME = 'time';
export const SEEK_START = 'seekStart';
export const SEEK_END = 'seekEnd';
export const MUTE = 'mute';
export const VOLUME = 'volume';
export const RENDITION_UPDATE = 'renditionUpdate';
export const ERROR = 'error';
export const COMPLETE = 'complete';
export const PLAYLIST_COMPLETE = 'playlistComplete';

// Layout
export const FULLSCREEN = 'fullscreen';
export const PLAYER_RESIZE = 'playerResize';
export const VIEWABLE = 'viewable';
export const CAST = 'cast';

export const allVideoEvents = [
SETUP_COMPLETE, SETUP_FAILED, DESTROYED, AD_REQUEST, AD_BREAK_START, AD_LOADED, AD_STARTED,
AD_IMPRESSION, AD_PLAY, AD_TIME, AD_PAUSE, AD_CLICK, AD_SKIPPED, AD_ERROR, AD_COMPLETE, AD_BREAK_END, PLAYLIST,
PLAYBACK_REQUEST, AUTOSTART_BLOCKED, PLAY_ATTEMPT_FAILED, CONTENT_LOADED, PLAY, PAUSE, BUFFER, TIME, SEEK_START,
SEEK_END, MUTE, VOLUME, RENDITION_UPDATE, ERROR, COMPLETE, PLAYLIST_COMPLETE, FULLSCREEN, PLAYER_RESIZE, VIEWABLE,
CAST
];

export const AUCTION_AD_LOAD_ATTEMPT = 'auctionAdLoadAttempt';
export const AUCTION_AD_LOAD_ABORT = 'auctionAdLoadAbort';
export const BID_IMPRESSION = 'bidImpression';
export const BID_ERROR = 'bidError';

export const videoEvents = {
SETUP_COMPLETE,
SETUP_FAILED,
DESTROYED,
AD_REQUEST,
AD_BREAK_START,
AD_LOADED,
AD_STARTED,
AD_IMPRESSION,
AD_PLAY,
AD_TIME,
AD_PAUSE,
AD_CLICK,
AD_SKIPPED,
AD_ERROR,
AD_COMPLETE,
AD_BREAK_END,
PLAYLIST,
PLAYBACK_REQUEST,
AUTOSTART_BLOCKED,
PLAY_ATTEMPT_FAILED,
CONTENT_LOADED,
PLAY,
PAUSE,
BUFFER,
TIME,
SEEK_START,
SEEK_END,
MUTE,
VOLUME,
RENDITION_UPDATE,
ERROR,
COMPLETE,
PLAYLIST_COMPLETE,
FULLSCREEN,
PLAYER_RESIZE,
VIEWABLE,
CAST,
};
Loading