Ad Unit Fired Before Header Bidding. Follow These Steps To Fix It

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.

Troubleshooting

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.

Back to Notification Center