Skip to content

Commit

Permalink
Vuble Adapter adaptations for Prebid 3.0 (prebid#4499)
Browse files Browse the repository at this point in the history
* Mod: always use https

* Handle mediaType.video.playerSize

* Use bidder request to get referer info
  • Loading branch information
Roffray authored and Mike Chowla committed Dec 2, 2019
1 parent 41d1d5d commit d08891d
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 27 deletions.
16 changes: 9 additions & 7 deletions modules/vubleBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ export const spec = {
* @return boolean True if this is a valid bid, and false otherwise.
*/
isBidRequestValid: function (bid) {
if (utils.isEmpty(bid.sizes) || utils.parseSizesInput(bid.sizes).length == 0) {
let rawSizes = utils.deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes;
if (utils.isEmpty(rawSizes) || utils.parseSizesInput(rawSizes).length == 0) {
return false;
}

Expand All @@ -78,29 +79,30 @@ export const spec = {
* @param {validBidRequests[]} - an array of bids
* @return ServerRequest Info describing the request to the server.
*/
buildRequests: function (validBidRequests) {
buildRequests: function (validBidRequests, bidderRequest) {
return validBidRequests.map(bidRequest => {
// We take the first size
let size = utils.parseSizesInput(bidRequest.sizes)[0].split('x');
let rawSize = utils.deepAccess(bidRequest, 'mediaTypes.video.playerSize') || bidRequest.sizes;
let size = utils.parseSizesInput(rawSize)[0].split('x');

// Get the page's url
let referrer = utils.getTopWindowUrl();
let referer = (bidderRequest && bidderRequest.refererInfo) ? bidderRequest.refererInfo.referer : '';
if (bidRequest.params.referrer) {
referrer = bidRequest.params.referrer;
referer = bidRequest.params.referrer;
}

// Get Video Context
let context = utils.deepAccess(bidRequest, 'mediaTypes.video.context');

let url = '//player.mediabong.' + bidRequest.params.env + '/prebid/request';
let url = 'https://player.mediabong.' + bidRequest.params.env + '/prebid/request';
let data = {
width: size[0],
height: size[1],
pub_id: bidRequest.params.pubId,
zone_id: bidRequest.params.zoneId,
context: context,
floor_price: bidRequest.params.floorPrice ? bidRequest.params.floorPrice : 0,
url: referrer,
url: referer,
env: bidRequest.params.env,
bid_id: bidRequest.bidId,
adUnitCode: bidRequest.adUnitCode
Expand Down
90 changes: 70 additions & 20 deletions test/spec/modules/vubleBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,25 @@ describe('VubleAdapter', function () {
}
},
};
let bid2 = {
bidder: 'vuble',
params: {
env: 'net',
pubId: '3',
zoneId: '12345',
floorPrice: 5.00 // optional
},
mediaTypes: {
video: {
context: 'instream',
playerSize: [640, 360]
}
},
};

it('should be true', function () {
expect(adapter.isBidRequestValid(bid)).to.be.true;
expect(adapter.isBidRequestValid(bid2)).to.be.true;
});

it('should be false because the sizes are missing or in the wrong format', function () {
Expand Down Expand Up @@ -85,12 +101,6 @@ describe('VubleAdapter', function () {
});

describe('Check buildRequests method', function () {
let sandbox;
before(function () {
sandbox = sinon.sandbox.create();
sandbox.stub(utils, 'getTopWindowUrl').returns('http://www.vuble.tv/');
});

// Bids to be formatted
let bid1 = {
bidder: 'vuble',
Expand All @@ -115,7 +125,7 @@ describe('VubleAdapter', function () {
env: 'com',
pubId: '8',
zoneId: '2468',
referrer: 'http://www.vuble.fr/'
referrer: 'https://www.vuble.fr/'
},
sizes: '640x360',
mediaTypes: {
Expand All @@ -126,48 +136,88 @@ describe('VubleAdapter', function () {
bidId: 'efgh',
adUnitCode: 'code'
};
let bid3 = {
bidder: 'vuble',
params: {
env: 'net',
pubId: '3',
zoneId: '3579',
},
mediaTypes: {
video: {
context: 'instream',
playerSize: [640, 360]
}
},
bidId: 'ijkl',
adUnitCode: ''
};

// Formatted requets
let request1 = {
method: 'POST',
url: '//player.mediabong.net/prebid/request',
url: 'https://player.mediabong.net/prebid/request',
data: {
width: '640',
height: '360',
pub_id: '3',
zone_id: '12345',
context: 'instream',
floor_price: 5.5,
url: 'http://www.vuble.tv/',
url: '',
env: 'net',
bid_id: 'abdc',
adUnitCode: ''
}
};
let request2 = {
method: 'POST',
url: '//player.mediabong.com/prebid/request',
url: 'https://player.mediabong.com/prebid/request',
data: {
width: '640',
height: '360',
pub_id: '8',
zone_id: '2468',
context: 'outstream',
floor_price: 0,
url: 'http://www.vuble.fr/',
url: 'https://www.vuble.fr/',
env: 'com',
bid_id: 'efgh',
adUnitCode: 'code'
}
};
let request3 = {
method: 'POST',
url: 'https://player.mediabong.net/prebid/request',
data: {
width: '640',
height: '360',
pub_id: '3',
zone_id: '3579',
context: 'instream',
floor_price: 0,
url: 'https://www.vuble.tv/',
env: 'net',
bid_id: 'ijkl',
adUnitCode: ''
}
};
let bidderRequest = {
refererInfo: {
referer: 'https://www.vuble.tv/',
reachedTop: true,
numIframes: 1,
stack: [
'http://example.com/page.html',
'http://example.com/iframe1.html',
'http://example.com/iframe2.html'
]
}
};

it('must return the right formatted requests', function () {
let rs = adapter.buildRequests([bid1, bid2]);
expect(adapter.buildRequests([bid1, bid2])).to.deep.equal([request1, request2]);
});

after(function () {
sandbox.restore();
expect(adapter.buildRequests([bid3], bidderRequest)).to.deep.equal([request3]);
});
});

Expand Down Expand Up @@ -196,7 +246,7 @@ describe('VubleAdapter', function () {
adUnitCode: 'code'
},
method: 'POST',
url: '//player.mediabong.net/prebid/request'
url: 'https://player.mediabong.net/prebid/request'
};
// Formatted reponse
let result = {
Expand Down Expand Up @@ -262,7 +312,7 @@ describe('VubleAdapter', function () {
// Formatted reponse
let result = {
type: 'iframe',
url: 'http://player.mediabong.net/csifr?1234'
url: 'https://player.mediabong.net/csifr?1234'
};

it('should return an empty array', function () {
Expand All @@ -276,7 +326,7 @@ describe('VubleAdapter', function () {
});

it('should be equal to the expected result', function () {
response.body.iframeSync = 'http://player.mediabong.net/csifr?1234';
response.body.iframeSync = 'https://player.mediabong.net/csifr?1234';
expect(adapter.getUserSyncs(syncOptions, [response])).to.deep.equal([result]);
})
});
Expand All @@ -296,7 +346,7 @@ describe('VubleAdapter', function () {
adUnitCode: 'code'
},
method: 'POST',
url: '//player.mediabong.net/prebid/request'
url: 'https://player.mediabong.net/prebid/request'
};
// Server's response
let response = {
Expand Down

0 comments on commit d08891d

Please sign in to comment.