diff --git a/modules/criteoBidAdapter.js b/modules/criteoBidAdapter.js index 40d39dc5618..0618a076193 100644 --- a/modules/criteoBidAdapter.js +++ b/modules/criteoBidAdapter.js @@ -298,6 +298,18 @@ export const spec = { if (!sellerSignals.floor && bidRequest.params.bidFloor) { sellerSignals.floor = bidRequest.params.bidFloor; } + let perBuyerTimeout = { '*': 50 }; + if (sellerSignals.perBuyerTimeout) { + for (const buyer in sellerSignals.perBuyerTimeout) { + perBuyerTimeout[buyer] = sellerSignals.perBuyerTimeout[buyer]; + } + } + let perBuyerGroupLimits = { '*': 60 }; + if (sellerSignals.perBuyerGroupLimits) { + for (const buyer in sellerSignals.perBuyerGroupLimits) { + perBuyerGroupLimits[buyer] = sellerSignals.perBuyerGroupLimits[buyer]; + } + } if (body?.ext?.sellerSignalsPerImp !== undefined) { const sellerSignalsPerImp = body.ext.sellerSignalsPerImp[bidId]; if (sellerSignalsPerImp !== undefined) { @@ -311,6 +323,8 @@ export const spec = { sellerSignals, sellerTimeout, perBuyerSignals, + perBuyerTimeout, + perBuyerGroupLimits, auctionSignals: {}, decisionLogicUrl: FLEDGE_DECISION_LOGIC_URL, interestGroupBuyers: Object.keys(perBuyerSignals), diff --git a/test/spec/modules/criteoBidAdapter_spec.js b/test/spec/modules/criteoBidAdapter_spec.js index 4c599550afb..1139dbf5210 100755 --- a/test/spec/modules/criteoBidAdapter_spec.js +++ b/test/spec/modules/criteoBidAdapter_spec.js @@ -2572,6 +2572,8 @@ describe('The Criteo bidding adapter', function () { sellerTimeout: 500, sellerSignals: { foo: 'bar', + perBuyerTimeout: { 'buyer1': 100, 'buyer2': 200 }, + perBuyerGroupLimits: { 'buyer1': 300, 'buyer2': 400 }, }, sellerSignalsPerImp: { 'test-bidId': { @@ -2641,6 +2643,16 @@ describe('The Criteo bidding adapter', function () { foo: 'baz' }, }, + perBuyerTimeout: { + '*': 50, + 'buyer1': 100, + 'buyer2': 200 + }, + perBuyerGroupLimits: { + '*': 60, + 'buyer1': 300, + 'buyer2': 400 + }, seller: 'https://seller-domain.com', sellerTimeout: 500, sellerSignals: { @@ -2648,8 +2660,16 @@ describe('The Criteo bidding adapter', function () { foo2: 'bar2', floor: 1, currency: 'USD', + perBuyerTimeout: { + 'buyer1': 100, + 'buyer2': 200 + }, + perBuyerGroupLimits: { + 'buyer1': 300, + 'buyer2': 400 + }, }, - sellerCurrency: 'USD' + sellerCurrency: 'USD', }, }); expect(interpretedResponse.fledgeAuctionConfigs[1]).to.deep.equal({ @@ -2666,11 +2686,29 @@ describe('The Criteo bidding adapter', function () { foo: 'baz' }, }, + perBuyerTimeout: { + '*': 50, + 'buyer1': 100, + 'buyer2': 200 + }, + perBuyerGroupLimits: { + '*': 60, + 'buyer1': 300, + 'buyer2': 400 + }, seller: 'https://seller-domain.com', sellerTimeout: 500, sellerSignals: { foo: 'bar', floor: 1, + perBuyerTimeout: { + 'buyer1': 100, + 'buyer2': 200 + }, + perBuyerGroupLimits: { + 'buyer1': 300, + 'buyer2': 400 + }, }, sellerCurrency: '???' },