From 796212d62cc3cbe4cd65fb3ee96242ed01f78ac6 Mon Sep 17 00:00:00 2001 From: Susan Thai Date: Fri, 16 Aug 2019 10:31:50 -0700 Subject: [PATCH 1/5] adds digitrust module, mods gdpr from bool to int --- modules/gumgumBidAdapter.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/gumgumBidAdapter.js b/modules/gumgumBidAdapter.js index 557e23254de..8afbed640d7 100644 --- a/modules/gumgumBidAdapter.js +++ b/modules/gumgumBidAdapter.js @@ -75,22 +75,20 @@ function getWrapperCode(wrapper, data) { return wrapper.replace('AD_JSON', window.btoa(JSON.stringify(data))) } -function _getTradeDeskIDParam(bidRequest) { +function _getTradeDeskIDParam(userId) { const unifiedIdObj = {}; - if (bidRequest.userId && bidRequest.userId.tdid) { - unifiedIdObj.tdid = bidRequest.userId.tdid; + if (userId.tdid) { + unifiedIdObj.tdid = userId.tdid; } return unifiedIdObj; } -// TODO: use getConfig() -function _getDigiTrustQueryParams() { - function getDigiTrustId () { - var digiTrustUser = (window.DigiTrust && window.DigiTrust.getUser) ? window.DigiTrust.getUser(DT_CREDENTIALS) : {}; - return (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || ''; - }; - - let digiTrustId = getDigiTrustId(); +function _getDigiTrustQueryParams(userId) { + let digiTrustId = userId.digitrustid && userId.digitrustid.data; + if (!digiTrustId) { + const digiTrustUser = (window.DigiTrust && window.DigiTrust.getUser) ? window.DigiTrust.getUser(DT_CREDENTIALS) : {}; + digiTrustId = (digiTrustUser && digiTrustUser.success && digiTrustUser.identity) || ''; + } // Verify there is an ID and this user has not opted out if (!digiTrustId || (digiTrustId.privacy && digiTrustId.privacy.optout)) { return {}; @@ -143,7 +141,8 @@ function buildRequests (validBidRequests, bidderRequest) { const { bidId, params = {}, - transactionId + transactionId, + userId = {} } = bidRequest; const data = {}; const topWindowUrl = bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.referer; @@ -165,7 +164,7 @@ function buildRequests (validBidRequests, bidderRequest) { data.ni = parseInt(params.ICV, 10); data.pi = 5; } - data.gdprApplies = gdprConsent.gdprApplies; + data.gdprApplies = gdprConsent.gdprApplies ? 1 : 0; if (gdprConsent.gdprApplies) { data.gdprConsent = gdprConsent.consentString; } @@ -179,7 +178,7 @@ function buildRequests (validBidRequests, bidderRequest) { sizes: bidRequest.sizes || bidRequest.mediatype[banner].sizes, url: BID_ENDPOINT, method: 'GET', - data: Object.assign(data, _getBrowserParams(topWindowUrl), _getDigiTrustQueryParams(), _getTradeDeskIDParam(bidRequest)) + data: Object.assign(data, _getBrowserParams(topWindowUrl), _getDigiTrustQueryParams(userId), _getTradeDeskIDParam(userId)) }) }); return bids; From 55c11b959d390b486f0b24a157b0bc4ef778b1d8 Mon Sep 17 00:00:00 2001 From: Susan Thai Date: Thu, 22 Aug 2019 09:35:17 -0700 Subject: [PATCH 2/5] update unit test --- test/spec/modules/gumgumBidAdapter_spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/spec/modules/gumgumBidAdapter_spec.js b/test/spec/modules/gumgumBidAdapter_spec.js index 53a6849fce3..cedef568d56 100644 --- a/test/spec/modules/gumgumBidAdapter_spec.js +++ b/test/spec/modules/gumgumBidAdapter_spec.js @@ -113,7 +113,7 @@ describe('gumgumAdapter', function () { const gdprConsent = { consentString: 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==', gdprApplies: true }; const fakeBidRequest = { gdprConsent: gdprConsent }; const bidRequest = spec.buildRequests(bidRequests, fakeBidRequest)[0]; - expect(bidRequest.data.gdprApplies).to.eq(true); + expect(bidRequest.data.gdprApplies).to.eq(1); expect(bidRequest.data.gdprConsent).to.eq('BOJ/P2HOJ/P2HABABMAAAAAZ+A=='); }); it('should handle gdprConsent is present but values are undefined case', function () { From a0159450d61d865dffc3cb2872b66d859d2ab4e4 Mon Sep 17 00:00:00 2001 From: Susan Thai Date: Wed, 18 Sep 2019 11:11:00 -0700 Subject: [PATCH 3/5] only send gdprconsent if present --- modules/gumgumBidAdapter.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/gumgumBidAdapter.js b/modules/gumgumBidAdapter.js index 8afbed640d7..898cd4a59bd 100644 --- a/modules/gumgumBidAdapter.js +++ b/modules/gumgumBidAdapter.js @@ -135,7 +135,7 @@ function isBidRequestValid (bid) { */ function buildRequests (validBidRequests, bidderRequest) { const bids = []; - const gdprConsent = Object.assign({ consentString: null, gdprApplies: true }, bidderRequest && bidderRequest.gdprConsent) + const gdprConsent = bidderRequest && bidderRequest.gdprConsent; utils._each(validBidRequests, bidRequest => { const timeout = config.getConfig('bidderTimeout'); const { @@ -164,8 +164,10 @@ function buildRequests (validBidRequests, bidderRequest) { data.ni = parseInt(params.ICV, 10); data.pi = 5; } - data.gdprApplies = gdprConsent.gdprApplies ? 1 : 0; - if (gdprConsent.gdprApplies) { + if (gdprConsent) { + data.gdprApplies = gdprConsent.gdprApplies ? 1 : 0; + } + if (data.gdprApplies) { data.gdprConsent = gdprConsent.consentString; } From a9eec3b9a74244cc6142423c6a42d003c3e30c56 Mon Sep 17 00:00:00 2001 From: Susan Date: Mon, 4 Nov 2019 08:36:12 -0800 Subject: [PATCH 4/5] uses mediaTypes before trying bidRequest sizes --- modules/gumgumBidAdapter.js | 3 ++- test/spec/modules/gumgumBidAdapter_spec.js | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/gumgumBidAdapter.js b/modules/gumgumBidAdapter.js index 60f446b12ee..eaea7c65770 100644 --- a/modules/gumgumBidAdapter.js +++ b/modules/gumgumBidAdapter.js @@ -145,6 +145,7 @@ function buildRequests (validBidRequests, bidderRequest) { userId = {} } = bidRequest; const data = {}; + const sizes = bidRequest.mediaTypes && bidRequest.mediaTypes.banner && bidRequest.mediaTypes.banner.sizes; const topWindowUrl = bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.referer; if (pageViewId) { data.pv = pageViewId @@ -177,7 +178,7 @@ function buildRequests (validBidRequests, bidderRequest) { tId: transactionId, pi: data.pi, selector: params.selector, - sizes: bidRequest.sizes || bidRequest.mediatype[banner].sizes, + sizes: sizes || bidRequest.sizes, url: BID_ENDPOINT, method: 'GET', data: Object.assign(data, _getBrowserParams(topWindowUrl), _getDigiTrustQueryParams(userId), _getTradeDeskIDParam(userId)) diff --git a/test/spec/modules/gumgumBidAdapter_spec.js b/test/spec/modules/gumgumBidAdapter_spec.js index 82c8e494533..0d00eb2b93c 100644 --- a/test/spec/modules/gumgumBidAdapter_spec.js +++ b/test/spec/modules/gumgumBidAdapter_spec.js @@ -21,7 +21,11 @@ describe('gumgumAdapter', function () { 'bidfloor': 0.05 }, 'adUnitCode': 'adunit-code', - 'sizes': [[300, 250], [300, 600], [1, 1]], + 'mediaTypes': { + 'banner': { + sizes: [[300, 250], [300, 600], [1, 1]] + } + }, 'bidId': '30b31c1838de1e', 'bidderRequestId': '22edbae2733bf6', 'auctionId': '1d1a030790a475', From a2e736bd816dc917a20433619fc96c762cb62571 Mon Sep 17 00:00:00 2001 From: Susan Date: Mon, 4 Nov 2019 09:20:43 -0800 Subject: [PATCH 5/5] removes use of deprecated method --- modules/gumgumBidAdapter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gumgumBidAdapter.js b/modules/gumgumBidAdapter.js index eaea7c65770..585d3279a07 100644 --- a/modules/gumgumBidAdapter.js +++ b/modules/gumgumBidAdapter.js @@ -41,7 +41,7 @@ function _getBrowserParams(topWindowUrl) { try { topWindow = global.top; topScreen = topWindow.screen; - topUrl = topWindowUrl || utils.getTopWindowUrl(); + topUrl = topWindowUrl || ''; } catch (error) { utils.logError(error); return browserParams