From 71c54e3e83444df341eec209e22bbc10086330d0 Mon Sep 17 00:00:00 2001 From: "robert.charlton" Date: Fri, 3 Feb 2023 17:02:50 +1100 Subject: [PATCH 1/2] rbc-OPATH-367: support bidfloor bidding parameter --- modules/ttdBidAdapter.js | 10 ++++++++++ modules/ttdBidAdapter.md | 4 +++- test/spec/modules/ttdBidAdapter_spec.js | 12 ++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/modules/ttdBidAdapter.js b/modules/ttdBidAdapter.js index 884c43c438a..3bf20ed43ae 100644 --- a/modules/ttdBidAdapter.js +++ b/modules/ttdBidAdapter.js @@ -46,6 +46,11 @@ function getRegs(bidderRequest) { } function getBidFloor(bid) { + // value from params takes precedance over value set by Floor Module + if (bid.params.bidfloor) { + return bid.params.bidfloor; + } + if (!utils.isFn(bid.getFloor)) { return null; } @@ -349,6 +354,11 @@ export const spec = { return false; } + // optional parameters + if (bid.params.bidfloor && isNaN(parseFloat(bid.params.bidfloor))) { + return false; + } + const gpid = utils.deepAccess(bid, 'ortb2Imp.ext.gpid'); if (!bid.params.placementId && !gpid) { utils.logWarn(BIDDER_CODE + ': one of params.placementId or gpid (via the GPT module https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html) must be passed'); diff --git a/modules/ttdBidAdapter.md b/modules/ttdBidAdapter.md index efdef751149..108aa1a7286 100644 --- a/modules/ttdBidAdapter.md +++ b/modules/ttdBidAdapter.md @@ -50,6 +50,7 @@ The Trade Desk bid adapter supports Banner and Video. supplySourceId: 'supplier', publisherId: '1427ab10f2e448057ed3b422', placementId: '/1111/home#header', + bidfloor: 0.45, banner: { expdir: [1, 3] }, @@ -107,7 +108,8 @@ The Trade Desk bid adapter supports Banner and Video. params: { supplySourceId: 'supplier', publisherId: '1427ab10f2e448057ed3b422', - placementId: '/1111/home#header' + placementId: '/1111/home#header', + bidfloor: 0.45 } } ] diff --git a/test/spec/modules/ttdBidAdapter_spec.js b/test/spec/modules/ttdBidAdapter_spec.js index 9869d072657..cd2d21aca5a 100644 --- a/test/spec/modules/ttdBidAdapter_spec.js +++ b/test/spec/modules/ttdBidAdapter_spec.js @@ -81,6 +81,18 @@ describe('ttdBidAdapter', function () { delete bid.mediaTypes expect(spec.isBidRequestValid(bid)).to.equal(false); }); + + it('should return false if bidfloor is passed incorrectly', function () { + let bid = makeBid(); + bid.params.bidfloor = 'invalid bidfloor'; + expect(spec.isBidRequestValid(bid)).to.equal(false); + }); + + it('should return true if bidfloor is passed correctly as a float', function () { + let bid = makeBid(); + bid.params.bidfloor = 3.01; + expect(spec.isBidRequestValid(bid)).to.equal(true); + }); }); describe('banner', function () { From 237e12c1b74e2f449290827754d90ab1fe6f8e7f Mon Sep 17 00:00:00 2001 From: "robert.charlton" Date: Fri, 10 Feb 2023 16:51:43 +1100 Subject: [PATCH 2/2] rbc-OPATH-367-added-tests --- test/spec/modules/ttdBidAdapter_spec.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/spec/modules/ttdBidAdapter_spec.js b/test/spec/modules/ttdBidAdapter_spec.js index cd2d21aca5a..ebaed2502f8 100644 --- a/test/spec/modules/ttdBidAdapter_spec.js +++ b/test/spec/modules/ttdBidAdapter_spec.js @@ -547,6 +547,17 @@ describe('ttdBidAdapter', function () { expect(requestBody.site.ref).to.equal('https://ref.example.com'); expect(requestBody.site.keywords).to.equal('power tools, drills'); }); + + it('should fallback to floor module if no bidfloor is sent ', function () { + let clonedBannerRequests = deepClone(baseBannerBidRequests); + const bidfloor = 5.00; + clonedBannerRequests[0].getFloor = () => { + return { currency: 'USD', floor: bidfloor }; + }; + const requestBody = testBuildRequests(clonedBannerRequests, baseBidderRequest).data; + config.resetConfig(); + expect(requestBody.imp[0].bidfloor).to.equal(bidfloor); + }); }); describe('buildRequests-banner-multiple', function () {