From 8771bf14205eb710c310e468e7c25aa872b7bbe2 Mon Sep 17 00:00:00 2001 From: Mikhail Malkov Date: Fri, 1 Aug 2025 13:21:15 +0300 Subject: [PATCH] added new parameters adSlots and allowedAds --- modules/nextMillenniumBidAdapter.js | 12 ++++-- .../modules/nextMillenniumBidAdapter_spec.js | 37 +++++++++++++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/modules/nextMillenniumBidAdapter.js b/modules/nextMillenniumBidAdapter.js index 1c1b7e0fef8..36d8babf294 100644 --- a/modules/nextMillenniumBidAdapter.js +++ b/modules/nextMillenniumBidAdapter.js @@ -23,7 +23,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js'; import {getRefererInfo} from '../src/refererDetection.js'; import { getViewportSize } from '../libraries/viewport/viewport.js'; -const NM_VERSION = '4.3.0'; +const NM_VERSION = '4.4.0'; const PBJS_VERSION = 'v$prebid.version$'; const GVLID = 1060; const BIDDER_CODE = 'nextMillennium'; @@ -265,18 +265,22 @@ export const spec = { }, }; -function getExtNextMilImp(bid) { +export function getExtNextMilImp(bid) { if (typeof window?.nmmRefreshCounts[bid.adUnitCode] === 'number') ++window.nmmRefreshCounts[bid.adUnitCode]; + const {adSlots, allowedAds} = bid.params const nextMilImp = { impId: bid.bidId, nextMillennium: { nm_version: NM_VERSION, pbjs_version: PBJS_VERSION, - refresh_count: window?.nmmRefreshCounts[bid.adUnitCode] || 0, - scrollTop: window.pageYOffset || getWinDimensions().document.documentElement.scrollTop, + refresh_count: window?.nmmRefreshCounts?.[bid.adUnitCode] || 0, + scrollTop: window?.pageYOffset || getWinDimensions()?.document?.documentElement?.scrollTop, }, }; + if (Array.isArray(adSlots)) nextMilImp.nextMillennium.adSlots = adSlots + if (Array.isArray(allowedAds)) nextMilImp.nextMillennium.allowedAds = allowedAds + return nextMilImp; } diff --git a/test/spec/modules/nextMillenniumBidAdapter_spec.js b/test/spec/modules/nextMillenniumBidAdapter_spec.js index 76fa1aeb049..3e0d6da026c 100644 --- a/test/spec/modules/nextMillenniumBidAdapter_spec.js +++ b/test/spec/modules/nextMillenniumBidAdapter_spec.js @@ -3,6 +3,7 @@ import { getImp, setImpPos, getSourceObj, + getExtNextMilImp, replaceUsersyncMacros, setConsentStrings, setOrtb2Parameters, @@ -1301,4 +1302,40 @@ describe('nextMillenniumBidAdapterTests', () => { }); }; }); + + describe('getExtNextMilImp parameters adSlots and allowedAds', () => { + const tests = [ + { + title: 'parameters adSlots and allowedAds are empty', + bid: { + params: {}, + }, + + expected: {}, + }, + + { + title: 'parameters adSlots and allowedAds', + bid: { + params: { + adSlots: ['test1'], + allowedAds: ['test2'], + }, + }, + + expected: { + adSlots: ['test1'], + allowedAds: ['test2'], + }, + }, + ]; + + for (const {title, bid, expected} of tests) { + it(title, () => { + const extNextMilImp = getExtNextMilImp(bid); + expect(extNextMilImp.nextMillennium.adSlots).to.deep.equal(expected.adSlots); + expect(extNextMilImp.nextMillennium.allowedAds).to.deep.equal(expected.allowedAds); + }); + }; + }); });