90 lines
2.2 KiB
JavaScript
90 lines
2.2 KiB
JavaScript
![]() |
|
||
|
var Ads = function(player,settings){
|
||
|
|
||
|
var ads = this;
|
||
|
//console.log(ads);
|
||
|
ads.ad_id = settings.ad_id;
|
||
|
ads.ad_code = settings.ad_code;
|
||
|
ads.autoplay = settings.autoplay;
|
||
|
ads.player = player;
|
||
|
ads.init();
|
||
|
}
|
||
|
|
||
|
Ads.prototype.init = function (){
|
||
|
var ads = this;
|
||
|
console.log("Fuck : "+navigator.userAgent);
|
||
|
var startEvent = 'click';
|
||
|
if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) ||navigator.userAgent.match(/Android/i))
|
||
|
{
|
||
|
console.log("iphone/Android");
|
||
|
//startEvent = 'tap';
|
||
|
}
|
||
|
|
||
|
if (!ads.autoplay){
|
||
|
ads.player.one(startEvent, ads.bind(ads, ads.initialize));
|
||
|
}
|
||
|
|
||
|
ads.events = [
|
||
|
google.ima.AdEvent.Type.ALL_ADS_COMPLETED,
|
||
|
google.ima.AdEvent.Type.CLICK,
|
||
|
google.ima.AdEvent.Type.COMPLETE,
|
||
|
google.ima.AdEvent.Type.FIRST_QUARTILE,
|
||
|
google.ima.AdEvent.Type.LOADED,
|
||
|
google.ima.AdEvent.Type.MIDPOINT,
|
||
|
google.ima.AdEvent.Type.PAUSED,
|
||
|
google.ima.AdEvent.Type.STARTED,
|
||
|
google.ima.AdEvent.Type.THIRD_QUARTILE
|
||
|
];
|
||
|
|
||
|
ads.options = {
|
||
|
id: ads.player.id_,
|
||
|
nativeControlsForTouch: false
|
||
|
};
|
||
|
|
||
|
ads.player.ima(ads.options,this.bind(this, this.adsManagerLoadedCallback));
|
||
|
if (ads.autoplay){
|
||
|
ads.initialize();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Ads.prototype.initialize = function(){
|
||
|
var ads = this;
|
||
|
ads.player.ima.initializeAdDisplayContainer();
|
||
|
ads.player.ima.setContent(null, ads.ad_code, true);
|
||
|
ads.player.ima.requestAds();
|
||
|
ads.player.play();
|
||
|
}
|
||
|
|
||
|
Ads.prototype.adsManagerLoadedCallback = function() {
|
||
|
var ads = this;
|
||
|
ads.player.ima.addEventListener('start',function(){
|
||
|
ads.update_impressions(ads.ad_id);
|
||
|
});
|
||
|
for (var index = 0; index < ads.events.length; index++) {
|
||
|
ads.player.ima.addEventListener(
|
||
|
ads.events[index],
|
||
|
ads.bind(ads, ads.onAdEvent));
|
||
|
}
|
||
|
ads.player.ima.start();
|
||
|
}
|
||
|
|
||
|
Ads.prototype.onAdEvent = function(event) {
|
||
|
console.log('Ad event: ' + event.type);
|
||
|
}
|
||
|
|
||
|
Ads.prototype.update_impressions = function(ad_id){
|
||
|
update_ad_imp(ad_id);
|
||
|
}
|
||
|
|
||
|
Ads.prototype.bind = function(thisObj, fn) {
|
||
|
return function() {
|
||
|
fn.apply(thisObj, arguments);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var cb_ultimate_ads = function(settings){
|
||
|
|
||
|
var ultimate_ads = new Ads(this,settings);
|
||
|
}
|
||
|
videojs.plugin('cb_ultimate_ads',cb_ultimate_ads);
|