This post was most recently updated on março 2nd, 2023
Your ad unit is being called before Header Bidding could take place. Your codes need to be reviewed to make sure you call Header Bidding first, before loading your ad units.
Step 1: Fix all other errors in PubGuru Ad Inspector (PGAI) and re-test
Step 2: Review the codes deployed in your source code. Revisit the instructions provided to you by your Monetizemore Account Manager.
Step 3: If you have old codes still on the site, have them removed
Step 4: A normal ON-page implementation looks something like this:
<html> <head> <script type= 'text/javascript' > // this is the code you'll need to dump on your page to integrate M2D header // bidding. when you deploy on production, remove all comments, and feel free // to minify. to deploy, you'll need to (1) decide whether you're using M2's mobile // vs desktop conditional logic and if you aren't, remove the "mobile detection" // code block below, (2) set the path to your M2D HB config as provided by your // M2 account rep, (3) make sure you update your DFP admap (the defineSlot) // code block window.googletag = window.googletag || {}; googletag.cmd = googletag.cmd || []; window.m2hb = window.m2hb || {}; m2hb.que = m2hb.que || []; m2hb.ssl = 'https: ' == document.location.protocol; window.M2_TIMEOUT = 1000; m2hb.maxRetries = 20; m2hb.retries = 0; m2hb.loadJS = function(src, async) { m2hb.loadedJS = m2hb.loadedJS || []; m2hb.loadedJS.push(src); (function() { var script = document.createElement("script"); script.async = async || true; script.type = "text/javascript"; script.src = (m2hb.ssl ? ' https: ' : ' http: ') + src; var target = document.getElementsByTagName("head")[0]; target.insertBefore(script, target.firstChild); })(); }; // (1) mobile detection -- ONLY include if your admap varies mobile vs desktop // and you want to use M2' s mobile detection // OPTIONAL m2hb.isMobile = function () { if ( typeof isMobileDevice == 'function' ) { return isMobileDevice(); } if ( typeof isMobile == 'function' ) { return isMobile(); } if (!!window.innerWidth && (window.innerWidth <= 800)) { return true ; } var mobile = false ; ( function (a){ if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob| in )i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob| do (c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de| do |t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) mobile = true ;})(navigator.userAgent||navigator.vendor||window.opera); return mobile; }; // end mobile detection if ( typeof m2hb.initAdserver == 'undefined' ) { m2hb.initAdserver = function () { if (m2hb.initAdserverSet) return ; if ( typeof m2hb.timeRemaining == 'undefined' ) { m2hb.timeRemaining = M2_TIMEOUT; } if (m2hb.timeRemaining > 0) { m2hb.timeRemaining -= 100; if (!m2hb.m2hbBidsReady) { setTimeout( function () {m2hb.initAdserver();}, 100); return ; } } if (!googletag.pubadsReady && (m2hb.retries <= m2hb.maxRetries)) { m2hb.retries++; setTimeout( function () {m2hb.initAdserver();}, 50); return ; } m2hb.initAdserverSet = true ; googletag.cmd.push( function () { m2hb.que.push( function () { m2hb.setTargetingForGPTAsync(); }); googletag.pubads().refresh(); }); }; } window.initAdserver = function () { return m2hb.initAdserver(); } // (2) M2D HB config -- change this to pub's config path. you can add conditional // logic here based on mobile/desktop or traffic segments m2hb.loadJS(' //m2d.m2.ai/0-olo.js'); // end M2D HB config googletag.cmd.push( function () { googletag.pubads().disableInitialLoad(); m2hb.disabledGptInitialLoad = true ; }); m2hb.loadJS(' //www.googletagservices.com/tag/js/gpt.js'); m2hb.initAdserver(); googletag.cmd.push( function () { // (3) DFP admap -- change pub's ad units here googletag.defineSlot( '/1234567/sampleunit1' , [[300,250]], 'div-gpt-ad-1442371043694-0' ).addService(googletag.pubads()); googletag.defineSlot( '/1234567/sampleunit2' , [[300,250]], 'div-gpt-ad-1442371043694-1' ).addService(googletag.pubads()); // end DFP admap googletag.enableServices(); }); </script> </head> <body> <div id= 'div-gpt-ad-1442371043694-0' > /1234567/sampleunit1 <br /><script type= 'text/javascript' >googletag.cmd.push( function () { googletag.display( 'div-gpt-ad-1442371043694-0' ); }); </script></div> <div id= 'div-gpt-ad-1442371043694-1' > /1234567/sampleunit2 <br /><script type= 'text/javascript' >googletag.cmd.push( function () { googletag.display( 'div-gpt-ad-1442371043694-1' ); }); </script></div> </body> </html> |
Step 5: Contact a developer or reach out to support@monetizemore.com if you need further help.
Need more help? Send us an email at support@monetizemore.com or log in to PubGuru App and use the Chat widget for immediate support.
Let our AdOps Experts do the hard work. Sign up today and unlock your revenue potential.