From aba0d31812fadf006b3c2b1fee8a4b70ec054ae3 Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Wed, 23 Nov 2022 09:35:03 +0100 Subject: [PATCH 1/7] Add support of getFloor function --- modules/impactifyBidAdapter.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 0717cf43741..959530232da 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -3,6 +3,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js'; import { config } from '../src/config.js'; import {ajax} from '../src/ajax.js'; import { createEidsArray } from './userId/eids.js'; +import {BANNER, NATIVE} from "../src/mediaTypes"; const BIDDER_CODE = 'impactify'; const BIDDER_ALIAS = ['imp']; @@ -27,6 +28,18 @@ const getDeviceType = () => { return 2; }; +const getFloor = (bid, type) => { + const floorInfo = bid.getFloor({ + currency: DEFAULT_CURRENCY, + mediaType: type, + size: '*' + }); + if (typeof floorInfo === 'object' && floorInfo.currency === DEFAULT_CURRENCY && !isNaN(parseFloat(floorInfo.floor))) { + return parseFloat(floorInfo.floor); + } + return null; +} + const createOpenRtbRequest = (validBidRequests, bidderRequest) => { // Create request and set imp bids inside let request = { @@ -114,6 +127,12 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => { if (bid.params.container) { imp.ext.impactify.container = bid.params.container; } + if (typeof bid.getFloor === 'function') { + const floor = getFloor(bid, bid.nativeParams ? NATIVE : BANNER); + if (floor) { + imp.bidfloor = floor; + } + } request.imp.push(imp); }); From c039200e4c40f3fe600761eb9e2bd27a360ba77f Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Wed, 23 Nov 2022 09:56:33 +0100 Subject: [PATCH 2/7] Add support of getFloor function --- modules/impactifyBidAdapter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 959530232da..7f67b51cee4 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -1,9 +1,9 @@ import { deepAccess, deepSetValue, generateUUID } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js'; import { config } from '../src/config.js'; -import {ajax} from '../src/ajax.js'; +import { ajax } from '../src/ajax.js'; import { createEidsArray } from './userId/eids.js'; -import {BANNER, NATIVE} from "../src/mediaTypes"; +import { BANNER, NATIVE } from '../src/mediaTypes.js'; const BIDDER_CODE = 'impactify'; const BIDDER_ALIAS = ['imp']; From 889e0a1787b87d4f0ee3f943dd7f0f54e31f5e00 Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Wed, 23 Nov 2022 10:00:35 +0100 Subject: [PATCH 3/7] Add support of getFloor function --- modules/impactifyBidAdapter.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 7f67b51cee4..f88f8a02031 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -28,10 +28,10 @@ const getDeviceType = () => { return 2; }; -const getFloor = (bid, type) => { +const getFloor = (bid) => { const floorInfo = bid.getFloor({ currency: DEFAULT_CURRENCY, - mediaType: type, + mediaType: '*', size: '*' }); if (typeof floorInfo === 'object' && floorInfo.currency === DEFAULT_CURRENCY && !isNaN(parseFloat(floorInfo.floor))) { @@ -128,7 +128,7 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => { imp.ext.impactify.container = bid.params.container; } if (typeof bid.getFloor === 'function') { - const floor = getFloor(bid, bid.nativeParams ? NATIVE : BANNER); + const floor = getFloor(bid); if (floor) { imp.bidfloor = floor; } From 91e70f3dd27504a652bbfc345e04eb2a50e4bb9a Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Wed, 23 Nov 2022 10:08:41 +0100 Subject: [PATCH 4/7] Add support of getFloor function --- modules/impactifyBidAdapter.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index f88f8a02031..04f34bdc7d9 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -3,7 +3,6 @@ import { registerBidder } from '../src/adapters/bidderFactory.js'; import { config } from '../src/config.js'; import { ajax } from '../src/ajax.js'; import { createEidsArray } from './userId/eids.js'; -import { BANNER, NATIVE } from '../src/mediaTypes.js'; const BIDDER_CODE = 'impactify'; const BIDDER_ALIAS = ['imp']; From 1f5a604ab396ba0542efc802fba8a8a56ff56649 Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Tue, 29 Nov 2022 16:54:32 +0100 Subject: [PATCH 5/7] Add unit test for bid floor --- modules/impactifyBidAdapter.js | 4 ++-- test/spec/modules/impactifyBidAdapter_spec.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 04f34bdc7d9..9297f570690 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -126,8 +126,8 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => { if (bid.params.container) { imp.ext.impactify.container = bid.params.container; } - if (typeof bid.getFloor === 'function') { - const floor = getFloor(bid); + if (typeof validBidRequests.getFloor === 'function') { + const floor = getFloor(validBidRequests); if (floor) { imp.bidfloor = floor; } diff --git a/test/spec/modules/impactifyBidAdapter_spec.js b/test/spec/modules/impactifyBidAdapter_spec.js index 8bb2d089ad8..20e96c8486d 100644 --- a/test/spec/modules/impactifyBidAdapter_spec.js +++ b/test/spec/modules/impactifyBidAdapter_spec.js @@ -166,6 +166,19 @@ describe('ImpactifyAdapter', function () { } }; + it('should pass bidfloor', function () { + videoBidRequests.getFloor = function() { + return { + currency: 'USD', + floor: 1.23, + } + } + + const res = spec.buildRequests(videoBidRequests, videoBidderRequest) + const resData = JSON.parse(res.data) + expect(resData.imp[0].bidfloor).to.equal(1.23) + }); + it('sends video bid request to ENDPOINT via POST', function () { const request = spec.buildRequests(videoBidRequests, videoBidderRequest); expect(request.url).to.equal(ORIGIN + AUCTIONURI); From 6ecb420b1f809b636fb239e34a3d3e3ad2730dc7 Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Tue, 29 Nov 2022 17:00:29 +0100 Subject: [PATCH 6/7] Add unit test for bid floor --- modules/impactifyBidAdapter.js | 4 ++-- test/spec/modules/impactifyBidAdapter_spec.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 9297f570690..04f34bdc7d9 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -126,8 +126,8 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => { if (bid.params.container) { imp.ext.impactify.container = bid.params.container; } - if (typeof validBidRequests.getFloor === 'function') { - const floor = getFloor(validBidRequests); + if (typeof bid.getFloor === 'function') { + const floor = getFloor(bid); if (floor) { imp.bidfloor = floor; } diff --git a/test/spec/modules/impactifyBidAdapter_spec.js b/test/spec/modules/impactifyBidAdapter_spec.js index 20e96c8486d..215972ff450 100644 --- a/test/spec/modules/impactifyBidAdapter_spec.js +++ b/test/spec/modules/impactifyBidAdapter_spec.js @@ -167,7 +167,7 @@ describe('ImpactifyAdapter', function () { }; it('should pass bidfloor', function () { - videoBidRequests.getFloor = function() { + videoBidRequests[0].getFloor = function() { return { currency: 'USD', floor: 1.23, From b635c990bf7e97cbca1b6e9ef67736fbafaaa402 Mon Sep 17 00:00:00 2001 From: Thomas De Stefano Date: Tue, 2 May 2023 11:09:58 +0200 Subject: [PATCH 7/7] Remove syncstore from adapter --- modules/impactifyBidAdapter.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js index 04f34bdc7d9..e853cd63e34 100644 --- a/modules/impactifyBidAdapter.js +++ b/modules/impactifyBidAdapter.js @@ -93,7 +93,6 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => { if (bidderRequest.uspConsent) { deepSetValue(request, 'regs.ext.us_privacy', bidderRequest.uspConsent); - this.syncStore.uspConsent = bidderRequest.uspConsent; } if (GETCONFIG('coppa') == true) deepSetValue(request, 'regs.coppa', 1);