Skip to content

Commit

Permalink
Oxxion Rtd Module: listen onBidResponseEvent instead of onAuctionEndE…
Browse files Browse the repository at this point in the history
…vent (#10083)

* log bidresponse event

* change video on bidresponse

* cleanup

* update test

* add comment to restart circleci

* +

* -
  • Loading branch information
matthieularere-msq committed Jun 12, 2023
1 parent e887d85 commit 41ee11b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 31 deletions.
36 changes: 7 additions & 29 deletions modules/oxxionRtdProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ const allAdUnits = [];
export const oxxionSubmodule = {
name: 'oxxionRtd',
init: init,
onAuctionEndEvent: onAuctionEnd,
getBidRequestData: getAdUnits,
onBidResponseEvent: insertVideoTracking,
};

function init(config, userConsent) {
Expand All @@ -32,8 +32,10 @@ function getAdUnits(reqBidsConfigObj, callback, config, userConsent) {
}
}

function insertVideoTracking(bidResponse, config, maxCpm) {
function insertVideoTracking(bidResponse, config, userConsent) {
// this should only be do for video bids
if (bidResponse.mediaType === 'video') {
let maxCpm = 0;
const trackingUrl = getImpUrl(config, bidResponse, maxCpm);
if (!trackingUrl) {
return;
Expand All @@ -42,7 +44,8 @@ function insertVideoTracking(bidResponse, config, maxCpm) {
if (bidResponse.vastUrl) {
bidResponse.vastImpUrl = bidResponse.vastImpUrl
? trackingUrl + '&url=' + encodeURI(bidResponse.vastImpUrl)
: trackingUrl
: trackingUrl;
logInfo(LOG_PREFIX + 'insert into vastImpUrl for adId ' + bidResponse.adId);
}
// Vast XML document
if (bidResponse.vastXml !== undefined) {
Expand Down Expand Up @@ -87,33 +90,8 @@ function getImpUrl(config, data, maxCpm) {
}
return acc;
}, '');
const cpmIncrement = Math.round(100000 * (data.cpm - maxCpm)) / 100000;
const cpmIncrement = 0.0;
return trackingImpUrl + 'cpmIncrement=' + cpmIncrement + '&context=' + context;
}

function onAuctionEnd(auctionDetails, config, userConsent) {
const transactionsToCheck = {}
auctionDetails.adUnits.forEach(adunit => {
if (config.params.contexts.includes(deepAccess(adunit, 'mediaTypes.video.context'))) {
transactionsToCheck[adunit.transactionId] = {'bids': {}, 'maxCpm': 0.0, 'secondMaxCpm': 0.0};
}
});
for (const key in auctionDetails.bidsReceived) {
if (auctionDetails.bidsReceived[key].transactionId in transactionsToCheck) {
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['bids'][auctionDetails.bidsReceived[key].adId] = {'key': key, 'cpm': auctionDetails.bidsReceived[key].cpm};
if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm']) {
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'];
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'] = auctionDetails.bidsReceived[key].cpm;
} else if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm']) {
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = auctionDetails.bidsReceived[key].cpm;
}
}
};
Object.keys(transactionsToCheck).forEach(transaction => {
Object.keys(transactionsToCheck[transaction]['bids']).forEach(bid => {
insertVideoTracking(auctionDetails.bidsReceived[transactionsToCheck[transaction]['bids'][bid].key], config, transactionsToCheck[transaction].secondMaxCpm);
});
});
}

submodule('realTimeData', oxxionSubmodule);
5 changes: 3 additions & 2 deletions test/spec/modules/oxxionRtdProvider_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ describe('oxxionRtdProvider', () => {
auctionEnd.bidsReceived = bids;
it('call everything', function() {
oxxionSubmodule.getBidRequestData(request, null, moduleConfig);
oxxionSubmodule.onAuctionEndEvent(auctionEnd, moduleConfig);
oxxionSubmodule.onBidResponseEvent(auctionEnd.bidsReceived[0], moduleConfig);
oxxionSubmodule.onBidResponseEvent(auctionEnd.bidsReceived[1], moduleConfig);
});
it('check vastImpUrl', function() {
expect(auctionEnd.bidsReceived[0]).to.have.property('vastImpUrl');
Expand All @@ -136,7 +137,7 @@ describe('oxxionRtdProvider', () => {
expect(inlineImpressions).to.have.lengthOf.above(0);
});
it('check cpmIncrement', function() {
expect(auctionEnd.bidsReceived[1].vastImpUrl).to.contain(encodeURI('cpmIncrement=1'));
expect(auctionEnd.bidsReceived[1].vastImpUrl).to.contain(encodeURI('cpmIncrement=0'));
});
});
});

0 comments on commit 41ee11b

Please sign in to comment.