Prebid.js
Prebid.js copied to clipboard
Floors module enhancement: support hasUserId dimension
Type of issue
enhancement
Description
In the interest of improving publisher and floor-provider flexibility, we want to add the ability to set different floors for scenarios where there's a user ID available vs when there's not.
While it's understood that this is already possible through custom floors dimensions in Prebid.js, it's not possible in Prebid Server, and is worth community discussion.
hasUserId floor dimension
In addition to the existing dimensions (AdUnit, GPT Slot Name, MediaType, Ad Size, Domain, etc), we propose a new schema dimension that can be used by floors providers: hasUserId
: true or false.
- If there are any Extended IDs (EIDs) available to this bidder, hasUserId would match the
true
value. - If there are no EIDs available for this bidder, hasUserId would match the
false
value.
And of course floor enforcement for a bidder is done against the value of the floor that's sent to the bidder.
For example, say this is the floors config:
floors: {
currency: 'USD',
skipRate: 5,
modelVersion: 'Sports Ad Unit Floors',
schema: {
fields: [ 'mediaType', 'hasUserId']
},
values: {
'banner|true': 2.0, // hold out for a higher floor if EIDs are available
'banner|false': 1.5
}
}
And this is the EIDs config:
pbjs.setConfig({
userSync: {
userIds: [{
name: "MODULE NAME",
bidders: ['bidderA'], // only bidder A gets this EID
params: {
...
}
}]
}
});
In this example, bidderA's floor would be 2.0 assuming the EID is actually set, and the floor for bidderB would be 1.5.
Prebid Floor Rule
We ought to discuss the rules for Prebid Floors. Originally, there was a simple rule:
all bidders get the same effective floor.
It might be modified by bid adjustments, but it's still effectively the same across bidder.
Then https://github.com/prebid/Prebid.js/issues/10410 came along and changed the rule to:
all bidders either get the same effective floor or they get no floor at all
And now this new dimensions prompts a generalization of the essence of the rule:
Prebid won't support floor attributes that single out bidders by name, except for the case of not passing them a floor at all.
Prebid should support floor attributes that separate out bidders by auction characteristics.
Commentary
The spirit of the original floors rule was that we don't want publishers accepting only high-value bids from a given bidder for any reason. Prebid should be a level playing field where bidder name is not a factor in setting a floor.
However, publishers ought to be able to tune their floors based on bidder behavior and information given to them.
In the example above, it's not bidderA's name that's making them jump a higher bar, it's that they have access to information that other bidders don't have, so is expected to be able to bid more. In scenarios where an EID is not available, the floor for bidderA and bidderB would be the same.