prebid / Prebid.js

Setup and manage header bidding advertising partners without writing code or confusing line items. Prebid.js is open source and free.
https://docs.prebid.org
Apache License 2.0
1.33k stars 2.09k forks source link

Imp level floors on multiformat units #12308

Open patmmccann opened 1 month ago

patmmccann commented 1 month ago

Type of issue

Feature request

Description

openrtb doesn't support a video floor and a banner floor in the same impression object. This causes issues when the floor for the unit defined by the publisher is say $1 and the video bid adjustment is 50% and the banner bid adjustment is 80% to account for the respective discrepencies in each format. This implies the video floor perceived by adapters should be $2 and the banner floor should be $1.25.

Currently 1.25 is sent in this scenario on imp.bidfloor and video bids between 1.25 and 2 are tossed as below the floor, because they get adjusted to less than $1 before they compete.

Prebid should support sending imp.banner.ext.bidfloor, imp.video.ext.bidfloor, imp.banner.ext.bidfloorcur, imp.video.ext.bidfloorcur and the same for native objects on multiformat units when mediatype is an element of the inverse bid adjustment function

TTD is a known supporter of this and Triplelift is a known transmitter of this.

see #9395 for details on floor as a function of inverseBidAdjustment

dgirardi commented 1 month ago

I believe this is mostly on individual adapters, and supported right now

e.g. TTD could set imp.video.ext.bidfloor = bidRequest.getFloor({mediaType: 'video'}).floor

As far as I can tell there's nothing special about the inverse adjustment, if it's set and different for video, it will be taken into account as long as the adapter asks for a video floor

We could consider doing this in ortbConverter but I'm not sure it makes sense if it's not a standard.

dgirardi commented 1 month ago

Correction: there is a particular problem with inverseBidAdjustment; it does not know which mediaType it's adjusting. The api should be updated to inverseBidAdjustment(floor, bidRequest, mediaType)