Ad discrepancies are the delta in ad performance data between two parties; they usually oppose different monetization partners (e.g., SSP vs. ad server). They can also happen between the sell-side and the buy-side. In this article, we will only focus on the first type.
Discrepancies have always existed in the ad tech industry. They mainly occur due to the use of different tools and calculation methods, and due to the intricate connection between various technologies.
Understanding the sources of ad discrepancies can be a very challenging process. Many publishers have a hard time figuring out the difference between the bill to be paid at the end of the month and the data reported by the ad server.
Consolidating data is cumbersome, especially when you don’t have the granularity you need to get to the bottom of things, and even when you have the right granularity, it can be challenging to figure out which actions should be taken to fix the problem.
In this article, we will tackle some of the main causes of ad discrepancies and how to solve them.
We know, as a matter of fact, that some discrepancies occur because the ad server and SSPs use different criteria to calculate ad impressions and ad delivery data.
For this example, let’s suppose that, as a publisher, you are making several SSP’s compete for a specific out-stream ad unit. From your header bidding wrapper point of view, the SSP has served 1 million impressions and generated 1000€ in revenue. Still, if we refer to the SSP, we’ll see that it only reports 500.000 impressions and 500€ of revenues. Meaning half of your revenues have evaporated because the SSP only considers as impressions the ads that have been viewed.
Thus, the competition is not fair, that is, half of the 1 million auctions mentioned above, shouldn’t have been won by this SSP since they were not paid. The SSP took 1M impressions but only paid for 500K; its CPM was artificially inflated. In this case, the impressions that the SSP had not paid could have been won by another header bidding partner, and you could have made 500€ or 600€ additional daily revenue.
Solution: Set up a bid adjustment module in your wrapper, the bid adjustment module will divide in half all bids coming from this specific SSP to reestablish fair competition. Keep in mind that you should always check with your partner’s account manager to be aware of each partner’s calculation methods and specificities.
Suppose you connect a new partner in your header bidding wrapper, the new SSP bids in dollars, and the rest of the SSPs bid in euros. We are comparing dollars and euros to designate the winning bidder for an auction, so the SSP, which bids in dollars, has a competitive advantage as dollars are worth less than euros.
Here again, the competition is not fair, and it is biased; this will create discrepancies since your ad server will count 1000€, and the SSP will only count 900€. Once again, the SSP is taking bids it shouldn’t have won.
Solution: Set-up a conversion module.
This example is very similar to the previous one; there are some SSPs that bid in net amounts while some other bid in gross amounts, the latest have a clear competitive advantage over the others.
Solution: Set-up a bid adjustment module. In this case, the bid adjustment module will scale down the bid before it enters the auction to make sure the bidder’s revenue share has been removed.
Various set-up issues, from the publisher’s side, can affect how header bidding partners count impressions. For example, bad ad refresh implementation can lead to an SSP not counting the impressions it actually serves. We’ve also seen set-up issues, where ads were not properly served even when the bidder won the auction, from the ad server point of view there is an impression, but the bidder won’t pay for it as it wasn’t actually served.
If I am not monitoring discrepancies, there is no way I can realize this before it impacts my ad revenues.
Solution: While implementing new monetization techniques, you always have to test and QA what you implement with as much granularity as possible so you don’t miss any bug or implementation issue that can cause discrepancies.
Every day we see a new monetization partner pop on the market, not all of them are legit, and you cannot trust all the techs on the market, and let’s not be afraid to say it, there are some crooks out there. From our experience, we’ve already seen differences going up to 50 times between what the SSP claims to have served and what it really served.
Solution: We cannot stress it enough, but measuring and monitoring are key. You should calculate and check discrepancies between the ad server and what the bidders report themselves at least once every month, and define a tolerance threshold above which you should absolutely take action.
Once you have spotted a discrepancy, you can find ways to resolve it, but the more challenging part is to be aware that it exists, and have the right tools and the right granularity to drill down to the root cause of the problem.
Some tools like Google Ad Manager, allow you to check these deltas, but sadly, they don’t allow you to understand where they come from. Monitoring tools are a very efficient way to deal with discrepancies.
To sum it up, you can’t fix what you don’t know is broken, and even when you know it is broken, you have to be well geared to get to the bottom of the issue.
Once you’ve set up and learned how to use the analytics brick of your ad stack, the next step to optimise your revenue could be Ad Refresh. While many managed wrappers allow for an easy refresh set-up, some common mistakes can still be made. Learn how to avoid them by reading our post "Ad Refresh : Should you favor CPM or revenue ?".
But your optimisation doesn’t stop there: the slightest misconfiguration may have huge consequences on your programmatic revenue as a publisher. We’ve recently gone over a typical Header Bidding integration issue use case to make sure that each publisher stops leaving money on the table once they’ve set up their monetisation stack.