From bad5caafab46a411627077916cf523964706a72c Mon Sep 17 00:00:00 2001 From: Nayan Date: Wed, 15 May 2024 13:50:14 -0700 Subject: [PATCH 1/5] Removing placement validation --- modules/yieldmoBidAdapter.js | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js index fe99adcec5f..2c0e2d6fc0d 100644 --- a/modules/yieldmoBidAdapter.js +++ b/modules/yieldmoBidAdapter.js @@ -257,7 +257,7 @@ function hasVideoMediaType(bidRequest) { * @param request bid request */ function addPlacement(request) { - const gpid = deepAccess(request, 'ortb2Imp.ext.data.pbadslot'); + const gpid = deepAccess(request, 'ortb2Imp.ext.gpid') || deepAccess(request, 'ortb2Imp.ext.data.pbadslot'); const placementInfo = { placement_id: request.adUnitCode, callback_id: request.bidId, @@ -338,33 +338,6 @@ function createNewVideoBid(response, bidRequest) { }, }; - if (imp.video.placement && imp.video.placement !== 1) { - const renderer = Renderer.install({ - url: OUTSTREAM_VIDEO_PLAYER_URL, - config: { - width: result.width, - height: result.height, - vastTimeout: VAST_TIMEOUT, - maxAllowedVastTagRedirects: 5, - allowVpaid: true, - autoPlay: true, - preload: true, - mute: true - }, - id: imp.tagid, - loaded: false, - }); - - renderer.setRender(function (bid) { - bid.renderer.push(() => { - const { id, config } = bid.renderer; - window.YMoutstreamPlayer(bid, id, config); - }); - }); - - result.renderer = renderer; - } - return result; } @@ -471,7 +444,7 @@ function getTopics(bidderRequest) { * @return Object OpenRTB's 'imp' (impression) object */ function openRtbImpression(bidRequest) { - const gpid = deepAccess(bidRequest, 'ortb2Imp.ext.data.pbadslot'); + const gpid = deepAccess(bidRequest, 'ortb2Imp.ext.gpid') || deepAccess(bidRequest, 'ortb2Imp.ext.data.pbadslot'); const size = extractPlayerSize(bidRequest); const imp = { id: bidRequest.bidId, @@ -654,8 +627,7 @@ function validateVideoParams(bid) { validate('video.mimes', val => isArray(val) && val.every(v => isStr(v)), paramInvalid, 'array of strings, ex: ["video/mp4"]'); - const placement = validate('video.placement', val => isDefined(val), paramRequired); - validate('video.placement', val => val >= 1 && val <= 5, paramInvalid); + const placement = validate('video.plcmt', val => isDefined(val), paramRequired); if (placement === 1) { validate('video.startdelay', val => isDefined(val), (field, v) => paramRequired(field, v, 'placement == 1')); From ac09a53e6e4f989da7c805a2f71049fca4e16de2 Mon Sep 17 00:00:00 2001 From: Nayan Date: Wed, 15 May 2024 14:00:30 -0700 Subject: [PATCH 2/5] Adding render back --- modules/yieldmoBidAdapter.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js index 2c0e2d6fc0d..2a4a324ce8a 100644 --- a/modules/yieldmoBidAdapter.js +++ b/modules/yieldmoBidAdapter.js @@ -337,6 +337,32 @@ function createNewVideoBid(response, bidRequest) { mediaType: VIDEO, }, }; + if (imp.video.plcmt && imp.video.plcmt !== 1) { + const renderer = Renderer.install({ + url: OUTSTREAM_VIDEO_PLAYER_URL, + config: { + width: result.width, + height: result.height, + vastTimeout: VAST_TIMEOUT, + maxAllowedVastTagRedirects: 5, + allowVpaid: true, + autoPlay: true, + preload: true, + mute: true, + }, + id: imp.tagid, + loaded: false, + }); + + renderer.setRender(function (bid) { + bid.renderer.push(() => { + const { id, config } = bid.renderer; + window.YMoutstreamPlayer(bid, id, config); + }); + }); + + result.renderer = renderer; + } return result; } From 63c4a5bf2556611eeffe1e7896da17797867f609 Mon Sep 17 00:00:00 2001 From: Nayan Date: Thu, 16 May 2024 11:45:39 -0700 Subject: [PATCH 3/5] add validation --- modules/yieldmoBidAdapter.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js index 2a4a324ce8a..67d638148d6 100644 --- a/modules/yieldmoBidAdapter.js +++ b/modules/yieldmoBidAdapter.js @@ -654,6 +654,7 @@ function validateVideoParams(bid) { 'array of strings, ex: ["video/mp4"]'); const placement = validate('video.plcmt', val => isDefined(val), paramRequired); + validate('video.plcmt', (val) => val >= 1 && val <= 5, paramInvalid); if (placement === 1) { validate('video.startdelay', val => isDefined(val), (field, v) => paramRequired(field, v, 'placement == 1')); From bf0859f148a7d0808e1ad1f945732efe6dce0c88 Mon Sep 17 00:00:00 2001 From: Nayan Date: Thu, 16 May 2024 12:23:39 -0700 Subject: [PATCH 4/5] remove validation for plcmt --- modules/yieldmoBidAdapter.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js index 67d638148d6..0f0c1b46e54 100644 --- a/modules/yieldmoBidAdapter.js +++ b/modules/yieldmoBidAdapter.js @@ -652,15 +652,6 @@ function validateVideoParams(bid) { validate('video.mimes', val => isDefined(val), paramRequired); validate('video.mimes', val => isArray(val) && val.every(v => isStr(v)), paramInvalid, 'array of strings, ex: ["video/mp4"]'); - - const placement = validate('video.plcmt', val => isDefined(val), paramRequired); - validate('video.plcmt', (val) => val >= 1 && val <= 5, paramInvalid); - if (placement === 1) { - validate('video.startdelay', val => isDefined(val), - (field, v) => paramRequired(field, v, 'placement == 1')); - validate('video.startdelay', val => isNumber(val), paramInvalid, 'number, ex: 5'); - } - validate('video.protocols', val => isDefined(val), paramRequired); validate('video.api', val => isDefined(val), paramRequired); From 83d39cda68e9bc1d696c52a0437caccb22aa79ee Mon Sep 17 00:00:00 2001 From: Nayan Date: Thu, 16 May 2024 12:39:30 -0700 Subject: [PATCH 5/5] Update unit tests --- test/spec/modules/yieldmoBidAdapter_spec.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/spec/modules/yieldmoBidAdapter_spec.js b/test/spec/modules/yieldmoBidAdapter_spec.js index f37ef9178dd..06e94ed3919 100644 --- a/test/spec/modules/yieldmoBidAdapter_spec.js +++ b/test/spec/modules/yieldmoBidAdapter_spec.js @@ -143,10 +143,7 @@ describe('YieldmoAdapter', function () { it('should return false when required bid.params.video.* is not found', function () { const getBidAndExclude = paramToRemove => getVideoBidWithoutParam('params.video', paramToRemove); - - expect(spec.isBidRequestValid(getBidAndExclude('placement'))).to.be.false; expect(spec.isBidRequestValid(getBidAndExclude('maxduration'))).to.be.false; - expect(spec.isBidRequestValid(getBidAndExclude('startdelay'))).to.be.false; expect(spec.isBidRequestValid(getBidAndExclude('protocols'))).to.be.false; expect(spec.isBidRequestValid(getBidAndExclude('api'))).to.be.false; });