diff options
author | Sam Potts <sam@potts.es> | 2019-01-26 16:31:47 +1100 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2019-01-26 16:31:47 +1100 |
commit | c44351507f0a06578a1fee10185117e7df64ece9 (patch) | |
tree | 9b7afe1e0378ce80e3efaadfe5fc7041926d68db /src/js/plugins/ads.js | |
parent | c577eb01cea0cb2c742a8cbd10909f63b869cd4e (diff) | |
download | plyr-c44351507f0a06578a1fee10185117e7df64ece9.tar.lz plyr-c44351507f0a06578a1fee10185117e7df64ece9.tar.xz plyr-c44351507f0a06578a1fee10185117e7df64ece9.zip |
Plugin tweaks for ads and previews
Diffstat (limited to 'src/js/plugins/ads.js')
-rw-r--r-- | src/js/plugins/ads.js | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/js/plugins/ads.js b/src/js/plugins/ads.js index 375fdc13..c643c5dd 100644 --- a/src/js/plugins/ads.js +++ b/src/js/plugins/ads.js @@ -22,7 +22,7 @@ class Ads { */ constructor(player) { this.player = player; - this.publisherId = player.config.ads.publisherId; + this.config = player.config.ads; this.playing = false; this.initialized = false; this.elements = { @@ -49,8 +49,13 @@ class Ads { } get enabled() { + const { config } = this; + return ( - this.player.isHTML5 && this.player.isVideo && this.player.config.ads.enabled && !is.empty(this.publisherId) + this.player.isHTML5 && + this.player.isVideo && + config.enabled && + (!is.empty(config.publisherId) || is.url(config.tagUrl)) ); } @@ -95,8 +100,14 @@ class Ads { this.setupIMA(); } - // Build the default tag URL + // Build the tag URL get tagUrl() { + const { config } = this; + + if (is.url(config.tagUrl)) { + return config.tagUrl; + } + const params = { AV_PUBLISHERID: '58c25bb0073ef448b1087ad6', AV_CHANNELID: '5a0458dc28a06145e4519d21', @@ -233,7 +244,7 @@ class Ads { const seekElement = this.player.elements.progress; if (is.element(seekElement)) { - const cuePercentage = 100 / this.player.duration * cuePoint; + const cuePercentage = (100 / this.player.duration) * cuePoint; const cue = createElement('span', { class: this.player.config.classNames.cues, }); @@ -273,6 +284,7 @@ class Ads { // Retrieve the ad from the event. Some events (e.g. ALL_ADS_COMPLETED) // don't have ad object associated const ad = event.getAd(); + const adData = event.getAdData(); // Proxy event const dispatchEvent = type => { @@ -368,6 +380,12 @@ class Ads { dispatchEvent(event.type); break; + case google.ima.AdEvent.Type.LOG: + if (adData.adError) { + this.player.debug.warn(`Non-fatal ad error: ${adData.adError.getMessage()}`); + } + break; + default: break; } @@ -396,9 +414,8 @@ class Ads { this.loader.contentComplete(); }); - this.player.on('seeking', () => { + this.player.on('timeupdate', () => { time = this.player.currentTime; - return time; }); this.player.on('seeked', () => { |