From 5643efb30ad48ee895ce41e26c089fd73da315fa Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 15 Jun 2022 11:35:28 -0600 Subject: [PATCH 1/4] Remove tpids and check for sizes --- modules/sovrnBidAdapter.js | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/modules/sovrnBidAdapter.js b/modules/sovrnBidAdapter.js index eed9ccb7461..efd01faf86d 100644 --- a/modules/sovrnBidAdapter.js +++ b/modules/sovrnBidAdapter.js @@ -74,22 +74,9 @@ export const spec = { let iv; let schain; let eids; - let tpid = [] let criteoId; _each(bidReqs, function (bid) { - if (!eids && bid.userId) { - eids = createEidsArray(bid.userId) - eids.forEach(function (id) { - if (id.uids && id.uids[0]) { - if (id.source === 'criteo.com') { - criteoId = id.uids[0].id - } - tpid.push({source: id.source, uid: id.uids[0].id}) - } - }) - } - if (bid.schain) { schain = schain || bid.schain } @@ -167,7 +154,6 @@ export const spec = { if (eids) { deepSetValue(sovrnBidReq, 'user.ext.eids', eids) - deepSetValue(sovrnBidReq, 'user.ext.tpid', tpid) if (criteoId) { deepSetValue(sovrnBidReq, 'user.ext.prebid_criteoid', criteoId) } @@ -268,11 +254,16 @@ export const spec = { function _buildVideoRequestObj(bid) { const videoObj = {} + const bidSizes = deepAccess(bid, 'sizes') const videoAdUnitParams = deepAccess(bid, 'mediaTypes.video', {}) const videoBidderParams = deepAccess(bid, 'params.video', {}) const computedParams = {} - - if (Array.isArray(videoAdUnitParams.playerSize)) { + + if (bidSizes) { + const sizes = (Array.isArray(bidSizes[0])) ? bidSizes[0] : bidSizes + computedParams.w = sizes[0] + computedParams.h = sizes[1] + }else if (Array.isArray(videoAdUnitParams.playerSize)) { const sizes = (Array.isArray(videoAdUnitParams.playerSize[0])) ? videoAdUnitParams.playerSize[0] : videoAdUnitParams.playerSize computedParams.w = sizes[0] computedParams.h = sizes[1] From 142bdde47413c75990050cbce98d92dcdd536203 Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 15 Jun 2022 11:51:59 -0600 Subject: [PATCH 2/4] Change for tests --- modules/sovrnBidAdapter.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/sovrnBidAdapter.js b/modules/sovrnBidAdapter.js index efd01faf86d..8c3674ef3a3 100644 --- a/modules/sovrnBidAdapter.js +++ b/modules/sovrnBidAdapter.js @@ -159,14 +159,24 @@ export const spec = { } } - let url = `https://ap.lijit.com/rtb/bid?src=$$REPO_AND_VERSION$$`; - if (iv) url += `&iv=${iv}`; + const urlParams = new URLSearchParams(window.location.search) + const uuid = urlParams.get('testUuid') + + let url = `https://localhost:8090/rtb/prebidResponse1/bid/openrtb25` + if (iv) url += `&iv=${iv}` return { method: 'POST', url: url, data: JSON.stringify(sovrnBidReq), - options: {contentType: 'text/plain'} + options: { + contentType: 'text/plain', + withCredentials: false, + customHeaders: { + 'testUuid': uuid, + 'replaceIdsFromRequest': true + } + } } } catch (e) { logError('Could not build bidrequest, error deatils:', e); From 4eb3e7de81a1cf02460d8cb77bf4b3574b618e86 Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Thu, 16 Jun 2022 13:58:18 -0600 Subject: [PATCH 3/4] Update code to put back eids and fix tests --- modules/sovrnBidAdapter.js | 33 ++++++++--------- test/spec/modules/sovrnBidAdapter_spec.js | 44 ++++++++++++++++++++--- 2 files changed, 56 insertions(+), 21 deletions(-) diff --git a/modules/sovrnBidAdapter.js b/modules/sovrnBidAdapter.js index 8c3674ef3a3..97351124c1c 100644 --- a/modules/sovrnBidAdapter.js +++ b/modules/sovrnBidAdapter.js @@ -1,7 +1,7 @@ import { _each, getBidIdParameter, isArray, deepClone, parseUrl, getUniqueIdentifierStr, deepSetValue, logError, deepAccess, isInteger, logWarn } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js' import { ADPOD, BANNER, VIDEO } from '../src/mediaTypes.js' -import { createEidsArray } from './userId/eids.js' +import {createEidsArray} from './userId/eids.js'; import {config} from '../src/config.js' const ORTB_VIDEO_PARAMS = { @@ -77,6 +77,17 @@ export const spec = { let criteoId; _each(bidReqs, function (bid) { + if (!eids && bid.userId) { + eids = createEidsArray(bid.userId) + eids.forEach(function (id) { + if (id.uids && id.uids[0]) { + if (id.source === 'criteo.com') { + criteoId = id.uids[0].id + } + } + }) + } + if (bid.schain) { schain = schain || bid.schain } @@ -159,24 +170,14 @@ export const spec = { } } - const urlParams = new URLSearchParams(window.location.search) - const uuid = urlParams.get('testUuid') - - let url = `https://localhost:8090/rtb/prebidResponse1/bid/openrtb25` - if (iv) url += `&iv=${iv}` + let url = `https://ap.lijit.com/rtb/bid?src=$$REPO_AND_VERSION$$`; + if (iv) url += `&iv=${iv}`; return { method: 'POST', url: url, data: JSON.stringify(sovrnBidReq), - options: { - contentType: 'text/plain', - withCredentials: false, - customHeaders: { - 'testUuid': uuid, - 'replaceIdsFromRequest': true - } - } + options: {contentType: 'text/plain'} } } catch (e) { logError('Could not build bidrequest, error deatils:', e); @@ -268,12 +269,12 @@ function _buildVideoRequestObj(bid) { const videoAdUnitParams = deepAccess(bid, 'mediaTypes.video', {}) const videoBidderParams = deepAccess(bid, 'params.video', {}) const computedParams = {} - + if (bidSizes) { const sizes = (Array.isArray(bidSizes[0])) ? bidSizes[0] : bidSizes computedParams.w = sizes[0] computedParams.h = sizes[1] - }else if (Array.isArray(videoAdUnitParams.playerSize)) { + } else if (Array.isArray(videoAdUnitParams.playerSize)) { const sizes = (Array.isArray(videoAdUnitParams.playerSize[0])) ? videoAdUnitParams.playerSize[0] : videoAdUnitParams.playerSize computedParams.w = sizes[0] computedParams.h = sizes[1] diff --git a/test/spec/modules/sovrnBidAdapter_spec.js b/test/spec/modules/sovrnBidAdapter_spec.js index c515f302c32..0b5473e101d 100644 --- a/test/spec/modules/sovrnBidAdapter_spec.js +++ b/test/spec/modules/sovrnBidAdapter_spec.js @@ -94,9 +94,9 @@ describe('sovrnBidAdapter', function() { expect(impression.banner.h).to.equal(1) }) - it('sets the proper video object', function() { - const width = 640 - const height = 480 + it('sets the proper video object with sizes defined', function() { + const width = 300 + const height = 250 const mimes = ['video/mp4', 'application/javascript'] const protocols = [2, 5] const minduration = 5 @@ -128,6 +128,42 @@ describe('sovrnBidAdapter', function() { expect(impression.video.startdelay).to.equal(startdelay) }) + it('sets the proper video object wihtout sizes defined but video sizes defined', function() { + const width = 360 + const height = 240 + const mimes = ['video/mp4', 'application/javascript'] + const protocols = [2, 5] + const minduration = 5 + const maxduration = 60 + const startdelay = 0 + const modifiedBidRequest = baseBidRequest; + delete modifiedBidRequest.sizes; + const videoBidRequest = { + ...modifiedBidRequest, + mediaTypes: { + video: { + mimes, + protocols, + playerSize: [[width, height], [360, 240]], + minduration, + maxduration, + startdelay + } + } + } + const request = spec.buildRequests([videoBidRequest], baseBidderRequest) + const payload = JSON.parse(request.data) + const impression = payload.imp[0] + + expect(impression.video.w).to.equal(width) + expect(impression.video.h).to.equal(height) + expect(impression.video.mimes).to.have.same.members(mimes) + expect(impression.video.protocols).to.have.same.members(protocols) + expect(impression.video.minduration).to.equal(minduration) + expect(impression.video.maxduration).to.equal(maxduration) + expect(impression.video.startdelay).to.equal(startdelay) + }) + it('gets correct site info', function() { expect(payload.site.page).to.equal('http://example.com/page.html') expect(payload.site.domain).to.equal('example.com') @@ -253,8 +289,6 @@ describe('sovrnBidAdapter', function() { expect(secondEID.uids[0].id).to.equal('SOMESORTOFID') expect(secondEID.uids[0].ext.rtiPartner).to.equal('TDID') expect(secondEID.uids[0].atype).to.equal(1) - expect(ext.tpid[0].source).to.equal('criteo.com') - expect(ext.tpid[0].uid).to.equal('A_CRITEO_ID') expect(ext.prebid_criteoid).to.equal('A_CRITEO_ID') }) From 6014bd53187b1558874cf1605c42116c9ba57413 Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Fri, 17 Jun 2022 13:20:13 -0600 Subject: [PATCH 4/4] fix: [EX-3771] Fix imports after merge. --- modules/sovrnBidAdapter.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/modules/sovrnBidAdapter.js b/modules/sovrnBidAdapter.js index 325faeca917..ab8abb7e2b4 100644 --- a/modules/sovrnBidAdapter.js +++ b/modules/sovrnBidAdapter.js @@ -1,24 +1,21 @@ -import { - _each, - getBidIdParameter, - isArray, - deepClone, - parseUrl, - getUniqueIdentifierStr, - deepSetValue, - logError, - deepAccess, - isInteger, +import { + _each, + getBidIdParameter, + isArray, + getUniqueIdentifierStr, + deepSetValue, + logError, + deepAccess, + isInteger, logWarn } from '../src/utils.js'; import { registerBidder } from '../src/adapters/bidderFactory.js' -import { - ADPOD, - BANNER, +import { + ADPOD, + BANNER, VIDEO } from '../src/mediaTypes.js' import {createEidsArray} from './userId/eids.js'; -import {config} from '../src/config.js' const ORTB_VIDEO_PARAMS = { 'mimes': (value) => Array.isArray(value) && value.length > 0 && value.every(v => typeof v === 'string'),