Skip to content

Commit 61900ad

Browse files
RTB House Bid Adapter: fix floor price handling (prebid#14112)
* RTB House Bid Adapter: add GPP support * Revert "RTB House Bid Adapter: add GPP support" This reverts commit 9bf11f2. * RTB House Bid Adapter: fix floor price handling * RTB House Bid Adapter: minor spelling fix
1 parent b61cbfb commit 61900ad

2 files changed

Lines changed: 25 additions & 11 deletions

File tree

modules/rtbhouseBidAdapter.js

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,32 @@ registerBidder(spec);
143143

144144
/**
145145
* @param {object} slot Ad Unit Params by Prebid
146-
* @returns {number} floor by imp type
146+
* @returns {number|null} floor value, or null if not available
147147
*/
148148
function applyFloor(slot) {
149-
const floors = [];
149+
// If Price Floors module is available, use it
150150
if (typeof slot.getFloor === 'function') {
151-
Object.keys(slot.mediaTypes).forEach(type => {
152-
if (SUPPORTED_MEDIA_TYPES.includes(type)) {
153-
floors.push(slot.getFloor({ currency: DEFAULT_CURRENCY_ARR[0], mediaType: type, size: slot.sizes || '*' })?.floor);
151+
try {
152+
const floor = slot.getFloor({
153+
currency: DEFAULT_CURRENCY_ARR[0],
154+
mediaType: '*',
155+
size: '*'
156+
});
157+
158+
if (floor && floor.currency === DEFAULT_CURRENCY_ARR[0] && !isNaN(parseFloat(floor.floor))) {
159+
return floor.floor;
154160
}
155-
});
161+
} catch (e) {
162+
logError('RTB House: Error calling getFloor:', e);
163+
}
156164
}
157-
return floors.length > 0 ? Math.max(...floors) : parseFloat(slot.params.bidfloor);
165+
166+
// Fallback to bidfloor param if available
167+
if (slot.params.bidfloor && !isNaN(parseFloat(slot.params.bidfloor))) {
168+
return parseFloat(slot.params.bidfloor);
169+
}
170+
171+
return null;
158172
}
159173

160174
/**

test/spec/modules/rtbhouseBidAdapter_spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -344,17 +344,17 @@ describe('RTBHouseAdapter', () => {
344344
expect(data.source.tid).to.equal('bidderrequest-auction-id');
345345
});
346346

347-
it('should include bidfloor from floor module if avaiable', () => {
347+
it('should include bidfloor from floor module if available', () => {
348348
const bidRequest = Object.assign([], bidRequests);
349-
bidRequest[0].getFloor = () => ({floor: 1.22});
349+
bidRequest[0].getFloor = () => ({floor: 1.22, currency: 'USD'});
350350
const request = spec.buildRequests(bidRequest, bidderRequest);
351351
const data = JSON.parse(request.data);
352352
expect(data.imp[0].bidfloor).to.equal(1.22)
353353
});
354354

355-
it('should use bidfloor from floor module if both floor module and bid floor avaiable', () => {
355+
it('should use bidfloor from floor module if both floor module and bid floor available', () => {
356356
const bidRequest = Object.assign([], bidRequests);
357-
bidRequest[0].getFloor = () => ({floor: 1.22});
357+
bidRequest[0].getFloor = () => ({floor: 1.22, currency: 'USD'});
358358
bidRequest[0].params.bidfloor = 0.01;
359359
const request = spec.buildRequests(bidRequest, bidderRequest);
360360
const data = JSON.parse(request.data);

0 commit comments

Comments
 (0)