Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Neto committed Feb 4, 2025
1 parent bec77e3 commit 3148042
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 9 deletions.
36 changes: 32 additions & 4 deletions plugin/PlayerSkins/events/playerAdsEvents.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ player.on('adsready', function () {
logAdEvent('AdStarted');
});

player.ima.addEventListener(google.ima.AdEvent.Type.LOADED, function() {
console.log('ADS: IMA SDK: vmap_ad_scheduler: Ad LOADED.');
});

adsManager.addEventListener(google.ima.AdEvent.Type.FIRST_QUARTILE, function () {
console.log('ADS: IMA SDK: Ad reached first quartile.');
logAdEvent('AdFirstQuartile');
Expand All @@ -69,6 +65,7 @@ player.on('adsready', function () {
adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, function () {
console.log('ADS: IMA SDK: Ad completed.');
logAdEvent('AdCompleted');
isAdPlaying = false;
player.play();
});

Expand Down Expand Up @@ -102,6 +99,37 @@ player.on('adsready', function () {
preloadVmapAndUpdateAdTag(_adTagUrl); // Retry ad if error
}
});

adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, function (event) {
console.log('vmap_ad_scheduler: Ad loaded successfully');
});

adsManager.addEventListener(google.ima.AdEvent.Type.ALL_ADS_COMPLETED, function () {
console.log('vmap_ad_scheduler: All ads completed');
isAdPlaying = false;
});

adsManager.addEventListener(google.ima.AdEvent.Type.AD_ERROR, function (event) {
console.error('vmap_ad_scheduler: Error loading ad:', event.getError());
isAdPlaying = false;
player.play(); // Resume main content if ad fails
});

adsManager.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, function (event) {
console.log('vmap_ad_scheduler: Ads Manager Loaded');

var adsManager = event.getAdsManager(player);
var cuePoints = adsManager.getCuePoints();

if (!cuePoints || cuePoints.length === 0) {
console.warn('vmap_ad_scheduler: No ads found in VAST response');
isAdPlaying = false;
player.play(); // Resume main content
} else {
console.log('vmap_ad_scheduler: Ad slots found:', cuePoints);
}
});

});

// Event fired if there's an error during ad playback
Expand Down
7 changes: 6 additions & 1 deletion plugin/PlayerSkins/events/playerAdsFunctions.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,12 @@ function forceUserClickToPlayAd() {
if (forceUserClickToPlayAdAdding) {
return false;
}
forceUserClickToPlayAdAdding = true;
if($('#forceUserClickToPlayAdAdOverlay').length){
return false;
}
setTimeout(() => {
forceUserClickToPlayAdAdding = true;
}, 100);
console.log('vmap_ad_scheduler: forceUserClickToPlayAd');

// Create an overlay message
Expand Down
42 changes: 38 additions & 4 deletions plugin/PlayerSkins/events/vmap_ad_scheduler.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ if (typeof _adTagUrl === 'string') {
var adBreaks = xmlDoc.getElementsByTagName('vmap:AdBreak');
Array.from(adBreaks).forEach(adBreak => {
var timeOffset = adBreak.getAttribute('timeOffset');
console.log('vmap_ad_scheduler: timeOffset found', timeOffset);

//console.log('vmap_ad_scheduler: timeOffset found', timeOffset);
console.log('ADs: timeOffset found', timeOffset);
if (timeOffset === 'start') {
scheduledAdTimes.push(0);
} else if (timeOffset === 'end') {
Expand Down Expand Up @@ -45,6 +45,7 @@ player.on('ended', () => {
// Play skipped ads when the video resumes
player.on('play', () => {
if(forceUserClickToPlayAdAdding){
forceUserClickToPlayAdAdding = false;
$('#forceUserClickToPlayAdAdOverlay').remove(); // Remove overlay when play button is clicked
console.log('vmap_ad_scheduler: User clicked play, removing overlay.');
player.play();
Expand All @@ -53,7 +54,6 @@ player.on('play', () => {
}else{
console.log('vmap_ad_scheduler: forceUserClickToPlayAdAdding.', forceUserClickToPlayAdAdding);
}
forceUserClickToPlayAdAdding = false;
while (skippedAdsQueue.length > 0) {
const playSkippedAd = skippedAdsQueue.shift();
playSkippedAd();
Expand Down Expand Up @@ -82,5 +82,39 @@ player.on('adserror', () => {

// Example usage
player.on('ads-manager', function (response) {
console.log('vmap_ad_scheduler: Ads manager ready:', response.adsManager);
var adsManager = response.adsManager;
var cuePoints = adsManager.getCuePoints();
console.log('vmap_ad_scheduler: Ads manager ready - Cue Points:', cuePoints);

// Check for empty ad slots inside VMAP
if (!cuePoints || cuePoints.length === 0) {
console.warn('vmap_ad_scheduler: No ads found inside VMAP, skipping ad slot');
player.play(); // Resume video since no ads are available
}
});


// Detect when a VAST request is made inside VMAP
player.on('ads-request', function (event) {
console.log('vmap_ad_scheduler: Ad request sent to VAST URL:', event);
});

// Detect when a VAST response is received inside VMAP
player.on('ads-response', function (event) {
console.log('vmap_ad_scheduler: VAST response received:', event);

var adsManager = event.adsManager;

if (!adsManager || !adsManager.getCuePoints || adsManager.getCuePoints().length === 0) {
console.warn('vmap_ad_scheduler: VAST response has NO ADS, resuming video');
player.play(); // Resume the main video if no ads are available
} else {
console.log('vmap_ad_scheduler: VAST response contains ads:', adsManager.getCuePoints());
}
});

// Handle errors in case VAST fails to load ads
player.on('ads-error', function (event) {
console.error('vmap_ad_scheduler: VAST Ad Error:', event);
player.play(); // Resume video if there's an ad error
});

0 comments on commit 3148042

Please sign in to comment.