Learn how to optimize Prebid timeouts for publishers, enhancing monetization yield and user experience. Master the strategies for maximizing revenue.
When a Prebid auction takes place for a user, on a specific placement and a specific web page, several header bidders will be queried through bid requests (most often one bid request per bidder).
As most often several header bidders are queried, you must define a delay in your Prebid setup which is called the timeout setup (most often comprised between 500ms and 4000ms) during which all bidders will have to submit their bids. After this period of time, we consider the auction as terminated, whether the bidders have answered or not.
When you send a bid request to a header bidder, it can only lead to 3 possibilities:
Timeouts can come from different reasons:
All in all, there is no miracle solution to troubleshoot timeouts, you have to measure, test new setups and iterate until you reach the required level of optimisation.
The impact of timeouts in terms of revenue is simple to measure.
If a bidder has a 20% timeout rate, this simply means that 20% of the time it didn’t have enough time to submit its answer when a bid request was sent, whether it is a bid response or a no-bid response.
So, a timeout of 20% reduces a bidder’s bid rate by 20%, i.e. statistically you lose 20% of your bid responses.
Using the example above, in the case where our timeout rate is equal to 0% this would give:
Header Bidder Scenario 20% timeout
Header Bidder Scenario 0% timeout
As we can see, eliminating timeouts entirely results in a 12.5 percentage point bid rate increase, which is a considerable uplift for a low-effort operation, as we’re about to see.
The Prebid Timeout can be set up in one of the following ways. First, It can be specified directly within the Prebid auction:
pbjs.requestbids({ adUnitCodes: X, timeout: Y, bidsBackHandler: function () { Z }})
If not specified directly within the Prebid auction, then it will default to the value stored in pbjs.getConfig(“bidderTimeout”).
This can be easily set up or changed using pbjs.setConfig({ bidderTimeout: X }). By default, the config’s bidderTimeout value will be 3000 (ms).
To eliminate any doubt you may have during this operation, you can check the timeout value of your auctions by using the AdWizard extension.
When it comes to timeouts, there is a specific faulty configuration that can lead to a substantive loss of revenue. On some setups, a second timeout is used on top of the Prebid Timeout: the Failsafe Timeout.
This Failsafe Timeout is meant to activate in case Prebid encountered a loading issue. An example can be found on Prebid’s quick start page. It usually looks something like this:
setTimeout( function() {
sendAdserverRequest();
}, failsafeTimeout )
If reached, it immediately shuts down the Prebid auction, without waiting for a winningBid to be selected, and directly hands the opportunity over to the adServer, usually with an empty adServerTargeting – thus not allowing Prebid to compete in GAM.
The problem arises when the Failsafe Timeout is equal or lower than the Prebid Timeout. In that case, there is a risk that when a single SSP times out, instead of the Prebid Timeout triggering and the auction concluding with one less bidder, the Failsafe Timeout triggers and sends the auction to GAM without Prebid competing whatsoever.At Pubstack, we spotted this issue several times while auditing Publishers’ wrappers. We measured that it could be responsible for up to a 10% loss in Prebid revenue.
How do you avoid this Timeout Trap? Simply set a Failsafe Timeout higher than your Prebid Timeout. To ensure that this will never become an issue, even if you change your timeout, use the Prebid Timeout as a variable in your formula, for example: failsafeTimeout = prebidTimeout + 500
Well, as always when it comes to programmatic topics, “it depends” is the only answer and you will definitely need to extensively study your stack in order to determine your ideal Timeout value. Keep in mind that what your configuration should achieve is both an auction that cannot be too long and a time limit that is not too restrictive for your SSPs. This is why it’s important to monitor the timeout rates of your SSPs to know if you are cutting off too many bids, or not.
Usually, for European traffic, the best timeout is around 2000. This keeps timeout rates reasonable (usually <5%, at most 10%). You can go lower if you find that it does not increase your timeout rate significantly, or higher if, on the opposite, your SSPs are struggling to meet that limit, but there is rarely a need to go over 2500.
It’s also a viable strategy to go for a different configuration on Mobile than Desktop, because SSPs tend to need more time to bid on Mobile. Some of our publishers experienced an increase in Prebid revenue of up to 8% simply by increasing their timeout from 1000 to 2000ms.
If you need help with any of your programmatic topics, feel free to get in touch with our team and benefit from their programmatic knowledge to help guide you through your monetisation projects.