aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plugins/ads.js
diff options
context:
space:
mode:
authorSam Potts <sam@potts.es>2019-01-26 16:31:47 +1100
committerSam Potts <sam@potts.es>2019-01-26 16:31:47 +1100
commitc44351507f0a06578a1fee10185117e7df64ece9 (patch)
tree9b7afe1e0378ce80e3efaadfe5fc7041926d68db /src/js/plugins/ads.js
parentc577eb01cea0cb2c742a8cbd10909f63b869cd4e (diff)
downloadplyr-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.js29
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', () => {