Price Granularity defines the accuracy with which the Prebid winning bid competes in the adServer. When a bid wins the Prebid auction, Prebid will round down the CPM to the nearest number according to the configured granularity. It will then pass on that information as key-value to the adServer in order to activate the corresponding line item, thus allowing Prebid to compete within the adServer with a value (or “rate”) close to the winning CPM.
For example, if you have a 0.01$ granularity, a winning bid with a CPM of 0.019$ will trigger the 0.01 line item, while a winning bid with a CPM of 0.022 will trigger the 0.02 line item.
On your website, in the dev console, you can check your granularity directly from the Prebid config:
pbjs.getConfig( “priceGranularity” )
Note: If the result is “custom”, run this to find out what the custom granularity is:
pbjs.getConfig( “customPriceBucket” )
Other possible values are:
Find out all of the possibilities in the Prebid documentation
As Prebid rounds down the CPM, too broad of a granularity can lead to revenue loss. For example, let’s say my granularity is “low”. Then, any winning bid from Prebid with a CPM between 0.5$ and 0.99$ will trigger the 0.5 line item in your adserver. Therefore, this bid can be beaten by any other demand in your adServer that is deemed more valuable than 0.5$, even if that demand is worth less than the original CPM.
Having a high granularity allows you to make sure you are not leaving money on the table. However, you risk reaching your adServer’s limit on the number of line items, prompting you to change your configuration in the future.
If you cap too soon, you may lose valuable opportunities. Indeed, any winning bid with a CPM that is above your highest declared granularity will be rounded down to it.
This is the most important issue that one needs to watch out for. If the granularity you declare in your Prebid config does not match your line items in your adServer, then your targeting will miss and Prebid will not be able to compete. You can make sure that there is no mismatch by checking if all your prebid line items activate at least once. The main reason for mismatch that we have come across at Pubstack, while auditing our Publisher’s adstacks, is the deprecation of the “min” attribute in custom Price Buckets. Indeed, since Prebid 3.0, the “min” is not used anymore, and instead it’s the “max” of the previous bucket that is considered as “min” by Prebid. Because of that, for example, the following custom buckets will lead to a mismatch:
Ideally you’d want your granularity to be very high on the lower price bands and lower on the higher price bands. Of course, how low and how high depends on your bid distribution: if you’re making most of your impressions on high CPMs, then you’ll want to keep more of a high granularity to get most of the value. You can access your bid distribution through a GAM report using the brand new bid range metrics. At Pubstack, we provide our publishers with easy access to an even more detailed and granular bid distribution through our Price Buckets report.
Here is an example of a custom Price Granularity for mostly high CPMs:
And if you want to know more about how you can set up a winning Price Granularity strategy, feel free to book a call with one of our Prebid experts here.
Now that you know how to manage your price granularity to stop leaving money on the table, it’s important that you learn to avoid another programmatic pitfall: the double timeout trap, which you can read all about here Timeouts Simplified: How to avoid falling into the Dual Timeouts Trap.
As you’ve now seen, a couple minor fixes can make a huge difference to the revenue generated across your inventory. Another small yet consequent issue is defective targeting, when the highest bidder is not necessarily the bid winner. This seems like a no-brainer to solve, yet many publishers are still leaving money on the table by not using monitoring their stack with sufficient granularity to troubleshoot. Read all about it in our Business Case : How to solve defective targeting issues ?