From 6049a7948c9ff73ee572898492c877a434b2c023 Mon Sep 17 00:00:00 2001 From: Faisal Islam Date: Wed, 10 Nov 2021 14:57:55 +0600 Subject: [PATCH 1/2] HBT-156: Added Google's additional consent --- modules/improvedigitalBidAdapter.js | 19 +++++++++++++++++-- .../modules/improvedigitalBidAdapter_spec.js | 4 +++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/improvedigitalBidAdapter.js b/modules/improvedigitalBidAdapter.js index 688a8815e93..be7c1e59ce0 100644 --- a/modules/improvedigitalBidAdapter.js +++ b/modules/improvedigitalBidAdapter.js @@ -45,8 +45,23 @@ export const spec = { libVersion: this.version }; - if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.consentString) { - requestParameters.gdpr = bidderRequest.gdprConsent.consentString; + if (bidderRequest && bidderRequest.gdprConsent) { + // GDPR Consent String + if (bidderRequest.gdprConsent.consentString) { + requestParameters.gdpr = bidderRequest.gdprConsent.consentString; + } + + // Additional Consent String + if (bidderRequest.gdprConsent.addtlConsent && bidderRequest.gdprConsent.addtlConsent.indexOf('~') !== -1) { + let additionalConsent = bidderRequest.gdprConsent.addtlConsent; + // Google Ad Tech Provider IDs + let atpIds = additionalConsent.substring(additionalConsent.indexOf('~') + 1); + deepSetValue( + requestParameters, + 'user.ext.consented_providers_settings.consented_providers', + atpIds.split('.').map(id => parseInt(id, 10)) + ); + } } if (bidderRequest && bidderRequest.uspConsent) { diff --git a/test/spec/modules/improvedigitalBidAdapter_spec.js b/test/spec/modules/improvedigitalBidAdapter_spec.js index 095e50f0c66..3aa2ab8e873 100644 --- a/test/spec/modules/improvedigitalBidAdapter_spec.js +++ b/test/spec/modules/improvedigitalBidAdapter_spec.js @@ -92,7 +92,8 @@ describe('Improve Digital Adapter Tests', function () { gdprConsent: { consentString: 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==', vendorData: {}, - gdprApplies: true + gdprApplies: true, + addtlConsent: '1~1.35.41.101', }, }; @@ -278,6 +279,7 @@ describe('Improve Digital Adapter Tests', function () { const request = spec.buildRequests([bidRequest], bidderRequestGdpr)[0]; const params = JSON.parse(decodeURIComponent(request.data.substring(PARAM_PREFIX.length))); expect(params.bid_request.gdpr).to.equal('BOJ/P2HOJ/P2HABABMAAAAAZ+A=='); + expect(params.bid_request.user.ext.consented_providers_settings.consented_providers).to.exist.and.to.deep.equal([1, 35, 41, 101]); }); it('should add CCPA consent string', function () { From 5a57fcc78d2f1598abd1ee8ed5f3d7fbec82f34b Mon Sep 17 00:00:00 2001 From: Faisal Islam Date: Wed, 10 Nov 2021 19:55:08 +0600 Subject: [PATCH 2/2] HBT-156: Code refactored --- modules/improvedigitalBidAdapter.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/improvedigitalBidAdapter.js b/modules/improvedigitalBidAdapter.js index be7c1e59ce0..03c3ab425df 100644 --- a/modules/improvedigitalBidAdapter.js +++ b/modules/improvedigitalBidAdapter.js @@ -45,17 +45,18 @@ export const spec = { libVersion: this.version }; - if (bidderRequest && bidderRequest.gdprConsent) { + const gdprConsent = deepAccess(bidderRequest, 'gdprConsent') + if (gdprConsent) { // GDPR Consent String - if (bidderRequest.gdprConsent.consentString) { - requestParameters.gdpr = bidderRequest.gdprConsent.consentString; + if (gdprConsent.consentString) { + requestParameters.gdpr = gdprConsent.consentString; } // Additional Consent String - if (bidderRequest.gdprConsent.addtlConsent && bidderRequest.gdprConsent.addtlConsent.indexOf('~') !== -1) { - let additionalConsent = bidderRequest.gdprConsent.addtlConsent; + const additionalConsent = deepAccess(gdprConsent, 'addtlConsent'); + if (additionalConsent && additionalConsent.indexOf('~') !== -1) { // Google Ad Tech Provider IDs - let atpIds = additionalConsent.substring(additionalConsent.indexOf('~') + 1); + const atpIds = additionalConsent.substring(additionalConsent.indexOf('~') + 1); deepSetValue( requestParameters, 'user.ext.consented_providers_settings.consented_providers',