Enhancement
By default currently, bidders are called asynchronously in the order that they are defined. ~Due to browser concurrency however only ~6 async connections can be open at one time.~
Today in order to make the call order random pbjs.setBidderSequence('random'); needs to be called before the auction starts
Make the random call order the default behavior in the auction as that is aligned with the spirt of a fair auction within prebid.
Optionally, pbjs.setBidderSequence (or equivalent) can be replaced with a specific call order if a publisher desires that to be how the bidders are called
Due to browser concurrency however only ~6 async connections can be open at one time.
Only 6 connections _per server_. Since the bidder endpoints are usually different servers, we rarely see an issue here.
I do wonder, though... this suggestion may have some merit, even if the technical reason isn't right?
This article got passed around yesterday. The important bit:
Review the default settings and make a manual change if needed. All client-side containers come with default settings that favour the container鈥檚 own demand by calling them first. For example, the default Prebid setting is to call demand partners in alphabetical order, giving some companies a clear advantage.
I know the article is actually wrong about Prebid being alphabetical too... but the fixed order _does_ cause a little bit of bias, and it seems like people are at least thinking about it.
Is there any real harm done if we switched the default to random?
@dbemiller to clarify, what is the order of bidding? I've heard it described as the "order bidders are configured" which isn't entirely informative. Is that the adapters.json order or the adunit configuration in the page? We use random, but I'd like to understand definitively the non-random option.
The order is inherited from the 1st adUnit bids configuration.
Noted @snapwich and redacted that note on concurrent connections. The inherent bias conversation has been coming up a bit lately so still has merit imo
In a series of experiments conducted at Oct 2016, we've found the bidder order did have measurable effect on bid-rate - especially on heavy pages and with lots of bidders.
In these experiments we've seen differences in actual bidder timeout (i.e. time between bidder start and auction end) of tens of ms, and sometimes upwards of 100ms.
While the experiments were conducted on a much earlier Prebid version, I suspect they may still be valid.
(see also: https://github.com/prebid/Prebid.js/issues/703)
Opened #1458 to fix this
this is in master
Most helpful comment
Only 6 connections _per server_. Since the bidder endpoints are usually different servers, we rarely see an issue here.