Google Publisher Console is an amazing tool for diagnosing delivery issues in you Google Ad Manager set-up. It’s simple to use and will give you information about any problems Ad Manager is encountering, but it isn’t always obvious what action needs to taken to resolve those issues. This post looks at one of the more common, and potentially expensive warnings: googletag.defineSlot was called more times than there are DIVs in the DOM associated with ad slots while in Single Request Mode. This will impact impression counts.
What the “called more times than there are DIVs in the DOM” warning means
The warning googletag.defineSlot was called more times than there are DIVs in the DOM associated with ad slots while in Single Request Mode is shown on Google Publisher Console under the Page Request tab. It comes with the warning that this will impact impression counts, which is true but falls short of explaining the potential impact of the problem.
The standard Google Publisher tags used by Google Ad Manager come in two parts. The first part appears in the head of the document and defines the units that will be used on that page. The second part is a snippet for each point where an ad will appear. This warning occurs when more units are defined than are subsequently called on the page. The most common cause of this that we see is when different page types use different units and all the units used across the site are called in every page header whether they will be used or not.
As the warning suggests, this will impact impression reporting. If called using SRA (more on this later), Ad Manager will try to fill each defined Slot with an ad, whether it is displayed or not. Where it is successful an impression will be counted even when one is not shown. This can throw off reporting, but there are also more significant consequences to consider.
The impact on reporting
Impact on reporting of course throws off impression count, but raw impressions is rarely the metric to get the most attention. More problematic is that the inflated impressions will cause more vital metrics to be rendered useless.
CPM/RPM figures are a good example. If an impression count is doubled by poor set-up then CPM/RPM numbers will be halved. This makes it difficult to make informed decisions on optimising performance.
The impact on Google Monetization (formerly Ad Exchange)
There is no official word on how unused defined slots impact performance through their Ad Exchange and Exchange Bidding. However, the fact that reports run through the exchange show the unseen impressions being counted is strong evidence that it has an impact. If appears that the ad exchange auction runs and usual when unused slots are eligible for Google Monetization. This results in poor CPM performance and low Active View results.
Defining unused Slots can impact revenue
Defining and not displaying slots isn’t just a reporting technicality. Our experience at OKO is that it definitely suppresses revenue and fixing the issue of having unused slots will generally improve revenue – sometimes quite significantly. It would appear that the issue can impact revenue in a number of ways.
- Exchange buyers discouraged by poor Active View metrics : Buyers don’t want to spend money on poor quality inventory. We know that Active View numbers are impacted by the inflated impression count of unused slots, and this appears to impact demand and bids for such inventory.
- All buyers discouraged by poor viewability : Buyers, both through Google and other channels (such as header bidding partners) monitor inventory performance in order to ensure that their bids are inline with inventory quality. If buyers are winning impressions on unused Slots then those impressions are not getting seen and buyers will adjust their bids to compensate or even block the domain completely.
- Inventory being flagged as suspicious : Serving impressions that are not seen by humans is a favourite tactic of fraudsters. Unused slots can appear a lot like fraudulent activity and publishers can find themselves blacklisted as a result.
Solution 1 : Only define ads that will be used
The best solution is the simplest sounding: Only define slots on a page if they are going to be used on that page. Exactly how you achieve that on your site will depend both on how you site is built and how your inventory is structured. Examples include moving the definitions into specific templates, or adding logic to determine with units will be defined on each type of page.
Solution 2 : Reuse your ad units
If it is difficult to alter which Slots will be defined on a page by page basis, the answer might be to simplify your inventory. With a simpler inventory structure, utilising responsive units and key-value pairs, it may be possible to use the same definitions all pages without redundancy.
Solution 3 : Disable Single Request Architecture
Unused Slots are only a problematic when using Ad Managers Single Request Architecture. Single Request Architecture, or SRA, packages all the slots on the page into a single call to Google Ad Manager. This is more efficient than sending multiple requests, so is faster than the alternative. The down side is that Ad Manager doesn’t know which Slots will be used when the request is made, which is where this problem arises.
Although SRA is generally recommended, it can be disabled. Simply removing the line googletag.pubads().enableSingleRequest(); from the Ad Manager snippet will disable SRA and should make the “called more times than there are DIVs in the DOM” warning disappear. Other effects, such as suppressed bids, won’t be instantly fixed by will follow.
Further help with Ad Manager issues
Spotting and resolving issues like this is all part of the service for publishers that work with OKO. We help publishers earn more from the ads on their site, working with them to ensure that they have a competitive, profitable and well-optimised ad serving set-up. If you run an ad funded website and would benefit from having an expert team working to increase your ad revenue you can learn more about what we do here.