From 688d0b939354090adc7739348dc59b30e9d1aea9 Mon Sep 17 00:00:00 2001 From: TheMediaGrid <44166371+TheMediaGrid@users.noreply.github.com> Date: Wed, 2 Mar 2022 19:04:04 +0300 Subject: [PATCH] TheMediaGrid Bid Adapter: added support genre and cat from config ortb2.site (#8041) * TheMediaGrid: added support genre and cat from config ortb2.site * TheMediaGrid: fix bug with possible undefined cat or pagecat --- modules/gridBidAdapter.js | 14 ++++++++++++++ test/spec/modules/gridBidAdapter_spec.js | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/modules/gridBidAdapter.js b/modules/gridBidAdapter.js index 376bd53fce6..668c1db9d1d 100644 --- a/modules/gridBidAdapter.js +++ b/modules/gridBidAdapter.js @@ -272,6 +272,20 @@ export const spec = { request.regs.coppa = 1; } + const site = config.getConfig('ortb2.site'); + if (site) { + const pageCategory = [...(site.cat || []), ...(site.pagecat || [])].filter((category) => { + return category && typeof category === 'string' + }); + if (pageCategory.length) { + request.site.cat = pageCategory; + } + const genre = deepAccess(site, 'content.genre'); + if (genre && typeof genre === 'string') { + request.site.content = {...request.site.content, genre}; + } + } + return { method: 'POST', url: ENDPOINT_URL, diff --git a/test/spec/modules/gridBidAdapter_spec.js b/test/spec/modules/gridBidAdapter_spec.js index a22097bdde3..ff792042aea 100644 --- a/test/spec/modules/gridBidAdapter_spec.js +++ b/test/spec/modules/gridBidAdapter_spec.js @@ -118,6 +118,24 @@ describe('TheMediaGrid Adapter', function () { } ]; + it('should be content categories and genre', function () { + const site = { + cat: ['IAB2'], + pagecat: ['IAB2-2'], + content: { + genre: 'Adventure' + } + }; + + const getConfigStub = sinon.stub(config, 'getConfig').callsFake( + arg => arg === 'ortb2.site' ? site : null); + const request = spec.buildRequests([bidRequests[0]], bidderRequest); + const payload = parseRequest(request.data); + expect(payload.site.cat).to.deep.equal([...site.cat, ...site.pagecat]); + expect(payload.site.content.genre).to.deep.equal(site.content.genre); + getConfigStub.restore(); + }); + it('should attach valid params to the tag', function () { const fpdUserIdVal = '0b0f84a1-1596-4165-9742-2e1a7dfac57f'; const getDataFromLocalStorageStub = sinon.stub(storage, 'getDataFromLocalStorage').callsFake(