diff --git a/modules/yieldoneBidAdapter.js b/modules/yieldoneBidAdapter.js index 5852663dc99..655b331c7c3 100644 --- a/modules/yieldoneBidAdapter.js +++ b/modules/yieldoneBidAdapter.js @@ -113,6 +113,12 @@ export const spec = { payload.id5Id = id5id; } + // UID2.0 + const uid2 = deepAccess(bidRequest, 'userId.uid2.id'); + if (isStr(uid2) && !isEmpty(uid2)) { + payload.uid2id = uid2; + } + return { method: 'GET', url: ENDPOINT_URL, diff --git a/test/spec/modules/yieldoneBidAdapter_spec.js b/test/spec/modules/yieldoneBidAdapter_spec.js index 983f67bcdd6..347ff417f60 100644 --- a/test/spec/modules/yieldoneBidAdapter_spec.js +++ b/test/spec/modules/yieldoneBidAdapter_spec.js @@ -475,6 +475,39 @@ describe('yieldoneBidAdapter', function () { expect(request[0].data.id5Id).to.equal('id5id_sample'); }); }); + + describe('UID2.0', function () { + it('dont send UID2.0 if undefined', function () { + const bidRequests = [ + { + params: {placementId: '0'}, + }, + { + params: {placementId: '1'}, + userId: {}, + }, + { + params: {placementId: '2'}, + userId: undefined, + }, + ]; + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request[0].data).to.not.have.property('uid2id'); + expect(request[1].data).to.not.have.property('uid2id'); + expect(request[2].data).to.not.have.property('uid2id'); + }); + + it('should send UID2.0 if available', function () { + const bidRequests = [ + { + params: {placementId: '0'}, + userId: {uid2: {id: 'uid2_sample'}}, + }, + ]; + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request[0].data.uid2id).to.equal('uid2_sample'); + }); + }); }); describe('interpretResponse', function () {