Skip to content

Commit

Permalink
updating quantumBidAdapter for reviews, fixed tests to work with native
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuel Negru committed Feb 14, 2018
1 parent c9136b8 commit 56068a5
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 40 deletions.
30 changes: 11 additions & 19 deletions modules/quantumBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as utils from 'src/utils';

import {registerBidder} from 'src/adapters/bidderFactory';

const BIDDER_CODE = 'quantum';
Expand Down Expand Up @@ -36,8 +35,12 @@ export const spec = {
if (params.useDev && params.useDev === '1') {
devEnpoint = '//sdev.sspqns.com/hb';
}
if (params.bannerFormat === 'true') {
qtxRequest.type = 'banner';
let renderMode = 'native';
for (let i = 0; i < bid.sizes.length - 1; i++) {
if (bid.sizes[i][0] > 0 && bid.sizes[i][1] > 0) {
renderMode = 'banner';
break;
}
}

let mediaType = (bid.mediaType === 'native' || utils.deepAccess(bid, 'mediaTypes.native')) ? 'native' : 'banner';
Expand All @@ -51,7 +54,9 @@ export const spec = {
return {
method: 'GET',
bidId: bidId,
sizes: bid.sizes,
mediaType: mediaType,
renderMode: renderMode,
url: url,
'data': qtxRequest
};
Expand All @@ -65,21 +70,15 @@ export const spec = {
*/
interpretResponse: function (serverResponse, bidRequest) {
const serverBody = serverResponse.body;
// const headerValue = serverResponse.headers.get('some-response-header');
const bidResponses = [];
// console.log('interpretResponse:',serverResponse, bidRequest);
let responseCPM;

let bid = {};
// const bid = newBid(serverBid, rtbBid);

let id = bidRequest.bidId;

if (serverBody.price && serverBody.price !== 0) {
responseCPM = parseFloat(serverBody.price);

bid.creativeId = serverBody.creative_id || '123d341';
// bid.bidderCode = bidCode;
bid.creativeId = serverBody.creative_id || '';
bid.cpm = responseCPM;
bid.requestId = bidRequest.bidId;
bid.width = 0;
Expand All @@ -97,8 +96,7 @@ export const spec = {

bid.nurl = serverBody.nurl;
bid.sync = serverBody.sync;

if (serverBody.request_type && serverBody.request_type === 'banner') {
if (bidRequest.renderMode && bidRequest.renderMode === 'banner') {
bid.width = 300;
bid.height = 225;
if (serverBody.native) {
Expand Down Expand Up @@ -181,7 +179,7 @@ export const spec = {
ad['action_url'] = link.url;

if (!ad['sponsor_url']) {
ad['sponsor_url'] = action_url;
ad['sponsor_url'] = ad['action_url'];
}

ad['clicktrackers'] = [];
Expand Down Expand Up @@ -214,7 +212,6 @@ export const spec = {
// native
if (bidRequest.mediaType === 'native') {
if (serverBody.native) {
// console.log('native:', serverBody.native);
let assets = serverBody.native.assets;
let link = serverBody.native.link;

Expand Down Expand Up @@ -244,10 +241,6 @@ export const spec = {
case 4:
native.image = '//resize-ssp.elasticad.net/scalecrop-290x130/' + window.btoa(asset['img']['url']) + '/external';
break;
case 6: // teaser as vast
// ad['teaser_type'] = 'vast';
// ad['video_url'] = asset['video']['vasttag'];
break;
case 10:
native.sponsoredBy = asset['data']['value'];
break;
Expand All @@ -265,7 +258,6 @@ export const spec = {
}
}
}
// console.log('_bid:',bid);
bidResponses.push(bid);
}

Expand Down
21 changes: 14 additions & 7 deletions modules/quantumBidAdapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,17 @@ var adUnits = [{
bids: [{
bidder: 'quantum',
params: {
placementId: 21546, //quantum adUnit id
bannerFormat:'true' //use this for enabling banner type response
placementId: 21546 //quantum adUnit id
}
}]
},{
code: 'quantum-native-adUnit-id-1',
sizes: [[0, 0]],
mediaTypes: 'native',
bids: [{
bidder: 'quantum',
params: {
placementId: 21546 //quantum adUnit id
}
}]
}];
Expand All @@ -42,13 +51,12 @@ var adUnits = [{
pbjsEl.type = "text/javascript";
pbjsEl.async = true;
var isHttps = 'https:' === document.location.protocol;
//pbjsEl.src = "//cdn.elasticad.net/native/serve/js/quantx/prebid.gz.js";
pbjsEl.src = "//cdn.elasticad.net/native/serve/js/quantx/_dev/prebid.js";
var pbjsTargetEl = document.getElementsByTagName("head")[0];
pbjsTargetEl.insertBefore(pbjsEl, pbjsTargetEl.firstChild);
})();
var adUnitID = 'pl-100';
var adUnitID = 'pl-100';
pbjs.que.push(function() {
var adUnits = [{
Expand All @@ -57,8 +65,7 @@ var adUnits = [{
bids: [{
bidder: 'quantum',
params: {
placementId: 21546, //quantum adUnit id
bannerFormat:'true' //use this for enabling banner type response
placementId: 21546 //quantum adUnit id
}
}]
}];
Expand All @@ -84,4 +91,4 @@ var adUnits = [{
</body>
</html>
```
```
65 changes: 51 additions & 14 deletions test/spec/modules/quantumBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ const ENDPOINT = '//s.sspqns.com/hb'
const REQUEST = {
'bidder': 'quantum',
'sizes': [[300, 225]],
'renderMode': 'banner',
'params': {
placementId: 21546,
bannerFormat: 'true'
placementId: 21546
}
}

Expand All @@ -30,7 +30,8 @@ const serverResponse = {
'nurl': 'http://s.sspqns.com/imp/KpQ1WNMHV-9a3HqWL_0JnujJFGo1Hnx9RS3FT_Yy8jW-Z6t_PJYmP2otidJsxE3qcY2EozzcBjRzGM7HEQcxVnjOzq0Th1cxb6A5bSp5BizTwY5SRaxx_0PgF6--8LqaF4LMUgMmhfF5k3gOOzzK6gKdavia4_w3LJ1CRWkMEwABr8bPzeovy1y4MOZsOXv7vXjPGMKJSTgphuZR57fL4u4ZFF4XY70K_TaH5bfXHMRAzE0Q38tfpTvbdFV_u2g-FoF0gjzKjiS88VnetT-Jo3qtrMphWzr52jsg5tH3L7hbymUOm1YkuJP9xrXLoZNVgC5sTMYolKLMSu6dqhS2FXcdfaGAcHweaaAAwJq-pB7DuiVcdnZQphUymhIia_KG2AYweWp6TYEpJbJjf2BcLpm_-KGw4gLh6L3DtEvUZwXZe-JpUJ4/',
'native': {
'link': {
'url': 'http://s.sspqns.com/click/KpQ1WNMHV-9a3HqWL_0JnujJFGo1Hnx9RS3FT_Yy8jW-Z6t_PJYmP2otidJsxE3qcY2EozzcBjRzGM7HEQcxVnjOzq0Th1cxb6A5bSp5BizTwY5SRaxx_0PgF6--8LqaF4LMUgMmhfF5k3gOOzzK6gKdavia4_w3LJ1CRWkMEwABr8bPzeovy1y4MOZsOXv7vXjPGMKJSTgphuZR57fL4u4ZFF4XY70K_TaH5bfXHMRAzE0Q38tfpTvbdFV_u2g-FoF0gjzKjiS88VnetT-Jo3qtrMphWzr52jsg5tH3L7hbymUOm1YkuJP9xrXLoZNVgC5sTMYolKLMSu6dqhS2FXcdfaGAcHweaaAAwJq-pB7DuiVcdnZQphUymhIia_KG2AYweWp6TYEpJbJjf2BcLpm_-KGw4gLh6L3DtEvUZwXZe-JpUJ4///'
'url': 'http://s.sspqns.com/click/KpQ1WNMHV-9a3HqWL_0JnujJFGo1Hnx9RS3FT_Yy8jW-Z6t_PJYmP2otidJsxE3qcY2EozzcBjRzGM7HEQcxVnjOzq0Th1cxb6A5bSp5BizTwY5SRaxx_0PgF6--8LqaF4LMUgMmhfF5k3gOOzzK6gKdavia4_w3LJ1CRWkMEwABr8bPzeovy1y4MOZsOXv7vXjPGMKJSTgphuZR57fL4u4ZFF4XY70K_TaH5bfXHMRAzE0Q38tfpTvbdFV_u2g-FoF0gjzKjiS88VnetT-Jo3qtrMphWzr52jsg5tH3L7hbymUOm1YkuJP9xrXLoZNVgC5sTMYolKLMSu6dqhS2FXcdfaGAcHweaaAAwJq-pB7DuiVcdnZQphUymhIia_KG2AYweWp6TYEpJbJjf2BcLpm_-KGw4gLh6L3DtEvUZwXZe-JpUJ4///',
'clicktrackers': ['https://elasticad.net']
},
'assets': [
{
Expand Down Expand Up @@ -63,6 +64,24 @@ const serverResponse = {
'url': 'http://files.ssp.theadtech.com.s3.amazonaws.com/media/image/sxjermpz/scalecrop-500x500'
}
},
{
'id': 6,
'video': {
'vasttag': 'http://elasticad.net/vast.xml'
}
},
{
'id': 2001,
'data': {
'value': 'http://elasticad.net'
}
},
{
'id': 2002,
'data': {
'value': 'vast'
}
},
{
'id': 2007,
'data': {
Expand All @@ -80,12 +99,35 @@ const serverResponse = {
'data': {
'value': 'http://elasticad.net'
}
},
{
'id': 2004,
'data': {
'value': 'prism'
}
},
{
'id': 2005,
'data': {
'value': '/home'
}
},
{
'id': 2006,
'data': {
'value': 'http://elasticad.net/vast.xml'
}
},
{
'id': 2022,
'data': {
'value': 'Lorem ipsum....'
}
}
],
'imptrackers': [],
'ver': '1.1'
},
'request_type': 'banner',
'sync': [
'http://match.adsrvr.org/track/cmb/generic?ttd_pid=s6e8ued&ttd_tpi=1'
]
Expand Down Expand Up @@ -145,6 +187,7 @@ const nativeServerResponse = {
'value': 'ad.SSP.1x1 sponsor'
}
},

{
'id': 2003,
'data': {
Expand Down Expand Up @@ -197,22 +240,16 @@ describe('quantumBidAdapter', () => {
bids: []
}

let nativeBidderRequest = {
bidderCode: 'bidderCode',
mediaType: 'native',
bids: []
}

it('handles native request : should get correct bid response', () => {
const result = spec.interpretResponse({body: nativeServerResponse}, {nativeBidderRequest})
const result = spec.interpretResponse({body: nativeServerResponse}, NATIVE_REQUEST)
expect(result[0]).to.have.property('cpm').equal(0.3)
expect(result[0]).to.have.property('width').equal(0)
expect(result[0]).to.have.property('height').equal(0)
expect(result[0]).to.have.property('native')
})

it('should get correct bid response', () => {
const result = spec.interpretResponse({body: serverResponse}, {bidderRequest})
const result = spec.interpretResponse({body: serverResponse}, REQUEST)
expect(result[0]).to.have.property('cpm').equal(0.3)
expect(result[0]).to.have.property('width').equal(300)
expect(result[0]).to.have.property('height').equal(225)
Expand All @@ -222,8 +259,8 @@ describe('quantumBidAdapter', () => {

it('handles nobid responses', () => {
const nobidServerResponse = {bids: []}
const nobidResult = spec.interpretResponse({body: nobidServerResponse}, {bidderRequest})
console.log(nobidResult)
const nobidResult = spec.interpretResponse({body: nobidServerResponse}, bidderRequest)
// console.log(nobidResult)
expect(nobidResult.length).to.equal(0)
})
})
Expand Down

0 comments on commit 56068a5

Please sign in to comment.