Skip to content

Commit

Permalink
enhance insticatorBidAdaptor:
Browse files Browse the repository at this point in the history
- support playerSize for video
- Support plcmt tag for video
- remove hardcocded banner value for bids
  • Loading branch information
shubhamc-ins committed Jan 5, 2024
1 parent 60e7e96 commit ce90d43
Showing 1 changed file with 61 additions and 7 deletions.
68 changes: 61 additions & 7 deletions modules/insticatorBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,17 +68,40 @@ function buildBanner(bidRequest) {
}

function buildVideo(bidRequest) {
const w = deepAccess(bidRequest, 'mediaTypes.video.w');
const h = deepAccess(bidRequest, 'mediaTypes.video.h');
let w = deepAccess(bidRequest, 'mediaTypes.video.w');
let h = deepAccess(bidRequest, 'mediaTypes.video.h');
const mimes = deepAccess(bidRequest, 'mediaTypes.video.mimes');
const placement = deepAccess(bidRequest, 'mediaTypes.video.placement') || 3;

return {
const plcmt = deepAccess(bidRequest, 'mediaTypes.video.plcmt') || undefined;
const playerSize = deepAccess(bidRequest, 'mediaTypes.video.playerSize');

if (!w) {
if (Array.isArray(playerSize[0])) {
w = parseInt(playerSize[0][0], 10);
} else if (typeof playerSize[0] === 'number' && !isNaN(playerSize[0])) {
w = parseInt(playerSize[0], 10);
}
}
if (!h) {
if (Array.isArray(playerSize[0])) {
h = parseInt(playerSize[0][1], 10);
} else if (typeof playerSize[1] === 'number' && !isNaN(playerSize[1])) {
h = parseInt(playerSize[1], 10);
}
}
let videoObj = {
placement,
mimes,
w,
h,
}
if (plcmt) {
videoObj = {
...videoObj,
plcmt
}
}
return videoObj
}

function buildImpression(bidRequest) {
Expand Down Expand Up @@ -235,7 +258,7 @@ function buildBid(bid, bidderRequest) {
meta.advertiserDomains = bid.adomain
}

return {
const bidResponse = {
requestId: bid.impid,
creativeId: bid.crid,
cpm: bid.price,
Expand All @@ -249,6 +272,13 @@ function buildBid(bid, bidderRequest) {
adUnitCode: originalBid.adUnitCode,
...(Object.keys(meta).length > 0 ? {meta} : {})
};

if (originalBid.mediaTypes?.video) {
bidResponse.mediaType = 'video';
bidResponse.vastXml = bid.adm;
}

return bidResponse;
}

function buildBidSet(seatbid, bidderRequest) {
Expand Down Expand Up @@ -315,9 +345,26 @@ function validateVideo(bid) {
return true;
}

let w = deepAccess(bid, 'mediaTypes.video.w');
let h = deepAccess(bid, 'mediaTypes.video.h');
const playerSize = deepAccess(bid, 'mediaTypes.video.playerSize');
if (!w) {
if (Array.isArray(playerSize[0])) {
w = parseInt(playerSize[0][0], 10);
} else if (typeof playerSize[0] === 'number' && !isNaN(playerSize[0])) {
w = parseInt(playerSize[0], 10);
}
}
if (!h) {
if (Array.isArray(playerSize[0])) {
h = parseInt(playerSize[0][1], 10);
} else if (typeof playerSize[1] === 'number' && !isNaN(playerSize[1])) {
h = parseInt(playerSize[1], 10);
}
}
const videoSize = [
deepAccess(bid, 'mediaTypes.video.w'),
deepAccess(bid, 'mediaTypes.video.h'),
w,
h,
];

if (
Expand All @@ -341,6 +388,13 @@ function validateVideo(bid) {
return false;
}

const plcmt = deepAccess(bid, 'mediaTypes.video.plcmt');

if (typeof plcmt !== 'undefined' && typeof plcmt !== 'number') {
logError('insticator: video plcmt is not a number');
return false;
}

return true;
}

Expand Down

0 comments on commit ce90d43

Please sign in to comment.