From c83021744de9e615d046377e4554bfd9d176ea35 Mon Sep 17 00:00:00 2001 From: Jonathan Go Date: Mon, 26 Nov 2018 11:17:29 -0500 Subject: [PATCH 1/3] changed adapter to support video and display for ad unit --- modules/sonobiBidAdapter.js | 12 ++++-------- test/spec/modules/sonobiBidAdapter_spec.js | 18 +++++++++++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/modules/sonobiBidAdapter.js b/modules/sonobiBidAdapter.js index 15bcca50a13..f828fe6a2c0 100644 --- a/modules/sonobiBidAdapter.js +++ b/modules/sonobiBidAdapter.js @@ -1,7 +1,6 @@ import { registerBidder } from 'src/adapters/bidderFactory'; -import { getTopWindowLocation, parseSizesInput, logError, generateUUID, deepAccess, isEmpty } from '../src/utils'; +import { getTopWindowLocation, parseSizesInput, logError, generateUUID, isEmpty } from '../src/utils'; import { BANNER, VIDEO } from '../src/mediaTypes'; -import find from 'core-js/library/fn/array/find'; import { config } from '../src/config'; const BIDDER_CODE = 'sonobi'; @@ -104,12 +103,10 @@ export const spec = { } Object.keys(bidResponse.slots).forEach(slot => { + const bid = bidResponse.slots[slot]; const bidId = _getBidIdFromTrinityKey(slot); - const bidRequest = find(bidderRequests, bidReqest => bidReqest.bidId === bidId); - const videoMediaType = deepAccess(bidRequest, 'mediaTypes.video'); - const mediaType = bidRequest.mediaType || (videoMediaType ? 'video' : null); + const mediaType = (bid.sbi_ct === 'video' || bid.sbi_ct === 'outstream') ? 'video' : null; const createCreative = _creative(mediaType); - const bid = bidResponse.slots[slot]; if (bid.sbi_aid && bid.sbi_mouse && bid.sbi_size) { const [ width = 1, @@ -132,8 +129,7 @@ export const spec = { bids.dealId = bid.sbi_dozer; } - const creativeType = bid.sbi_ct; - if (creativeType && (creativeType === 'video' || creativeType === 'outstream')) { + if (mediaType === 'video') { bids.mediaType = 'video'; bids.vastUrl = createCreative(bidResponse.sbi_dc, bid.sbi_aid); delete bids.ad; diff --git a/test/spec/modules/sonobiBidAdapter_spec.js b/test/spec/modules/sonobiBidAdapter_spec.js index 69138c063c9..3e569fc4aea 100644 --- a/test/spec/modules/sonobiBidAdapter_spec.js +++ b/test/spec/modules/sonobiBidAdapter_spec.js @@ -242,8 +242,7 @@ describe('SonobiBidAdapter', function () { }, 'adUnitCode': 'adunit-code-2', 'sizes': [[120, 600], [300, 600], [160, 600]], - 'bidId': '30b31c1838de1e', - 'mediaType': 'video' + 'bidId': '30b31c1838de1e' }, { 'bidder': 'sonobi', @@ -274,6 +273,7 @@ describe('SonobiBidAdapter', function () { 'sbi_aid': '30292e432662bd5f86d90774b944b038', 'sbi_mouse': 1.25, 'sbi_dozer': 'dozerkey', + 'sbi_ct': 'video' }, '/7780971/sparks_prebid_LB|30b31c1838de1g': {}, }, @@ -321,14 +321,22 @@ describe('SonobiBidAdapter', function () { response.forEach((resp, i) => { expect(resp.requestId).to.equal(prebidResponse[i].requestId); expect(resp.cpm).to.equal(prebidResponse[i].cpm); - expect(resp.width).to.equal(prebidResponse[i].width); - expect(resp.height).to.equal(prebidResponse[i].height); + expect(resp.ttl).to.equal(prebidResponse[i].ttl); expect(resp.creativeId).to.equal(prebidResponse[i].creativeId); expect(resp.netRevenue).to.equal(prebidResponse[i].netRevenue); expect(resp.currency).to.equal(prebidResponse[i].currency); expect(resp.aid).to.equal(prebidResponse[i].aid); - expect(resp.ad.indexOf('localhost')).to.be.greaterThan(0); + if (resp.mediaType === 'video') { + expect(resp.vastUrl.indexOf('vast.xml')).to.be.greaterThan(0); + expect(resp.ad).to.be.undefined; + expect(resp.width).to.be.undefined; + expect(resp.height).to.be.undefined; + } else { + expect(resp.ad.indexOf('localhost')).to.be.greaterThan(0); + expect(resp.width).to.equal(prebidResponse[i].width); + expect(resp.height).to.equal(prebidResponse[i].height); + } }); }); }); From a0c9eef9ce1743dbafce322d838f8c916ea1ad9a Mon Sep 17 00:00:00 2001 From: Jonathan Go Date: Mon, 26 Nov 2018 11:42:20 -0500 Subject: [PATCH 2/3] added case for sbi_ct outstream --- test/spec/modules/sonobiBidAdapter_spec.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/spec/modules/sonobiBidAdapter_spec.js b/test/spec/modules/sonobiBidAdapter_spec.js index 3e569fc4aea..94bce49146a 100644 --- a/test/spec/modules/sonobiBidAdapter_spec.js +++ b/test/spec/modules/sonobiBidAdapter_spec.js @@ -275,6 +275,14 @@ describe('SonobiBidAdapter', function () { 'sbi_dozer': 'dozerkey', 'sbi_ct': 'video' }, + '30b31c1838de2e': { + 'sbi_size': '300x250', + 'sbi_apoc': 'remnant', + 'sbi_aid': '30292e432662bd5f86d90774b944b028', + 'sbi_mouse': 1.25, + 'sbi_dozer': 'dozerkey', + 'sbi_ct': 'outstream' + }, '/7780971/sparks_prebid_LB|30b31c1838de1g': {}, }, 'sbi_dc': 'mco-1-', @@ -313,6 +321,19 @@ describe('SonobiBidAdapter', function () { 'currency': 'USD', 'dealId': 'dozerkey', 'aid': '30292e432662bd5f86d90774b944b038' + }, + { + 'requestId': '30b31c1838de2e', + 'cpm': 1.25, + 'width': 300, + 'height': 250, + 'ad': 'https://mco-1-apex.go.sonobi.com/vast.xml?vid=30292e432662bd5f86d90774b944b028&ref=http%3A%2F%2Flocalhost%2F', + 'ttl': 500, + 'creativeId': '30292e432662bd5f86d90774b944b028', + 'netRevenue': true, + 'currency': 'USD', + 'dealId': 'dozerkey', + 'aid': '30292e432662bd5f86d90774b944b028' } ]; From 7c18c4fc6ec125aee7d7f15ddc9a79650d2e5b8f Mon Sep 17 00:00:00 2001 From: Jonathan Go Date: Mon, 26 Nov 2018 13:34:40 -0500 Subject: [PATCH 3/3] outstream is display media type --- modules/sonobiBidAdapter.js | 2 +- test/spec/modules/sonobiBidAdapter_spec.js | 26 ++++++++++------------ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/modules/sonobiBidAdapter.js b/modules/sonobiBidAdapter.js index f828fe6a2c0..0400aa46ecf 100644 --- a/modules/sonobiBidAdapter.js +++ b/modules/sonobiBidAdapter.js @@ -105,7 +105,7 @@ export const spec = { Object.keys(bidResponse.slots).forEach(slot => { const bid = bidResponse.slots[slot]; const bidId = _getBidIdFromTrinityKey(slot); - const mediaType = (bid.sbi_ct === 'video' || bid.sbi_ct === 'outstream') ? 'video' : null; + const mediaType = (bid.sbi_ct === 'video') ? 'video' : null; const createCreative = _creative(mediaType); if (bid.sbi_aid && bid.sbi_mouse && bid.sbi_size) { const [ diff --git a/test/spec/modules/sonobiBidAdapter_spec.js b/test/spec/modules/sonobiBidAdapter_spec.js index 94bce49146a..43b35c7d961 100644 --- a/test/spec/modules/sonobiBidAdapter_spec.js +++ b/test/spec/modules/sonobiBidAdapter_spec.js @@ -275,13 +275,12 @@ describe('SonobiBidAdapter', function () { 'sbi_dozer': 'dozerkey', 'sbi_ct': 'video' }, - '30b31c1838de2e': { - 'sbi_size': '300x250', + '/7780971/sparks_prebid_LB_OUTSTREAM|30b31c1838de1g': { + 'sbi_size': '300x600', 'sbi_apoc': 'remnant', - 'sbi_aid': '30292e432662bd5f86d90774b944b028', - 'sbi_mouse': 1.25, - 'sbi_dozer': 'dozerkey', - 'sbi_ct': 'outstream' + 'sbi_crid': '1234abcd', + 'sbi_aid': '30292e432662bd5f86d90774b944b038', + 'sbi_mouse': 1.07, }, '/7780971/sparks_prebid_LB|30b31c1838de1g': {}, }, @@ -323,18 +322,17 @@ describe('SonobiBidAdapter', function () { 'aid': '30292e432662bd5f86d90774b944b038' }, { - 'requestId': '30b31c1838de2e', - 'cpm': 1.25, + 'requestId': '30b31c1838de1g', + 'cpm': 1.07, 'width': 300, - 'height': 250, - 'ad': 'https://mco-1-apex.go.sonobi.com/vast.xml?vid=30292e432662bd5f86d90774b944b028&ref=http%3A%2F%2Flocalhost%2F', + 'height': 600, + 'ad': ``, 'ttl': 500, - 'creativeId': '30292e432662bd5f86d90774b944b028', + 'creativeId': '1234abcd', 'netRevenue': true, 'currency': 'USD', - 'dealId': 'dozerkey', - 'aid': '30292e432662bd5f86d90774b944b028' - } + 'aid': '30292e432662bd5f86d90774b944b038' + }, ]; it('should map bidResponse to prebidResponse', function () {