Tuesday, November 29, 2022
HomeMoney SavingPortfolio Builder: Lesson 3

Portfolio Builder: Lesson 3


Watch: Portfolio builder lesson 3

! ( operate ( r, u, m, b, l, e ) {
( r._Rumble = b ),
r[ b ] ||
( r[ b ] = operate () {
( r[ b ]._ = r[ b ]._ || [] ).push( arguments );
if ( r[ b ]._.size == 1 ) {
( l = u.createElement( m ) ),
( e = u.getElementsByTagName( m )[ 0 ] ),
( l.async = 1 ),
( l.src=”https://rumble.com/embedJS/ulkdw1″ +
/* exchange [PUBID] */ ( arguments[ 1 ].video
? ‘.’ + arguments[ 1 ].video
: ” ) +
‘/?url=” +
encodeURIComponent( location.href ) +
“&args=” +
encodeURIComponent(
JSON.stringify( [].slice.apply( arguments ) )
) ),
e.parentNode.insertBefore( l, e );
}
} );
} )( window, doc, “script’, ‘Rumble’ );
/* On this operate you come back the URL to the advert. The ‘advert’ variable would be the advert requested, which on this instance will be ‘preroll_1’, ‘preroll_2’, and so on.
* This operate will get referred to as in bursts, with all of the waterfall IDs of a given advert in succession
* Will probably be referred to as once more with the subsequent advert unit 5 seconds after the primary waterfall advert is required by the participant within the present advert
*/
operate request_ad( advert, callback ) {
// console.log( ‘put together advert ‘ + advert );

/* when advert is prepared you employ the callback operate with the huge tag URL */
callback( advert );
}

( operate () {
/* configuration part */
var DEBUG = true;
var video_id = ‘vkem8j’
? ‘vkem8j’
: ”;
var player_id = ‘vkem8j’ ? ‘videoplayer-‘ + ‘vkem8j’ : ”;
var ad_timeout = 1500; /* variety of ms the participant will await an advert, not the identical as prebid timeout */
var player_div = doc.getElementById( player_id );
var autoplay_control=”2″;
var mute_control=””;
var setup_ads = operate () {
/* arrange advert factors for every new video, you’ll be able to change this based mostly in your wants, that is simply an instance */

/* within the array of advertisements you’ll be able to present a URL or an ID to suggest which advert we’d like */
insert_ad( 0, [
‘https://pubads.g.doubleclick.net/gampad/ads?iu=/57452754/Rumble_Video&description_url=http%3A%2F%2Fmoneysense.ca&tfcd=0&npa=0&sz=400×300%7C640x480&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=”,
] );

// insert_ad( “25%’, [ ‘midroll_25_1’ ] );

// if ( player_div.clientWidth > 600 ) {
// insert_ad( ‘50%’, [ ‘midroll_50_big_1’, ‘midroll_50_big_2’ ] );
// } else {
// insert_ad( ‘50%’, [ ‘midroll_50_1’ ] );
// }
};

/* Don’t change beneath: code implementing prebid assist, you shouldn’t have to vary what’s beneath */

var api;
var ads_queue = []; /* all advertisements outlined, we’ll request subsequent set of advertisements because the earlier one is finished */
var ready_ads = {}; /* as advertisements change into prepared, we’ll populate this for the participant to make use of */
var prepare_on;

var loaded_new_video = operate () {
if ( DEBUG )
// console.log( ‘Establishing advert cuepoints’ );
ready_ads = {};
ads_queue = [];

api.clearAds();
setup_ads();

prepare_next_ads();
};

var insert_ad = operate ( timecode, waterfall ) {
// if ( DEBUG )
// console.log(
// ‘insert_ad timecode: ‘ +
// timecode +
// ‘ , waterfall: ‘ +
// waterfall.size +
// ‘ advertisements’
// );

ads_queue.push( waterfall );
api.insertAd( timecode, waterfall );
};

var ads_request = operate ( advert ) {
var id = advert.url;
var timeout;

// if ( DEBUG ) console.log( ‘participant is prepared for: ‘ + id );
if ( prepare_on && prepare_on == id ) {
prepare_on = false;
setTimeout( operate () {
prepare_next_ads();
}, 5000 );
}

if ( typeof ready_ads[ id ] == ‘string’ ) {
/* advert is prepared, let the participant use it */
return ready_ads[ id ];
}

ready_ads[ id ] = operate ( url ) {
if ( timeout ) {
clearTimeout( timeout );
timeout = 0;
}

advert.callback( url );

ready_ads[ id ] = true;
};

timeout = setTimeout( operate () {
// if ( DEBUG ) console.log( ‘Advert : ‘ + id + ‘ has timed out’ );
ready_ads[ id ] = true;

advert.callback( false );
}, ad_timeout );

/* ask the participant to attend */
return true;
};

var prepare_next_ads = operate () {
if ( ads_queue.size == 0 ) return;

var next_ads = ads_queue.shift();

// if ( DEBUG ) console.log( ‘Making ready subsequent advert’ );

/* we’ll put together subsequent set of advertisements based mostly on this advert will get requested by the participant */
prepare_on = next_ads[ 0 ];

/* undergo the waterfall asking for advertisements */
for ( i = 0; i < next_ads.size; i++ ) {
simple_request_ad( next_ads[ i ] );
}
};

var simple_request_ad = operate ( id ) {
request_ad( id, operate ( url ) {
ad_ready( id, url );
} );
};

var ad_ready = operate ( id, url ) {
if ( typeof ready_ads[ id ] == 'operate' ) {
/* seems just like the participant is already ready for an advert */
ready_ads[ id ]( url.md );
} else if ( ready_ads[ id ] ) {
/* already an advert outlined with that id, or the participant timed out on it */
return;
}

/* have it prepared for the participant when its wanted */
ready_ads[ id ] = url;
};
// Not load something if video id will not be entered.
if ( ! video_id ) {
console.log('Please set rumble video id!');
return false;
}
/* You’ll be able to configure the participant as you see match, simply depart the player_id and api traces intact */
if ( autoplay_control ) {
Rumble( 'play', {
video: video_id,
div: player_id,
autoplay: '2',
api: operate ( api_object ) {
/* the next 4 traces are required and shouldn’t be modified */
api = api_object;
if ( ! mute_control ) {
api.mute();
} else {
api.unmute();
}
api.on( 'loadVideo', loaded_new_video );
api.on( 'adRequest', ads_request );
loaded_new_video();
},
} );
} else {
Rumble( 'play', {
video: video_id,
div: player_id,
api: operate ( api_object ) {
/* the next 4 traces are required and shouldn’t be modified */
api = api_object;
if ( ! mute_control ) {
api.mute();
} else {
api.unmute();
}
api.on( 'loadVideo', loaded_new_video );
api.on( 'adRequest', ads_request );
loaded_new_video();
},
} );
}
} )();

The submit Portfolio Builder: Lesson 3 appeared first on MoneySense.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments