Skip to content

Commit

Permalink
Core: disregard transactionId/auctionId set by bid adapters (#10262)
Browse files Browse the repository at this point in the history
  • Loading branch information
dgirardi authored Jul 20, 2023
1 parent 5aefdec commit c98ccdb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/adapters/bidderFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
logError,
logWarn, memoize,
parseQueryStringParameters,
parseSizesInput,
parseSizesInput, pick,
uniques
} from '../utils.js';
import {hook} from '../hook.js';
Expand Down Expand Up @@ -150,6 +150,7 @@ import {ACTIVITY_TRANSMIT_TID} from '../activities/activities.js';

// common params for all mediaTypes
const COMMON_BID_RESPONSE_KEYS = ['cpm', 'ttl', 'creativeId', 'netRevenue', 'currency'];
const TIDS = ['auctionId', 'transactionId'];

/**
* Register a bidder with prebid, using the given spec.
Expand Down Expand Up @@ -192,7 +193,7 @@ export function guardTids(bidderCode) {
};
}
function get(target, prop, receiver) {
if (['transactionId', 'auctionId'].includes(prop)) {
if (TIDS.includes(prop)) {
return null;
}
return Reflect.get(target, prop, receiver);
Expand Down Expand Up @@ -320,7 +321,7 @@ export function newBidder(spec) {
bid.originalCpm = bid.cpm;
bid.originalCurrency = bid.currency;
bid.meta = bid.meta || Object.assign({}, bid[bidRequest.bidder]);
const prebidBid = Object.assign(createBid(CONSTANTS.STATUS.GOOD, bidRequest), bid);
const prebidBid = Object.assign(createBid(CONSTANTS.STATUS.GOOD, bidRequest), bid, pick(bidRequest, TIDS));
addBidWithCode(bidRequest.adUnitCode, prebidBid);
} else {
logWarn(`Bidder ${spec.code} made bid for unknown request ID: ${bid.requestId}. Ignoring.`);
Expand Down
19 changes: 19 additions & 0 deletions test/spec/unit/core/bidderFactory_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -1135,6 +1135,25 @@ describe('validate bid response: ', function () {
expect(logErrorSpy.callCount).to.equal(0);
});

it('should disregard auctionId/transactionId set by the adapter', () => {
let bidderRequest = {
bids: [{
bidder: CODE,
bidId: '1',
auctionId: 'aid',
transactionId: 'tid',
adUnitCode: 'au',
}]
};
const bidder = newBidder(spec);
spec.interpretResponse.returns(Object.assign({}, bids[0], {transactionId: 'ignored', auctionId: 'ignored'}));
bidder.callBids(bidderRequest, addBidResponseStub, doneStub, ajaxStub, onTimelyResponseStub, wrappedCallback);
sinon.assert.calledWith(addBidResponseStub, sinon.match.any, sinon.match({
transactionId: 'tid',
auctionId: 'aid'
}));
})

describe(' Check for alternateBiddersList ', function() {
let bidRequest;
let bids1;
Expand Down

0 comments on commit c98ccdb

Please sign in to comment.