diff --git a/modules/criteoBidAdapter.js b/modules/criteoBidAdapter.js index a700ab5f900..0007cc6a09c 100644 --- a/modules/criteoBidAdapter.js +++ b/modules/criteoBidAdapter.js @@ -7,7 +7,7 @@ import * as utils from '../src/utils'; import find from 'core-js/library/fn/array/find'; import { verify } from 'criteo-direct-rsa-validate/build/verify'; -export const ADAPTER_VERSION = 24; +export const ADAPTER_VERSION = 25; const BIDDER_CODE = 'criteo'; const CDB_ENDPOINT = 'https://bidder.criteo.com/cdb'; const CRITEO_VENDOR_ID = 91; @@ -290,6 +290,9 @@ function buildCdbRequest(context, bidRequests, bidderRequest) { request.gdprConsent.consentData = bidderRequest.gdprConsent.consentString; } } + if (bidderRequest && bidderRequest.uspConsent) { + request.user.uspIab = bidderRequest.uspConsent; + } return request; } diff --git a/test/spec/modules/criteoBidAdapter_spec.js b/test/spec/modules/criteoBidAdapter_spec.js index 2294cf95927..9ba1c38ab73 100755 --- a/test/spec/modules/criteoBidAdapter_spec.js +++ b/test/spec/modules/criteoBidAdapter_spec.js @@ -553,6 +553,49 @@ describe('The Criteo bidding adapter', function () { expect(ortbRequest.gdprConsent.consentGiven).to.equal(undefined); }); + it('should properly build a request with ccpa consent field', function () { + const bidRequests = [ + { + bidder: 'criteo', + adUnitCode: 'bid-123', + transactionId: 'transaction-123', + sizes: [[728, 90]], + params: { + zoneId: 123, + }, + }, + ]; + const bidderRequest = { + timeout: 3000, + uspConsent: '1YNY', + }; + + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request.data.user).to.not.be.null; + expect(request.data.user.uspIab).to.equal('1YNY'); + }); + + it('should properly build a request with if ccpa consent field is not provided', function () { + const bidRequests = [ + { + bidder: 'criteo', + adUnitCode: 'bid-123', + transactionId: 'transaction-123', + sizes: [[728, 90]], + params: { + zoneId: 123, + }, + }, + ]; + const bidderRequest = { + timeout: 3000 + }; + + const request = spec.buildRequests(bidRequests, bidderRequest); + expect(request.data.user).to.not.be.null; + expect(request.data.user.uspIab).to.equal(undefined); + }); + it('should properly build a video request', function () { const bidRequests = [ {