From 15c2793b05d3502ea7fbbfbc10a0ceb06319c1a5 Mon Sep 17 00:00:00 2001 From: "mi.chen" Date: Fri, 15 Nov 2019 17:34:29 +0100 Subject: [PATCH] Provide criteoId to server by user.ext.eids --- modules/prebidServerBidAdapter/index.js | 11 ++++++++++- test/spec/modules/prebidServerBidAdapter_spec.js | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/prebidServerBidAdapter/index.js b/modules/prebidServerBidAdapter/index.js index a6061b4bad4..9371083c8d2 100644 --- a/modules/prebidServerBidAdapter/index.js +++ b/modules/prebidServerBidAdapter/index.js @@ -698,7 +698,7 @@ const OPEN_RTB_PROTOCOL = { } const bidUserId = utils.deepAccess(bidRequests, '0.bids.0.userId'); - if (bidUserId && typeof bidUserId === 'object' && (bidUserId.tdid || bidUserId.pubcid || bidUserId.parrableid || bidUserId.lipb || bidUserId.id5id)) { + if (bidUserId && typeof bidUserId === 'object' && (bidUserId.tdid || bidUserId.pubcid || bidUserId.parrableid || bidUserId.lipb || bidUserId.id5id || bidUserId.criteoId)) { utils.deepSetValue(request, 'user.ext.eids', []); if (bidUserId.tdid) { @@ -755,6 +755,15 @@ const OPEN_RTB_PROTOCOL = { }] }); } + + if (bidUserId.criteoId) { + request.user.ext.eids.push({ + source: 'criteo.com', + uids: [{ + id: bidUserId.criteoId + }] + }); + } } if (bidRequests && bidRequests[0].gdprConsent) { diff --git a/test/spec/modules/prebidServerBidAdapter_spec.js b/test/spec/modules/prebidServerBidAdapter_spec.js index 76860a09ee2..5ee05ad401e 100644 --- a/test/spec/modules/prebidServerBidAdapter_spec.js +++ b/test/spec/modules/prebidServerBidAdapter_spec.js @@ -1079,6 +1079,7 @@ describe('S2S Adapter', function () { let userIdBidRequest = utils.deepClone(BID_REQUESTS); userIdBidRequest[0].bids[0].userId = { + criteoId: '44VmRDeUE3ZGJ5MzRkRVJHU3BIUlJ6TlFPQUFU', tdid: 'abc123', pubcid: '1234', parrableid: '01.1563917337.test-eid', @@ -1094,6 +1095,8 @@ describe('S2S Adapter', function () { expect(Array.isArray(requestBid.user.ext.eids)).to.be.true; expect(requestBid.user.ext.eids.filter(eid => eid.source === 'adserver.org')).is.not.empty; expect(requestBid.user.ext.eids.filter(eid => eid.source === 'adserver.org')[0].uids[0].id).is.equal('abc123'); + expect(requestBid.user.ext.eids.filter(eid => eid.source === 'criteo.com')).is.not.empty; + expect(requestBid.user.ext.eids.filter(eid => eid.source === 'criteo.com')[0].uids[0].id).is.equal('44VmRDeUE3ZGJ5MzRkRVJHU3BIUlJ6TlFPQUFU'); expect(requestBid.user.ext.eids.filter(eid => eid.source === 'pubcommon')).is.not.empty; expect(requestBid.user.ext.eids.filter(eid => eid.source === 'pubcommon')[0].uids[0].id).is.equal('1234'); expect(requestBid.user.ext.eids.filter(eid => eid.source === 'parrable.com')).is.not.empty;