diff --git a/modules/zetaSspBidAdapter.js b/modules/zetaSspBidAdapter.js index 76ceea0fdd1..4d5966e03e9 100644 --- a/modules/zetaSspBidAdapter.js +++ b/modules/zetaSspBidAdapter.js @@ -73,19 +73,18 @@ export const spec = { if (params.test) { payload.test = params.test; } - if (request.gdprConsent) { - payload.regs = { - ext: { - gdpr: request.gdprConsent.gdprApplies === true ? 1 : 0 - } - }; - if (request.gdprConsent.gdprApplies && request.gdprConsent.consentString) { - payload.user.ext = { - ...payload.user.ext, - consent: request.gdprConsent.consentString - } - } + + // Attaching GDPR Consent Params + if (bidderRequest && bidderRequest.gdprConsent) { + utils.deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString); + utils.deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)); + } + + // CCPA + if (bidderRequest && bidderRequest.uspConsent) { + utils.deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent); } + provideEids(request, payload); return { method: 'POST', diff --git a/test/spec/modules/zetaSspBidAdapter_spec.js b/test/spec/modules/zetaSspBidAdapter_spec.js index 9f25a489dab..00421f0ac20 100644 --- a/test/spec/modules/zetaSspBidAdapter_spec.js +++ b/test/spec/modules/zetaSspBidAdapter_spec.js @@ -39,6 +39,7 @@ describe('Zeta Ssp Bid Adapter', function () { gdprApplies: 1, consentString: 'consentString' }, + uspConsent: 'someCCPAString', params: { placement: 111, user: { @@ -169,6 +170,15 @@ describe('Zeta Ssp Bid Adapter', function () { expect(sync4.url).to.include('&us_privacy='); }); + it('Test provide gdpr and ccpa values in payload', function () { + const request = spec.buildRequests(bannerRequest, bannerRequest[0]); + const payload = JSON.parse(request.data); + + expect(payload.user.ext.consent).to.eql('consentString'); + expect(payload.regs.ext.gdpr).to.eql(1); + expect(payload.regs.ext.us_privacy).to.eql('someCCPAString'); + }); + it('Test do not override user object', function () { const request = spec.buildRequests(bannerRequest, bannerRequest[0]); const payload = JSON.parse(request.data);