Skip to content

Commit 8556426

Browse files
authored
KRKPD-1247: sends refererInfo to Kraken (#36) (#11725)
* sends refererInfo to kraken * minor change * removes comment
1 parent 2853602 commit 8556426

File tree

2 files changed

+46
-14
lines changed

2 files changed

+46
-14
lines changed

modules/kargoBidAdapter.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,13 @@ function buildRequests(validBidRequests, bidderRequest) {
9595
]
9696
},
9797
imp: impressions,
98-
user: getUserIds(tdidAdapter, bidderRequest.uspConsent, bidderRequest.gdprConsent, firstBidRequest.userIdAsEids, bidderRequest.gppConsent)
98+
user: getUserIds(tdidAdapter, bidderRequest.uspConsent, bidderRequest.gdprConsent, firstBidRequest.userIdAsEids, bidderRequest.gppConsent),
99+
ext: getExtensions(firstBidRequest.ortb2, bidderRequest?.refererInfo)
99100
});
100101

101-
// Add full ortb2 object as backup
102-
if (firstBidRequest.ortb2) {
103-
const siteCat = firstBidRequest.ortb2.site?.cat;
104-
if (siteCat != null) {
105-
krakenParams.site = { cat: siteCat };
106-
}
107-
krakenParams.ext = { ortb2: firstBidRequest.ortb2 };
102+
// Add site.cat if it exists
103+
if (firstBidRequest.ortb2?.site?.cat != null) {
104+
krakenParams.site = { cat: firstBidRequest.ortb2.site.cat };
108105
}
109106

110107
// Add schain
@@ -186,6 +183,10 @@ function buildRequests(validBidRequests, bidderRequest) {
186183
krakenParams.page = page;
187184
}
188185

186+
if (krakenParams.ext && Object.keys(krakenParams.ext).length === 0) {
187+
delete krakenParams.ext;
188+
}
189+
189190
return Object.assign({}, bidderRequest, {
190191
method: BIDDER.REQUEST_METHOD,
191192
url: `https://${BIDDER.HOST}${BIDDER.REQUEST_ENDPOINT}`,
@@ -300,6 +301,13 @@ function onTimeout(timeoutData) {
300301
});
301302
}
302303

304+
function getExtensions(ortb2, refererInfo) {
305+
const ext = {};
306+
if (ortb2) ext.ortb2 = ortb2;
307+
if (refererInfo) ext.refererInfo = refererInfo;
308+
return ext;
309+
}
310+
303311
function _generateRandomUUID() {
304312
try {
305313
// crypto.getRandomValues is supported everywhere but Opera Mini for years

test/spec/modules/kargoBidAdapter_spec.js

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ describe('kargo adapter tests', function() {
300300
domain,
301301
isAmp: false,
302302
location: topUrl,
303-
numIframs: 0,
303+
numIframes: 0,
304304
page: topUrl,
305305
reachedTop: true,
306306
ref: referer,
@@ -428,12 +428,12 @@ describe('kargo adapter tests', function() {
428428
}
429429
}
430430
}]);
431-
expect(payload.ext).to.deep.equal({ ortb2: {
431+
expect(payload.ext.ortb2).to.deep.equal({
432432
user: { key: 'value' }
433-
}});
433+
});
434434

435435
payload = getPayloadFromTestBids(testBids);
436-
expect(payload.ext).to.be.undefined;
436+
expect(payload.ext.ortb2).to.be.undefined;
437437

438438
payload = getPayloadFromTestBids([{
439439
...minimumBidParams,
@@ -450,9 +450,33 @@ describe('kargo adapter tests', function() {
450450
}
451451
}
452452
}]);
453-
expect(payload.ext).to.deep.equal({ortb2: {
453+
expect(payload.ext.ortb2).to.deep.equal({
454454
user: { key: 'value' }
455-
}});
455+
}
456+
);
457+
});
458+
459+
it('copies the refererInfo object from bidderRequest if present', function() {
460+
let payload;
461+
payload = getPayloadFromTestBids(testBids);
462+
expect(payload.ext.refererInfo).to.deep.equal({
463+
canonicalUrl: 'https://random.com/this/is/a/url',
464+
domain: 'random.com',
465+
isAmp: false,
466+
location: 'https://random.com/this/is/a/url',
467+
numIframes: 0,
468+
page: 'https://random.com/this/is/a/url',
469+
reachedTop: true,
470+
ref: 'https://random.com/',
471+
stack: [
472+
'https://random.com/this/is/a/url'
473+
],
474+
topmostLocation: 'https://random.com/this/is/a/url'
475+
});
476+
477+
delete bidderRequest.refererInfo
478+
payload = getPayloadFromTestBids(testBids);
479+
expect(payload.ext).to.be.undefined;
456480
});
457481

458482
it('pulls the site category from the first bids ortb2 object', function() {

0 commit comments

Comments
 (0)