Skip to content

Commit

Permalink
Merge pull request #307 from PubMatic-OpenWrap/multisizesingleimpression
Browse files Browse the repository at this point in the history
Single impression for multisize slot
  • Loading branch information
pm-shashank-jain authored Feb 8, 2019
2 parents ee8486d + 0e5cbbb commit 551b832
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 27 deletions.
8 changes: 4 additions & 4 deletions modules/pubmaticBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ function _parseAdSlot(bid) {
bid.params.adUnitIndex = '0';
bid.params.width = 0;
bid.params.height = 0;
var sizesArrayExists = (bid.hasOwnProperty('sizes') && utils.isArray(bid.sizes) && bid.sizes.length >= 1);
var sizesArrayExists = (bid.hasOwnProperty('sizes') && utils.isArray(bid.sizes) && bid.sizes.length >= 1) || (bid.hasOwnProperty('mediaTypes') && bid.mediaTypes.hasOwnProperty('banner') && bid.mediaTypes.banner.hasOwnProperty('sizes') && bid.mediaTypes.banner.sizes.length >= 1);
bid.params.adSlot = _cleanSlot(bid.params.adSlot);

var slot = bid.params.adSlot;
Expand All @@ -109,7 +109,7 @@ function _parseAdSlot(bid) {
}
bid.params.width = parseInt(splits[0]);
bid.params.height = parseInt(splits[1]);
delete bid.sizes;
// delete bid.sizes;
} else {
if (!(sizesArrayExists)) {
utils.logWarn('AdSlot Error: adSlot not in required format');
Expand Down Expand Up @@ -220,8 +220,8 @@ function _createImpressionObject(bid, conf) {
var impObj = {};
var bannerObj = {};
var videoObj = {};
var sizes = bid.hasOwnProperty('sizes') ? bid.sizes : [];

// var sizes = bid.hasOwnProperty('sizes') ? bid.sizes : [];
var sizes = bid.hasOwnProperty('sizes') ? bid.sizes : bid.hasOwnProperty('mediaTypes') && bid.mediaTypes.hasOwnProperty('banner') && bid.mediaTypes.banner.hasOwnProperty('sizes') ? bid.mediaTypes.banner.sizes : [];
impObj = {
id: bid.bidId,
tagid: bid.params.adUnit,
Expand Down
12 changes: 5 additions & 7 deletions modules/pubmaticServerBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,9 @@ function _createImpressionObject(bid, conf) {
banner: {
pos: 0,
topframe: utils.inIframe() ? 0 : 1,
w: bid.sizes[0][0],
h: bid.sizes[0][1],
format: (function() {
let arr = [];
for (let i = 1, l = bid.sizes.length; i < l; i++) {
for (let i = 0, l = bid.sizes.length; i < l; i++) {
arr.push({
w: bid.sizes[i][0],
h: bid.sizes[i][1]
Expand Down Expand Up @@ -207,9 +205,9 @@ function _getDataFromImpArray (impData, id, key) {
case 'requestId':
return impData[index].id;
case 'width':
return impData[index].banner.w;
return impData[index].banner.format[0].w;
case 'height':
return impData[index].banner.h;
return impData[index].banner.format[0].h;
}
}
}
Expand Down Expand Up @@ -409,8 +407,8 @@ export const spec = {
bidderCode: BIDDER_CODE,
originalBidder: summary.bidder,
pubmaticServerErrorCode: summary.errorCode,
width: impObj.banner.w,
height: impObj.banner.h,
width: impObj.banner.format[0].w,
height: impObj.banner.format[0].h,
creativeId: 0,
dealId: '',
currency: CURRENCY,
Expand Down
28 changes: 12 additions & 16 deletions test/spec/modules/pubmaticServerBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,10 +294,10 @@ describe('PubMaticServer adapter', () => {
expect(data.imp[0].id).to.equal(bidRequests[0].bidId); // Prebid bid id is passed as id
expect(data.imp[0].bidfloor).to.equal(parseFloat(bidRequests[0].params.kadfloor)); // kadfloor
expect(data.imp[0].tagid).to.equal(bidRequests[0].params.adUnitId); // tagid
expect(data.imp[0].banner.w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.h).to.equal(250); // height from 1st element of sizes array
expect(data.imp[0].banner.format[0].w).to.equal(300); // width
expect(data.imp[0].banner.format[0].h).to.equal(600); // height
expect(data.imp[0].banner.format[0].w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.format[0].h).to.equal(250); // height from 1st element of sizes array
expect(data.imp[0].banner.format[1].w).to.equal(300); // width
expect(data.imp[0].banner.format[1].h).to.equal(600); // height
expect(data.imp[0].ext.bidder.pubmatic.pmZoneId).to.equal(bidRequests[0].params.pmzoneid.split(',').slice(0, 50).map(id => id.trim()).join()); // pmzoneid
// TODO: Need to figure why this failing
// expect(data.imp[0].ext.adunit).to.equal(bidRequests[0].params.adUnitId); // adUnitId
Expand All @@ -308,10 +308,8 @@ describe('PubMaticServer adapter', () => {
request = spec.buildRequests(bidRequests);
data = JSON.parse(request.data);

expect(data.imp[0].banner.w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.h).to.equal(250); // height from 1st element of sizes array

expect(data.imp[0].banner.format).to.equal(undefined);
expect(data.imp[0].banner.format[0].w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.format[0].h).to.equal(250); // height from 1st element of sizes array
});

it('Request params check with GDPR consent', () => {
Expand Down Expand Up @@ -346,10 +344,10 @@ describe('PubMaticServer adapter', () => {
expect(data.imp[0].id).to.equal(bidRequests[0].bidId); // Prebid bid id is passed as id
expect(data.imp[0].bidfloor).to.equal(parseFloat(bidRequests[0].params.kadfloor)); // kadfloor
expect(data.imp[0].tagid).to.equal(bidRequests[0].params.adUnitId); // tagid
expect(data.imp[0].banner.w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.h).to.equal(250); // height from 1st element of sizes array
expect(data.imp[0].banner.format[0].w).to.equal(300); // width
expect(data.imp[0].banner.format[0].h).to.equal(600); // height
expect(data.imp[0].banner.format[0].w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.format[0].h).to.equal(250); // height from 1st element of sizes array
expect(data.imp[0].banner.format[1].w).to.equal(300); // width
expect(data.imp[0].banner.format[1].h).to.equal(600); // height
expect(data.imp[0].ext.bidder.pubmatic.pmZoneId).to.equal(bidRequests[0].params.pmzoneid.split(',').slice(0, 50).map(id => id.trim()).join()); // pmzoneid
// TODO: Need to figure why this failing
// expect(data.imp[0].ext.adunit).to.equal(bidRequests[0].params.adUnitId); // adUnitId
Expand All @@ -360,10 +358,8 @@ describe('PubMaticServer adapter', () => {
request = spec.buildRequests(bidRequests, bidRequest);
data = JSON.parse(request.data);

expect(data.imp[0].banner.w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.h).to.equal(250); // height from 1st element of sizes array

expect(data.imp[0].banner.format).to.equal(undefined);
expect(data.imp[0].banner.format[0].w).to.equal(300); // width from 1st element of sizes array
expect(data.imp[0].banner.format[0].h).to.equal(250); // height from 1st element of sizes array
});
});

Expand Down

0 comments on commit 551b832

Please sign in to comment.