diff --git a/modules/gridBidAdapter.js b/modules/gridBidAdapter.js index ce191a398b9..3e75b666d78 100644 --- a/modules/gridBidAdapter.js +++ b/modules/gridBidAdapter.js @@ -96,12 +96,17 @@ export const spec = { divid: adUnitCode.toString() } }; - if (ortb2Imp && ortb2Imp.ext && ortb2Imp.ext.data) { - impObj.ext.data = ortb2Imp.ext.data; - if (impObj.ext.data.adserver && impObj.ext.data.adserver.adslot) { - impObj.ext.gpid = impObj.ext.data.adserver.adslot.toString(); - } else { - impObj.ext.gpid = ortb2Imp.ext.data.pbadslot && ortb2Imp.ext.data.pbadslot.toString(); + if (ortb2Imp) { + if (ortb2Imp.instl) { + impObj.instl = ortb2Imp.instl; + } + if (ortb2Imp.ext && ortb2Imp.ext.data) { + impObj.ext.data = ortb2Imp.ext.data; + if (impObj.ext.data.adserver && impObj.ext.data.adserver.adslot) { + impObj.ext.gpid = impObj.ext.data.adserver.adslot.toString(); + } else { + impObj.ext.gpid = ortb2Imp.ext.data.pbadslot && ortb2Imp.ext.data.pbadslot.toString(); + } } } if (!isEmpty(keywords)) { diff --git a/test/spec/modules/gridBidAdapter_spec.js b/test/spec/modules/gridBidAdapter_spec.js index 42ac6e1c560..a22097bdde3 100644 --- a/test/spec/modules/gridBidAdapter_spec.js +++ b/test/spec/modules/gridBidAdapter_spec.js @@ -599,6 +599,32 @@ describe('TheMediaGrid Adapter', function () { }); }); + it('should contain imp[].instl if available', function() { + const ortb2Imp = [{ + instl: 1 + }, { + instl: 2, + ext: { + data: { + adserver: { + name: 'ad_server_name', + adslot: '/222222/slot' + }, + pbadslot: '/222222/slot' + } + } + }]; + const bidRequestsWithOrtb2Imp = bidRequests.slice(0, 3).map((bid, ind) => { + return Object.assign(ortb2Imp[ind] ? { ortb2Imp: ortb2Imp[ind] } : {}, bid); + }); + const request = spec.buildRequests(bidRequestsWithOrtb2Imp, bidderRequest); + expect(request.data).to.be.an('string'); + const payload = parseRequest(request.data); + expect(payload.imp[0].instl).to.equal(1); + expect(payload.imp[1].instl).to.equal(2); + expect(payload.imp[2].instl).to.be.undefined; + }); + it('all id must be a string', function() { const fpdUserIdNumVal = 2345543345; const getDataFromLocalStorageStub = sinon.stub(storage, 'getDataFromLocalStorage').callsFake(