Skip to content

Instantly share code, notes, and snippets.

@gmcdev
Created November 1, 2017 17:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gmcdev/7b86c3c7c0f598d1384a116591e986b8 to your computer and use it in GitHub Desktop.
Save gmcdev/7b86c3c7c0f598d1384a116591e986b8 to your computer and use it in GitHub Desktop.
self.prepareMonet = function() {
trace( id + '.prepareMonet()' );
async.wait();
// monetData will exist if data was loaded but had missing/unexpected data
if( typeof monetData == 'undefined' )
self.loadMonet();
else self.loadMonetBackup();
}
// LOAD MONET DATA
self.loadMonet = function() {
trace( id + '.loadMonet()' );
var monetRequest = Monet.buildMonetRequest();
Monet.load(
monetRequest,
self.handleMonetLoadComplete,
self.loadMonetBackup
);
}
self.handleMonetLoadComplete = function( monetResponse ) {
trace( id + '.handleMonetLoadComplete()' );
// prepare monet-response for ad consumption
Monet.logEvent( 'MONET_ASSETS_LOADED' );
self.prepareMonetData(
monetResponse
);
}
// LOAD BACKUP MONET DATA
self.hasLoadedBackup = false;
//
self.loadMonetBackup = function( event ) {
trace( id + '.loadMonetBackup()' );
// attempt to load "backup.json"
new DataLoader( adParams.adPath + 'backup.json', {
onComplete: function( result ) {
Monet.logEvent( 'BACKUP_ASSETS_LOADED' );
self.hasLoadedBackup = true;
self.prepareMonetData(
JSON.parse( result.dataRaw )
);
},
onFail: function() {
Monet.logEvent( 'MONET_DATA_ERROR', { error: '"backup.json" unable to be loaded' } );
failAd();
}
}).load();
}
// PREPARE MONET DATA
self.prepareMonetData = function( monetResponse ) {
trace( id + '.prepareMonetData()' );
global.monetData = new MonetData();
monetData.init(
monetResponse
);
self.addMonetImagesToLoadQueue();
self.prepareMonetMisc();
async.done();
}
self.addMonetImagesToLoadQueue = function() {
trace( id + '.addMonetImagesToLoadQueue()' );
var imageAssets = monetData.getAssetsByType( 'image' );
for( var i in imageAssets ) {
// image id must match ad-size in order to automatically get preloaded
if( imageAssets[ i ].id.indexOf( adParams.adSize ) > -1 ) {
if( imageAssets[ i ].url != '' ) {
monetData.addLoadedImageId(
imageAssets[ i ].id,
ImageManager.addToLoad( imageAssets[ i ].url )
);
}
}
}
// add ratings bug assets
var ratingsBugAssets = monetData.getAssetsByType( 'image',
new RegExp( 'Ratings_Bug', 'i' )
);
for( var j in ratingsBugAssets ) {
if( ratingsBugAssets[ j ].url != '' ) {
monetData.addLoadedImageId(
ratingsBugAssets[ j ].id,
ImageManager.addToLoad( ratingsBugAssets[ j ].url )
);
}
}
}
// PREPARE MONET MISC
self.prepareMonetMisc = function() {
trace( id + '.prepareMonetMisc()' );
// any additional MonetData prep work can happen here, or in AdData
// -->
}
self.prepareMonet = function() {
trace( id + '.prepareMonet()' );
async.wait();
// monetData will exist if data was loaded but had missing/unexpected data
if( typeof monetData == 'undefined' )
self.loadMonet();
else self.loadMonetBackup();
}
// LOAD MONET DATA
self.loadMonet = function() {
trace( id + '.loadMonet()' );
var monetRequest = Monet.buildMonetRequest();
Monet.load(
monetRequest,
self.handleMonetLoadComplete,
self.loadMonetBackup
);
}
self.handleMonetLoadComplete = function( monetResponse ) {
trace( id + '.handleMonetLoadComplete()' );
// prepare monet-response for ad consumption
Monet.logEvent( 'MONET_ASSETS_LOADED' );
self.prepareMonetData(
monetResponse
);
}
// LOAD BACKUP MONET DATA
self.hasLoadedBackup = false;
//
self.loadMonetBackup = function( event ) {
trace( id + '.loadMonetBackup()' );
// attempt to load "backup.json"
new DataLoader( adParams.adPath + 'backup.json', {
onComplete: function( result ) {
Monet.logEvent( 'BACKUP_ASSETS_LOADED' );
self.hasLoadedBackup = true;
self.prepareMonetData(
JSON.parse( result.dataRaw )
);
},
onFail: function() {
Monet.logEvent( 'MONET_DATA_ERROR', { error: '"backup.json" unable to be loaded' } );
failAd();
}
}).load();
}
// PREPARE MONET DATA
self.prepareMonetData = function( monetResponse ) {
trace( id + '.prepareMonetData()' );
global.monetData = new MonetData();
monetData.init(
monetResponse
);
self.addMonetImagesToLoadQueue();
self.prepareMonetMisc();
async.done();
}
self.addMonetImagesToLoadQueue = function() {
trace( id + '.addMonetImagesToLoadQueue()' );
var imageAssets = monetData.getAssetsByType( 'image' );
for( var i in imageAssets ) {
// image id must match ad-size in order to automatically get preloaded
if( imageAssets[ i ].id.indexOf( adParams.adSize ) > -1 ) {
if( imageAssets[ i ].url != '' ) {
monetData.addLoadedImageId(
imageAssets[ i ].id,
ImageManager.addToLoad( imageAssets[ i ].url )
);
}
}
}
// add ratings bug assets
var ratingsBugAssets = monetData.getAssetsByType( 'image',
new RegExp( 'Ratings_Bug', 'i' )
);
for( var j in ratingsBugAssets ) {
if( ratingsBugAssets[ j ].url != '' ) {
monetData.addLoadedImageId(
ratingsBugAssets[ j ].id,
ImageManager.addToLoad( ratingsBugAssets[ j ].url )
);
}
}
}
// PREPARE MONET MISC
self.prepareMonetMisc = function() {
trace( id + '.prepareMonetMisc()' );
// any additional MonetData prep work can happen here, or in AdData
// -->
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment