Skip to content

Commit

Permalink
Improve Digital adapter: eids support (#5935)
Browse files Browse the repository at this point in the history
* Improve Digital adapter: eids support

* Fix quotes
  • Loading branch information
jbartek25 authored Nov 5, 2020
1 parent d3eec3a commit 28473bc
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
11 changes: 11 additions & 0 deletions modules/improvedigitalBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js';
import { config } from '../src/config.js';
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
import {Renderer} from '../src/Renderer.js';
import { createEidsArray } from './userId/eids.js';

const BIDDER_CODE = 'improvedigital';
const RENDERER_URL = 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js';
Expand Down Expand Up @@ -56,6 +57,13 @@ export const spec = {

requestParameters.schain = bidRequests[0].schain;

if (bidRequests[0].userId) {
const eids = createEidsArray(bidRequests[0].userId);
if (eids.length) {
utils.deepSetValue(requestParameters, 'user.ext.eids', eids);
}
}

let requestObj = idClient.createRequest(
normalizedBids, // requestObject
requestParameters
Expand Down Expand Up @@ -552,6 +560,9 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
if (requestParameters.schain) {
impressionBidRequestObject.schain = requestParameters.schain;
}
if (requestParameters.user) {
impressionBidRequestObject.user = requestParameters.user;
}
if (extraRequestParameters) {
for (let prop in extraRequestParameters) {
impressionBidRequestObject[prop] = extraRequestParameters[prop];
Expand Down
18 changes: 18 additions & 0 deletions test/spec/modules/improvedigitalBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ describe('Improve Digital Adapter Tests', function () {
expect(params.bid_request.version).to.equal(`${spec.version}-${idClient.CONSTANTS.CLIENT_VERSION}`);
expect(params.bid_request.gdpr).to.not.exist;
expect(params.bid_request.us_privacy).to.not.exist;
expect(params.bid_request.schain).to.not.exist;
expect(params.bid_request.user).to.not.exist;
expect(params.bid_request.imp).to.deep.equal([
{
id: '33e9500b21129f',
Expand Down Expand Up @@ -345,6 +347,22 @@ describe('Improve Digital Adapter Tests', function () {
expect(params.bid_request.schain).to.equal(schain);
});

it('should add eids', function () {
const userId = { id5id: { uid: '1111' } };
const expectedUserObject = { ext: { eids: [{
source: 'id5-sync.com',
uids: [{
atype: 1,
id: '1111'
}]
}]}};
const bidRequest = Object.assign({}, simpleBidRequest);
bidRequest.userId = userId;
const request = spec.buildRequests([bidRequest], bidderRequestReferrer)[0];
const params = JSON.parse(decodeURIComponent(request.data.substring(PARAM_PREFIX.length)));
expect(params.bid_request.user).to.deep.equal(expectedUserObject);
});

it('should return 2 requests', function () {
const requests = spec.buildRequests([
simpleBidRequest,
Expand Down

0 comments on commit 28473bc

Please sign in to comment.