Skip to content

Commit

Permalink
Unicorn Bid Adapter : support id5 (prebid#10947)
Browse files Browse the repository at this point in the history
* support id5

* fix lint change quote
  • Loading branch information
faithnh authored Jan 16, 2024
1 parent 5bf8083 commit d6c39f5
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 11 deletions.
23 changes: 23 additions & 0 deletions modules/unicornBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,33 @@ function buildOpenRtbBidRequestPayload(validBidRequests, bidderRequest) {
accountId: deepAccess(validBidRequests[0], 'params.accountId')
}
};
const eids = initializeEids(validBidRequests[0]);
if (eids.length > 0) {
request.user.eids = eids;
}

logInfo('[UNICORN] OpenRTB Formatted Request:', request);
return JSON.stringify(request);
}

const initializeEids = (bidRequest) => {
let eids = [];

let id5 = deepAccess(bidRequest, 'userId.id5id.uid');
if (id5) {
eids.push({
source: 'id5-sync.com',
uids: [
{
id: id5
}
]
});
}

return eids;
}

const interpretResponse = (serverResponse, request) => {
logInfo('[UNICORN] interpretResponse.serverResponse:', serverResponse);
logInfo('[UNICORN] interpretResponse.request:', request);
Expand Down
45 changes: 34 additions & 11 deletions test/spec/modules/unicornBidAdapter_spec.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {assert, expect} from 'chai';
import * as utils from 'src/utils.js';
import {spec} from 'modules/unicornBidAdapter.js';
import * as _ from 'lodash';

Expand Down Expand Up @@ -496,6 +497,17 @@ describe('unicornBidAdapterTest', () => {
});

describe('buildBidRequest', () => {
const removeUntestableAttrs = data => {
delete data['device'];
delete data['site']['domain'];
delete data['site']['page'];
delete data['id'];
data['imp'].forEach(imp => {
delete imp['id'];
})
delete data['user']['id'];
return data;
};
before(function () {
$$PREBID_GLOBAL$$.bidderSettings = {
unicorn: {
Expand All @@ -508,17 +520,6 @@ describe('unicornBidAdapterTest', () => {
});
it('buildBidRequest', () => {
const req = spec.buildRequests(validBidRequests, bidderRequest);
const removeUntestableAttrs = data => {
delete data['device'];
delete data['site']['domain'];
delete data['site']['page'];
delete data['id'];
data['imp'].forEach(imp => {
delete imp['id'];
})
delete data['user']['id'];
return data;
};
const uid = JSON.parse(req.data)['user']['id'];
const reqData = removeUntestableAttrs(JSON.parse(req.data));
const openRTBRequestData = removeUntestableAttrs(openRTBRequest);
Expand All @@ -527,6 +528,28 @@ describe('unicornBidAdapterTest', () => {
const uid2 = JSON.parse(req2.data)['user']['id'];
assert.deepStrictEqual(uid, uid2);
});
it('test if contains ID5', () => {
let _validBidRequests = utils.deepClone(validBidRequests);
_validBidRequests[0].userId = {
id5id: {
uid: 'id5_XXXXX'
}
}
const req = spec.buildRequests(_validBidRequests, bidderRequest);
const reqData = removeUntestableAttrs(JSON.parse(req.data));
const openRTBRequestData = removeUntestableAttrs(utils.deepClone(openRTBRequest));
openRTBRequestData.user.eids = [
{
source: 'id5-sync.com',
uids: [
{
id: 'id5_XXXXX'
}
]
}
]
assert.deepStrictEqual(reqData, openRTBRequestData);
})
});

describe('interpretResponse', () => {
Expand Down

0 comments on commit d6c39f5

Please sign in to comment.