From 7a9f5764d591e25faf85c508768c9cd1b6817a0c Mon Sep 17 00:00:00 2001 From: Jason Quaccia Date: Thu, 10 Apr 2025 13:45:33 -0700 Subject: [PATCH 1/2] added new highestBidCurrency field to prev auct info payloads --- modules/previousAuctionInfo/index.js | 1 + test/spec/modules/previousAuctionInfo_spec.js | 3 +++ 2 files changed, 4 insertions(+) diff --git a/modules/previousAuctionInfo/index.js b/modules/previousAuctionInfo/index.js index 68960ea8611..6b04fe6e58e 100644 --- a/modules/previousAuctionInfo/index.js +++ b/modules/previousAuctionInfo/index.js @@ -87,6 +87,7 @@ export const onAuctionEndHandler = (auctionDetails) => { source: 'pbjs', adUnitCode: bid.adUnitCode, highestBidCpm: highestBidsByAdUnitCode[bid.adUnitCode]?.cpm || null, + highestBidCurrency: highestBidsByAdUnitCode[bid.adUnitCode]?.currency || null, bidderCpm: receivedBidsMap[bid.bidId]?.cpm || null, bidderOriginalCpm: receivedBidsMap[bid.bidId]?.originalCpm || null, bidderCurrency: receivedBidsMap[bid.bidId]?.currency || null, diff --git a/test/spec/modules/previousAuctionInfo_spec.js b/test/spec/modules/previousAuctionInfo_spec.js index 159b10a77d3..23401c2a34d 100644 --- a/test/spec/modules/previousAuctionInfo_spec.js +++ b/test/spec/modules/previousAuctionInfo_spec.js @@ -90,6 +90,7 @@ describe('previous auction info', () => { source: 'pbjs', adUnitCode: 'adUnit1', highestBidCpm: 2, + highestBidCurrency: 'EUR', bidderCpm: 2, bidderOriginalCpm: 2.1, bidderCurrency: 'EUR', @@ -109,6 +110,7 @@ describe('previous auction info', () => { expect(previousAuctionInfo.auctionState['testBidder1'][0]).to.include({ bidId: 'bid123', highestBidCpm: 2, + highestBidCurrency: 'EUR', adUnitCode: 'adUnit1', bidderCpm: 1, bidderCurrency: 'USD' @@ -117,6 +119,7 @@ describe('previous auction info', () => { expect(previousAuctionInfo.auctionState['testBidder3'][0]).to.include({ bidId: 'bidxyz', highestBidCpm: 3, + highestBidCurrency: 'USD', adUnitCode: 'adUnit2', bidderCpm: 3, bidderCurrency: 'USD' From 65a13668b8fc2c3e4924f251a175639c53718f03 Mon Sep 17 00:00:00 2001 From: Jason Quaccia Date: Thu, 10 Apr 2025 15:22:59 -0700 Subject: [PATCH 2/2] changed bidderErrorCode to rejectionReason --- modules/previousAuctionInfo/index.js | 2 +- test/spec/modules/previousAuctionInfo_spec.js | 40 +++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/modules/previousAuctionInfo/index.js b/modules/previousAuctionInfo/index.js index 6b04fe6e58e..3846a46812a 100644 --- a/modules/previousAuctionInfo/index.js +++ b/modules/previousAuctionInfo/index.js @@ -92,7 +92,7 @@ export const onAuctionEndHandler = (auctionDetails) => { bidderOriginalCpm: receivedBidsMap[bid.bidId]?.originalCpm || null, bidderCurrency: receivedBidsMap[bid.bidId]?.currency || null, bidderOriginalCurrency: receivedBidsMap[bid.bidId]?.originalCurrency || null, - bidderErrorCode: rejectedBidsMap[bid.bidId]?.rejectionReason || null, + rejectionReason: rejectedBidsMap[bid.bidId]?.rejectionReason || null, timestamp: auctionDetails.timestamp, transactionId: bid.transactionId, // this field gets removed before injecting previous auction info into the bid stream } diff --git a/test/spec/modules/previousAuctionInfo_spec.js b/test/spec/modules/previousAuctionInfo_spec.js index 23401c2a34d..d1003c0082a 100644 --- a/test/spec/modules/previousAuctionInfo_spec.js +++ b/test/spec/modules/previousAuctionInfo_spec.js @@ -4,6 +4,7 @@ import { expect } from 'chai'; import { config } from 'src/config.js'; import * as events from 'src/events.js'; import {CONFIG_NS, resetPreviousAuctionInfo, startAuctionHook} from '../../../modules/previousAuctionInfo'; +import { REJECTION_REASON } from '../../../src/constants.js'; describe('previous auction info', () => { let sandbox; @@ -95,7 +96,7 @@ describe('previous auction info', () => { bidderOriginalCpm: 2.1, bidderCurrency: 'EUR', bidderOriginalCurrency: 'EUR', - bidderErrorCode: null, + rejectionReason: null, timestamp: auctionDetails.timestamp }); }); @@ -113,7 +114,8 @@ describe('previous auction info', () => { highestBidCurrency: 'EUR', adUnitCode: 'adUnit1', bidderCpm: 1, - bidderCurrency: 'USD' + bidderCurrency: 'USD', + rejectionReason: null, }); expect(previousAuctionInfo.auctionState['testBidder3'][0]).to.include({ @@ -122,7 +124,8 @@ describe('previous auction info', () => { highestBidCurrency: 'USD', adUnitCode: 'adUnit2', bidderCpm: 3, - bidderCurrency: 'USD' + bidderCurrency: 'USD', + rejectionReason: null, }); }); @@ -133,6 +136,37 @@ describe('previous auction info', () => { expect(previousAuctionInfo.auctionState).to.have.property('testBidder1'); expect(previousAuctionInfo.auctionState).to.not.have.property('testBidder2'); }); + + it('should include rejectionReason string if the bid was rejected', () => { + const auctionDetailsWithRejectedBid = { + auctionId: 'auctionXYZ', + bidsReceived: [], + bidsRejected: [ + { requestId: 'bid456', rejectionReason: REJECTION_REASON.FLOOR_NOT_MET } // string from REJECTION_REASON + ], + bidderRequests: [ + { + bidderCode: 'testBidder1', + bidderRequestId: 'req1', + bids: [ + { bidId: 'bid456', adUnitCode: 'adUnit1' } + ] + } + ], + timestamp: Date.now(), + }; + + config.setConfig({ [CONFIG_NS]: { enabled: true, bidders: ['testBidder1'] } }); + previousAuctionInfo.onAuctionEndHandler(auctionDetailsWithRejectedBid); + + const stored = previousAuctionInfo.auctionState['testBidder1'][0]; + expect(stored).to.include({ + bidId: 'bid456', + rejectionReason: REJECTION_REASON.FLOOR_NOT_MET, + bidderCpm: null, + highestBidCpm: null + }); + }); }); describe('startAuctionHook', () => {