Price floors have been around since the inception of programmatic advertising.

Publishers and their ad operations teams put price floors in place to increase revenue for highly viewable inventory, increase competition between bidders, and help mitigate ad fraud. Using price floors to combat fraud, however, goes hand-in-hand with the long-held belief that ad fraud is perpetrated mostly against lower value impressions. The accepted logic is that by setting a price floor at the lowest CPM you’re willing to accept for your inventory, you’ll not only drive up your eCPM but weed out a lot of the bad ads in the process. Seems like a sound plan, right? Not entirely.

To better understand if setting arbitrary hard price floors could, in fact, weed out bad ads, Freestar dug into our data analyzing 200 million impressions filled by 11 different bidders across our sites. We discovered that each bidder had distinct variances in bad ad frequency by bid bucket. Not only that, each bidder saw spikes in bad ad frequency well above the low CPM price floors set by many publishers.

The graphs below show the frequency of bad ads (y-axis) by $0.10 bid buckets ranging from $0 to $50+ CPMs (x-axis).

What this data tells us is that while setting price floors at sub $1.00 price buckets can weed out some bad ads, this strategy is largely ineffective in stopping ad fraud from getting through to publisher’s sites. As seen above, ad fraud is perpetrated at all different bid levels with strong variances from bidder to bidder. Not only that, publishers are potentially decreasing their fill rates, and ultimately their net profit,  by utilizing hard price floors at lower CPMs. Not all bids at low CPMs are fraudulent, and by flooring, publishers lose out on those impressions ever being filled.

As the programmatic landscape continues to evolve, so to should the technologies and methods we use.

At Freestar, we’re utilizing data science to block bids at specific bid buckets based on the bad ad frequency by the individual bidder. This method results in no negative effect on fill rates, while allowing us to decrease the frequency of bad ads that ever reach our partner sites. Here’s how this works:

Site A makes a call to the ad server and Bidders 1, 3, 5 and 8 return the below bids:
Bidder 1 Bidder 3 Bidder 5 Bidder 8

Taking into account just the bid data it appears Bidder 8 would win with a CPM of $3.07.  However, utilizing the sample of bad ad data above it’s clear in the bid bucket of $3.00-$3.10 Bidder 8 is much more likely to deliver a bad ad than the other bidders. In this scenario, Freestar’s machine learning would have kicked in stopping only Bidder 8 from returning a bid at this price due to its high frequency of ad fraud at this level, while still allowing other bidders to step in to fill the impression.

Site A would still receive a $2.87 CPM from Bidder 1 in this auction, only $0.20 less than the revenue they would have received if Bidder 8 won, but with a far less likely chance a bad ad will have been delivered to their site. To verify our findings are correct, our algorithms continuously sample each bucket to verify which bids to block for each bidder decreasing overall frequency of bad ads by 50x across our partner sites. 

As the programmatic landscape continues to evolve, so to should the technologies and methods we use. Changing price floors to not only be dynamic but fluid by bidder and by price bucket is the next step in improving the digital advertising ecosystem for publishers.