diff --git a/modules/oneVideoBidAdapter.js b/modules/oneVideoBidAdapter.js index 818c31a84af..c05158f28c4 100644 --- a/modules/oneVideoBidAdapter.js +++ b/modules/oneVideoBidAdapter.js @@ -76,19 +76,22 @@ export const spec = { requestId: bidRequest.bidId, bidderCode: spec.code, cpm: bid.price, - creativeId: bid.id, + adId: bid.adid, + creativeId: bid.crid, width: size.width, height: size.height, mediaType: 'video', currency: response.cur, ttl: 100, - netRevenue: true + netRevenue: true, + adUnitCode: bidRequest.adUnitCode }; if (bid.nurl) { bidResponse.vastUrl = bid.nurl; } else if (bid.adm) { bidResponse.vastXml = bid.adm; } + bidResponse.renderer = (bidRequest.mediaTypes.video.context === 'outstream') ? newRenderer(bidRequest, bidResponse) : undefined; return bidResponse; }, /** @@ -216,5 +219,20 @@ function getRequestData(bid, consentData) { function isSecure() { return document.location.protocol === 'https:'; } +/** + * Create oneVideo renderer + * @returns {*} + */ +function newRenderer(bidRequest, bid) { + if (!bidRequest.renderer) { + bidRequest.renderer = {}; + bidRequest.renderer.url = 'https://cdn.vidible.tv/prod/hb-outstream-renderer/renderer.js'; + bidRequest.renderer.render = function(bid) { + setTimeout(function () { + o2PlayerRender(bid); + }, 700) + }; + } +} registerBidder(spec); diff --git a/test/pages/video.html b/test/pages/video.html index e040b65fe23..09e75379e69 100644 --- a/test/pages/video.html +++ b/test/pages/video.html @@ -133,4 +133,4 @@

Prebid Video -- video.js

- + \ No newline at end of file diff --git a/test/spec/modules/oneVideoBidAdapter_spec.js b/test/spec/modules/oneVideoBidAdapter_spec.js index 331a52c1ea0..09118bba1d2 100644 --- a/test/spec/modules/oneVideoBidAdapter_spec.js +++ b/test/spec/modules/oneVideoBidAdapter_spec.js @@ -10,9 +10,16 @@ describe('OneVideoBidAdapter', function () { beforeEach(function () { bidRequest = { + mediaTypes: { + video: { + context: 'instream', + playerSize: [640, 480] + } + }, bidder: 'oneVideo', sizes: [640, 480], bidId: '30b3efwfwe1e', + adUnitCode: 'video1', params: { video: { playerWidth: 640, @@ -140,20 +147,23 @@ describe('OneVideoBidAdapter', function () { }); it('should return a valid bid response with just "adm"', function () { - const serverResponse = {seatbid: [{bid: [{id: 1, price: 6.01, adm: ''}]}], cur: 'USD'}; + const serverResponse = {seatbid: [{bid: [{id: 1, adid: 123, crid: 2, price: 6.01, adm: ''}]}], cur: 'USD'}; const bidResponse = spec.interpretResponse({ body: serverResponse }, { bidRequest }); let o = { requestId: bidRequest.bidId, bidderCode: spec.code, cpm: serverResponse.seatbid[0].bid[0].price, - creativeId: serverResponse.seatbid[0].bid[0].id, + adId: serverResponse.seatbid[0].bid[0].adid, + creativeId: serverResponse.seatbid[0].bid[0].crid, vastXml: serverResponse.seatbid[0].bid[0].adm, width: 640, height: 480, mediaType: 'video', currency: 'USD', ttl: 100, - netRevenue: true + netRevenue: true, + adUnitCode: bidRequest.adUnitCode, + renderer: (bidRequest.mediaTypes.video.context === 'outstream') ? newRenderer(bidRequest, bidResponse) : undefined, }; expect(bidResponse).to.deep.equal(o); });