diff --git a/src/controller.js b/src/controller.js index 790fe88c..c25b20ee 100644 --- a/src/controller.js +++ b/src/controller.js @@ -86,6 +86,7 @@ Controller.IMA_DEFAULTS = { adLabel: 'Advertisement', adLabelNofN: 'of', showControlsForJSAds: true, + requestMode: 'onLoad', }; /** diff --git a/src/player-wrapper.js b/src/player-wrapper.js index 63d2df2c..8faa1073 100644 --- a/src/player-wrapper.js +++ b/src/player-wrapper.js @@ -139,6 +139,11 @@ const PlayerWrapper = function(player, adsPluginSettings, controller) { this.vjsPlayer.on('readyforpreroll', this.onReadyForPreroll.bind(this)); this.vjsPlayer.ready(this.onPlayerReady.bind(this)); + if (this.controller.getSettings().requestMode === 'onPlay') { + this.vjsPlayer.one('play', + this.controller.requestAds.bind(this.controller)); +} + this.vjsPlayer.ads(adsPluginSettings); }; diff --git a/src/sdk-impl.js b/src/sdk-impl.js index 839a88a8..45b08fb8 100644 --- a/src/sdk-impl.js +++ b/src/sdk-impl.js @@ -553,9 +553,10 @@ SdkImpl.prototype.onPlayerReadyForPreroll = function() { SdkImpl.prototype.onPlayerReady = function() { this.initAdObjects(); - if (this.controller.getSettings().adTagUrl || - this.controller.getSettings().adsResponse) { - this.requestAds(); + if ((this.controller.getSettings().adTagUrl || + this.controller.getSettings().adsResponse) && + this.controller.getSettings().requestMode === 'onLoad') { + this.requestAds(); } };