File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 */
148148function 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/**
Original file line number Diff line number Diff 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 ) ;
You can’t perform that action at this time.
0 commit comments