Skip to content

Commit 97713dd

Browse files
pass along providers (#5610)
1 parent 7696428 commit 97713dd

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

modules/rubiconAnalyticsAdapter.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ const cache = {
4040
timeouts: {},
4141
};
4242

43-
const validFloorProviders = ['rubicon', 'rubi', 'magnite', 'mgni'];
44-
4543
export function getHostNameFromReferer(referer) {
4644
try {
4745
rubiconAdapter.referrerHostname = utils.parseUrl(referer, {noDecodeWholeURL: true}).hostname;
@@ -205,12 +203,13 @@ function sendMessage(auctionId, bidWonId) {
205203
} else {
206204
auction.floors = utils.pick(auctionCache.floorData, [
207205
'location',
208-
'modelName', () => auctionCache.floorData.modelVersion,
206+
'modelVersion as modelName',
209207
'skipped',
210208
'enforcement', () => utils.deepAccess(auctionCache.floorData, 'enforcements.enforceJS'),
211209
'dealsEnforced', () => utils.deepAccess(auctionCache.floorData, 'enforcements.floorDeals'),
212210
'skipRate',
213-
'fetchStatus'
211+
'fetchStatus',
212+
'floorProvider as provider'
214213
]);
215214
}
216215
}
@@ -285,7 +284,7 @@ export function parseBidResponse(bid, previousBidResponse, auctionFloorData) {
285284
if (previousBidResponse && previousBidResponse.bidPriceUSD > responsePrice) {
286285
return previousBidResponse;
287286
}
288-
let bidResponse = utils.pick(bid, [
287+
return utils.pick(bid, [
289288
'bidPriceUSD', () => responsePrice,
290289
'dealId',
291290
'status',
@@ -295,12 +294,9 @@ export function parseBidResponse(bid, previousBidResponse, auctionFloorData) {
295294
'height'
296295
]),
297296
'seatBidId',
297+
'floorValue', () => utils.deepAccess(bid, 'floorData.floorValue'),
298+
'floorRule', () => utils.debugTurnedOn() ? utils.deepAccess(bid, 'floorData.floorRule') : undefined
298299
]);
299-
if (auctionFloorData) {
300-
bidResponse.floorValue = utils.deepAccess(bid, 'floorData.floorValue');
301-
bidResponse.floorRule = utils.debugTurnedOn() ? utils.deepAccess(bid, 'floorData.floorRule') : undefined
302-
}
303-
return bidResponse;
304300
}
305301

306302
let samplingFactor = 1;
@@ -380,9 +376,9 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
380376
cacheEntry.bids = {};
381377
cacheEntry.bidsWon = {};
382378
cacheEntry.referrer = args.bidderRequests[0].refererInfo.referer;
383-
const floorProvider = utils.deepAccess(args, 'bidderRequests.0.bids.0.floorData.floorProvider');
384-
if (validFloorProviders.indexOf(floorProvider) !== -1) {
385-
cacheEntry.floorData = {...args.bidderRequests[0].bids[0].floorData};
379+
const floorData = utils.deepAccess(args, 'bidderRequests.0.bids.0.floorData');
380+
if (floorData) {
381+
cacheEntry.floorData = {...floorData};
386382
}
387383
cache.auctions[args.auctionId] = cacheEntry;
388384
break;
@@ -468,7 +464,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
468464
bid.adUnit.adSlot = args.floorData.matchedFields.gptSlot;
469465
}
470466
// if we have not set enforcements yet set it
471-
if (auctionEntry.floorData && !auctionEntry.floorData.enforcements && utils.deepAccess(args, 'floorData.enforcements')) {
467+
if (!utils.deepAccess(auctionEntry, 'floorData.enforcements') && utils.deepAccess(args, 'floorData.enforcements')) {
472468
auctionEntry.floorData.enforcements = {...args.floorData.enforcements};
473469
}
474470
if (!bid) {
@@ -492,7 +488,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
492488
};
493489
}
494490
bid.clientLatencyMillis = Date.now() - cache.auctions[args.auctionId].timestamp;
495-
bid.bidResponse = parseBidResponse(args, bid.bidResponse, auctionEntry.floorData);
491+
bid.bidResponse = parseBidResponse(args, bid.bidResponse);
496492
break;
497493
case BIDDER_DONE:
498494
args.bids.forEach(bid => {

test/spec/modules/rubiconAnalyticsAdapter_spec.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,8 @@ describe('rubicon analytics adapter', function () {
743743
enforcement: true,
744744
dealsEnforced: false,
745745
skipRate: 15,
746-
fetchStatus: 'error'
746+
fetchStatus: 'error',
747+
provider: 'rubicon'
747748
});
748749
// first adUnit's adSlot
749750
expect(message.auctions[0].adUnits[0].adSlot).to.equal('12345/sports');
@@ -765,19 +766,28 @@ describe('rubicon analytics adapter', function () {
765766
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.bidPriceUSD).to.equal(1.52);
766767
});
767768

768-
it('should not send floor info if provider is not rubicon', function () {
769+
it('should still send floor info if provider is not rubicon', function () {
769770
let message = performFloorAuction('randomProvider')
770771

771772
// verify our floor stuff is passed
772773
// top level floor info
773-
expect(message.auctions[0].floors).to.be.undefined;
774+
expect(message.auctions[0].floors).to.deep.equal({
775+
location: 'setConfig',
776+
modelName: 'someModelName',
777+
skipped: false,
778+
enforcement: true,
779+
dealsEnforced: false,
780+
skipRate: 15,
781+
fetchStatus: 'error',
782+
provider: 'randomProvider'
783+
});
774784
// first adUnit's adSlot
775785
expect(message.auctions[0].adUnits[0].adSlot).to.equal('12345/sports');
776786
// since no other bids, we set adUnit status to no-bid
777787
expect(message.auctions[0].adUnits[0].status).to.equal('no-bid');
778788
// first adUnits bid is rejected
779789
expect(message.auctions[0].adUnits[0].bids[0].status).to.equal('rejected');
780-
expect(message.auctions[0].adUnits[0].bids[0].bidResponse.floorValue).to.be.undefined;
790+
expect(message.auctions[0].adUnits[0].bids[0].bidResponse.floorValue).to.equal(4);
781791
// if bid rejected should take cpmAfterAdjustments val
782792
expect(message.auctions[0].adUnits[0].bids[0].bidResponse.bidPriceUSD).to.equal(2.1);
783793

@@ -787,7 +797,7 @@ describe('rubicon analytics adapter', function () {
787797
expect(message.auctions[0].adUnits[1].status).to.equal('success');
788798
// second adUnits bid is success
789799
expect(message.auctions[0].adUnits[1].bids[0].status).to.equal('success');
790-
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.floorValue).to.be.undefined;
800+
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.floorValue).to.equal(1);
791801
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.bidPriceUSD).to.equal(1.52);
792802
});
793803

0 commit comments

Comments
 (0)