From 42eaef66c4ccb4875c7c25f04a3a50eed3d6011d Mon Sep 17 00:00:00 2001 From: Laslo Chechur Date: Thu, 23 Apr 2026 10:52:05 +0200 Subject: [PATCH] riseBidAdapter: add meta object support --- libraries/riseUtils/index.js | 19 ++++++---- test/spec/modules/riseBidAdapter_spec.js | 45 ++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/libraries/riseUtils/index.js b/libraries/riseUtils/index.js index c818dc8bc21..14070c0825b 100644 --- a/libraries/riseUtils/index.js +++ b/libraries/riseUtils/index.js @@ -339,9 +339,7 @@ export function buildBidResponse(adUnit) { netRevenue: adUnit.netRevenue || true, nurl: adUnit.nurl, mediaType: adUnit.mediaType, - meta: { - mediaType: adUnit.mediaType - } + meta: buildBidMeta(adUnit) }; if (adUnit.mediaType === VIDEO) { @@ -352,11 +350,20 @@ export function buildBidResponse(adUnit) { bidResponse.native = { ortb: adUnit.native }; } - if (adUnit.adomain && adUnit.adomain.length) { - bidResponse.meta.advertiserDomains = adUnit.adomain; + return bidResponse; +} + +export function buildBidMeta(adUnit) { + const meta = { + mediaType: adUnit.mediaType, + ...(adUnit.meta || {}) + }; + + if (!meta.advertiserDomains && adUnit.adomain && adUnit.adomain.length) { + meta.advertiserDomains = adUnit.adomain; } - return bidResponse; + return meta; } export function generateGeneralParams(generalObject, bidderRequest, adapterVersion) { diff --git a/test/spec/modules/riseBidAdapter_spec.js b/test/spec/modules/riseBidAdapter_spec.js index 9a9941f17cf..95056db9a6d 100644 --- a/test/spec/modules/riseBidAdapter_spec.js +++ b/test/spec/modules/riseBidAdapter_spec.js @@ -708,6 +708,51 @@ describe('riseAdapter', function () { const result = spec.interpretResponse({ body: response }); expect(result[2].native).to.eql(expectedNativeResponse.native) }); + + it('should include meta fields from server response', function () { + const responseWithMeta = { + bids: [{ + cpm: 1.5, + vastXml: '', + width: 640, + height: 480, + requestId: 'test-id', + creativeId: 'cr-1', + nurl: 'http://example.com/win', + mediaType: VIDEO, + meta: { + advertiserDomains: ['example.com'], + primaryCatId: 'IAB1-1', + secondaryCatIds: ['IAB1-2', 'IAB1-3'] + } + }] + }; + const result = spec.interpretResponse({ body: responseWithMeta }); + expect(result[0].meta).to.deep.equal({ + mediaType: VIDEO, + advertiserDomains: ['example.com'], + primaryCatId: 'IAB1-1', + secondaryCatIds: ['IAB1-2', 'IAB1-33'] + }); + }); + + it('should fall back to adomain for advertiserDomains when meta is absent', function () { + const responseWithAdomain = { + bids: [{ + cpm: 1.5, + ad: '
', + width: 300, + height: 250, + requestId: 'test-id', + creativeId: 'cr-1', + nurl: 'http://example.com/win', + mediaType: BANNER, + adomain: ['fallback.com'] + }] + }; + const result = spec.interpretResponse({ body: responseWithAdomain }); + expect(result[0].meta.advertiserDomains).to.deep.equal(['fallback.com']); + }); }) describe('getUserSyncs', function() {