From 772bffae2b9b3f212ea66e95ee08b3950abd70fd Mon Sep 17 00:00:00 2001 From: YakirLavi Date: Mon, 22 May 2023 16:50:53 +0300 Subject: [PATCH 1/4] add plcmt & sua bid params to bid request + tests --- modules/riseBidAdapter.js | 10 ++++ test/spec/modules/riseBidAdapter_spec.js | 70 +++++++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/modules/riseBidAdapter.js b/modules/riseBidAdapter.js index e0f196fb072..21d7769c3bf 100644 --- a/modules/riseBidAdapter.js +++ b/modules/riseBidAdapter.js @@ -370,6 +370,16 @@ function generateBidParameters(bid, bidderRequest) { if (coppa) { bidObject.coppa = 1; } + + const plcmt = deepAccess(bid, 'mediaTypes.video.plcmt'); + if (plcmt) { + bidObject.plcmt = plcmt; + } + + const sua = deepAccess(bid, 'ortb2.device.sua'); + if (sua) { + bidObject.sua = sua; + } } return bidObject; diff --git a/test/spec/modules/riseBidAdapter_spec.js b/test/spec/modules/riseBidAdapter_spec.js index d22cbc01d39..a7e52b347c1 100644 --- a/test/spec/modules/riseBidAdapter_spec.js +++ b/test/spec/modules/riseBidAdapter_spec.js @@ -62,7 +62,8 @@ describe('riseAdapter', function () { 'mediaTypes': { 'video': { 'playerSize': [[640, 480]], - 'context': 'instream' + 'context': 'instream', + 'plcmt': 1 } }, 'vastXml': '"..."' @@ -116,6 +117,11 @@ describe('riseAdapter', function () { expect(request.data.bids[0].placementId).to.equal(placementId); }); + it('sends the plcmt to ENDPOINT via POST', function () { + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request.data.bids[0].plcmt).to.equal(1); + }); + it('sends the is_wrapper parameter to ENDPOINT via POST', function() { const request = spec.buildRequests(bidRequests, bidderRequest); expect(request.data.params).to.be.an('object'); @@ -342,6 +348,68 @@ describe('riseAdapter', function () { expect(request.data.bids[0]).to.have.property('floorPrice', 1.5); }); + it('should check sua param in bid request', function() { + const bid = utils.deepClone(bidRequests[0]); + bid.ortb2 = { + 'device': { + 'sua': { + 'platform': { + 'brand': 'macOS', + 'version': [ '12', '4', '0' ] + }, + 'browsers': [ + { + 'brand': 'Chromium', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Google Chrome', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Not;A=Brand', + 'version': [ '99', '0', '0', '0' ] + } + ], + 'mobile': 0, + 'model': '', + 'bitness': '64', + 'architecture': 'x86' + } + } + } + const requestWithSua = spec.buildRequests([bid], bidderRequest); + const data = requestWithSua.data; + expect(data.bids[0].sua).to.exist; + expect(data.bids[0].sua).to.deep.equal({ + 'platform': { + 'brand': 'macOS', + 'version': ['12', '4', '0'] + }, + 'browsers': [ + { + 'brand': 'Chromium', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Google Chrome', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Not;A=Brand', + 'version': [ '99', '0', '0', '0' ] + } + ], + 'mobile': 0, + 'model': '', + 'bitness': '64', + 'architecture': 'x86' + } + ); + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request.data.bids[0].sua).to.not.exist; + }); + describe('COPPA Param', function() { it('should set coppa equal 0 in bid request if coppa is set to false', function() { const request = spec.buildRequests(bidRequests, bidderRequest); From f770d3d2673bbcfbbbdcdaa4fdb2c240b3166b48 Mon Sep 17 00:00:00 2001 From: YakirLavi Date: Tue, 23 May 2023 09:07:39 +0300 Subject: [PATCH 2/4] fixed single quotes --- modules/riseBidAdapter.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/riseBidAdapter.js b/modules/riseBidAdapter.js index 21d7769c3bf..d10e73359e4 100644 --- a/modules/riseBidAdapter.js +++ b/modules/riseBidAdapter.js @@ -366,17 +366,17 @@ function generateBidParameters(bid, bidderRequest) { bidObject.protocols = protocols; } - const coppa = deepAccess(bid, 'ortb2.regs.coppa') + const coppa = deepAccess(bid, `ortb2.regs.coppa`) if (coppa) { bidObject.coppa = 1; } - const plcmt = deepAccess(bid, 'mediaTypes.video.plcmt'); + const plcmt = deepAccess(bid, `mediaTypes.video.plcmt`); if (plcmt) { bidObject.plcmt = plcmt; } - const sua = deepAccess(bid, 'ortb2.device.sua'); + const sua = deepAccess(bid, `ortb2.device.sua`); if (sua) { bidObject.sua = sua; } From 73b61bd7e3836cd3985a92a0155b095213c5ae6a Mon Sep 17 00:00:00 2001 From: YakirLavi Date: Tue, 23 May 2023 10:17:19 +0300 Subject: [PATCH 3/4] change bid params location --- modules/riseBidAdapter.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/riseBidAdapter.js b/modules/riseBidAdapter.js index d10e73359e4..1e04ab6239f 100644 --- a/modules/riseBidAdapter.js +++ b/modules/riseBidAdapter.js @@ -320,6 +320,16 @@ function generateBidParameters(bid, bidderRequest) { bidObject.api = api; } + const sua = deepAccess(bid, `ortb2.device.sua`); + if (sua) { + bidObject.sua = sua; + } + + const coppa = deepAccess(bid, `ortb2.regs.coppa`) + if (coppa) { + bidObject.coppa = 1; + } + if (mediaType === VIDEO) { const playbackMethod = deepAccess(bid, `mediaTypes.video.playbackmethod`); let playbackMethodValue; @@ -366,20 +376,10 @@ function generateBidParameters(bid, bidderRequest) { bidObject.protocols = protocols; } - const coppa = deepAccess(bid, `ortb2.regs.coppa`) - if (coppa) { - bidObject.coppa = 1; - } - const plcmt = deepAccess(bid, `mediaTypes.video.plcmt`); if (plcmt) { bidObject.plcmt = plcmt; } - - const sua = deepAccess(bid, `ortb2.device.sua`); - if (sua) { - bidObject.sua = sua; - } } return bidObject; From d6d707adc4e9fb0fba94f99894d60cb17e767dd8 Mon Sep 17 00:00:00 2001 From: YakirLavi Date: Wed, 24 May 2023 13:14:34 +0300 Subject: [PATCH 4/4] create sua object inside sua test --- test/spec/modules/riseBidAdapter_spec.js | 50 ++++++++++++------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/test/spec/modules/riseBidAdapter_spec.js b/test/spec/modules/riseBidAdapter_spec.js index a7e52b347c1..eed8d74f271 100644 --- a/test/spec/modules/riseBidAdapter_spec.js +++ b/test/spec/modules/riseBidAdapter_spec.js @@ -349,6 +349,30 @@ describe('riseAdapter', function () { }); it('should check sua param in bid request', function() { + const sua = { + 'platform': { + 'brand': 'macOS', + 'version': ['12', '4', '0'] + }, + 'browsers': [ + { + 'brand': 'Chromium', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Google Chrome', + 'version': [ '106', '0', '5249', '119' ] + }, + { + 'brand': 'Not;A=Brand', + 'version': [ '99', '0', '0', '0' ] + } + ], + 'mobile': 0, + 'model': '', + 'bitness': '64', + 'architecture': 'x86' + } const bid = utils.deepClone(bidRequests[0]); bid.ortb2 = { 'device': { @@ -381,31 +405,7 @@ describe('riseAdapter', function () { const requestWithSua = spec.buildRequests([bid], bidderRequest); const data = requestWithSua.data; expect(data.bids[0].sua).to.exist; - expect(data.bids[0].sua).to.deep.equal({ - 'platform': { - 'brand': 'macOS', - 'version': ['12', '4', '0'] - }, - 'browsers': [ - { - 'brand': 'Chromium', - 'version': [ '106', '0', '5249', '119' ] - }, - { - 'brand': 'Google Chrome', - 'version': [ '106', '0', '5249', '119' ] - }, - { - 'brand': 'Not;A=Brand', - 'version': [ '99', '0', '0', '0' ] - } - ], - 'mobile': 0, - 'model': '', - 'bitness': '64', - 'architecture': 'x86' - } - ); + expect(data.bids[0].sua).to.deep.equal(sua); const request = spec.buildRequests(bidRequests, bidderRequest); expect(request.data.bids[0].sua).to.not.exist; });