Header bidding ad demo

Sample implementation

#player { max-width: 40em; width: 100%; float: left; } var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; const BIDDER1_PROVIDER = "appnexus"; const BIDDER1_PLACEMENT_ID = "13232361"; var adtag = null var timeout = 2000 window.prebid_fetcher = function() { if (adtag) return Promise.resolve(adtag) return new Promise(function (resolve) { setTimeout(function() { resolve(adtag) }, timeout) }) } var videoAdUnit = { code: "video1", sizes: [640,480], mediaTypes: { video: { context: "instream", playerSize: [640, 480], mimes: ["video/mp4"], protocols: [1, 2, 3, 4, 5, 6, 7, 8], playbackmethod: [2], skip: 1 } }, bids: [ { bidder: BIDDER1_PROVIDER, params: { placementId: BIDDER1_PLACEMENT_ID } } ] }; pbjs.que.push(function(){ pbjs.addAdUnits(videoAdUnit); // add your ad units to the bid request pbjs.setConfig({ debug: true, cache: { url: "https://prebid.adnxs.com/pbc/v1/cache" } }); pbjs.requestBids({ bidsBackHandler: function(bids) { var videoUrl = pbjs.adServers.dfp.buildVideoUrl({ adUnit: videoAdUnit, params: { iu: "/19968336/prebid_cache_video_adunit", cust_params: { section: "blog", anotherKey: "anotherValue" }, output: "vast" } }); adtag = videoUrl; } }); }); var player = flowplayer('#player', { src: "//edge.flowplayer.org/drive.mp4", title: "Flowplayer demo", description: "Demo showing ads", ima: { ads: [{ time: 0, adTag: "flowplayer://prebid_fetcher" }] } });

Requirements

You need a valid prebid provider and bidder id.

Libraries

<script async src="//cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js"></script>
<link rel="stylesheet" href="//cdn.flowplayer.com/releases/native/3/stable/style/flowplayer.css">
<script src="//cdn.flowplayer.com/releases/native/3/stable/flowplayer.min.js"></script>
<script src="//cdn.flowplayer.com/releases/native/3/stable/plugins/ads.min.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>

HTML code

 <div id="player"></div>

Javascript

Prebid init

The prebid intitialization, put this in the page header.

<script>
 var pbjs = pbjs || {};
 pbjs.que = pbjs.que || [];
 const BIDDER1_PROVIDER = 'appnexus';
 const BIDDER1_PLACEMENT_ID = '13232361';
 // The ad tag in Flowplayer can be actual ad tag or promise to an ad tag. 
 // We return the ad tag if it is available before the player is ready to play 
 // Otherwise the player waits for 2 secs for tag to be available.
 var adtag = null
 var timeout = 2000
 window.prebid_fetcher = function() {
 if (adtag) return Promise.resolve(adtag)
 return new Promise(function (resolve) {
 setTimeout(function() {
 resolve(adtag)
 }, timeout)
 })
 }
 /*
 Prebid Video adUnit
 */
 var videoAdUnit = {
 code: 'video1',
 sizes: [640,480],
 mediaTypes: {
 video: {
 context: 'instream',
 playerSize: [640, 480],
 mimes: ['video/mp4'],
 protocols: [1, 2, 3, 4, 5, 6, 7, 8],
 playbackmethod: [2],
 skip: 1
 }
 },
 bids: [
 {
 bidder: BIDDER1_PROVIDER,
 params: {
 placementId: BIDDER1_PLACEMENT_ID
 }
 }
 ]
 };
 pbjs.que.push(function(){
 pbjs.addAdUnits(videoAdUnit); // add your ad units to the bid request
 pbjs.setConfig({
 debug: true,
 cache: {
 url: 'https://prebid.adnxs.com/pbc/v1/cache'
 }
 });
 pbjs.requestBids({
 bidsBackHandler: function(bids) {
 var videoUrl = pbjs.adServers.dfp.buildVideoUrl({
 adUnit: videoAdUnit,
 params: {
 iu: '/19968336/prebid_cache_video_adunit',
 cust_params: {
 section: "blog",
 anotherKey: "anotherValue"
 },
 output: "vast"
 }
 });
 adtag = videoUrl;
 }
 });
 });
</script>

Flowplayer configuration

<script type="text/javascript">
 var player = flowplayer('#player', {
 src: "//edge.flowplayer.org/drive.mp4",
 title: "Flowplayer demo",
 description: "Demo showing ads",
 ima: {
 ads: [{
 time: 0, // preroll
 adTag: 'flowplayer://prebid_fetcher' // this will try to call window.prebid_fetcher
 ]
 },
 token:"eyJraWQiOiJZSVI0VVJZODA2TGoiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjIjoie1wiYWNsXCI6NixcImlkXCI6XCJZSVI0VVJZODA2TGpcIn0iLCJpc3MiOiJGbG93cGxheWVyIn0.YUoY8b2vl1Z15PikwgYeWQ8Cp85C-TvtmwIJ_UFxpfAYYH8yiiUrhmd3SaY_qb3AvVDz45xVV6R9wizYl-NRGQ"
 });
</script>

Replace the Flowplayer token with your own, and the prebid parameters with the ones you received from your ad partner.

Standalone demo

prebid standalone demo

Results
  • [[ crumb.name ]]

On this page

AltStyle によって変換されたページ (->オリジナル) /