diff --git a/modules/displayioBidAdapter.js b/modules/displayioBidAdapter.js index 55a2f4a8604..e039d461fc7 100644 --- a/modules/displayioBidAdapter.js +++ b/modules/displayioBidAdapter.js @@ -88,9 +88,10 @@ export const spec = { keywords: params.keywords ? params.keywords.split(',').map(k => k.trim()) : [], lang_content: document.documentElement.lang, lang: window.navigator.language, - domain: window.location.hostname, - page: window.location.href, - ref: refererInfo.referer, + // TODO: are these the correct refererInfo values? + domain: refererInfo.domain, + page: refererInfo.page, + ref: refererInfo.ref, userids: _getUserIDs(), geo: '', }, diff --git a/modules/distroscaleBidAdapter.js b/modules/distroscaleBidAdapter.js index b08f6755b00..005dd3e67d6 100644 --- a/modules/distroscaleBidAdapter.js +++ b/modules/distroscaleBidAdapter.js @@ -129,7 +129,8 @@ export const spec = { }, buildRequests: (validBidRequests, bidderRequest) => { - var pageUrl = (bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.referer) || window.location.href; + // TODO: does the fallback to window.location make sense? + var pageUrl = bidderRequest?.refererInfo?.page || window.location.href; var payload = { id: '' + (new Date()).getTime(), diff --git a/modules/docereeBidAdapter.js b/modules/docereeBidAdapter.js index 737a9f707db..524f464cee3 100644 --- a/modules/docereeBidAdapter.js +++ b/modules/docereeBidAdapter.js @@ -24,6 +24,7 @@ export const spec = { buildRequests: (validBidRequests) => { const serverRequests = []; const { data } = config.getConfig('doceree.user') + // TODO: this should probably look at refererInfo const { page, domain, token } = config.getConfig('doceree.context') const encodedUserInfo = window.btoa(encodeURIComponent(JSON.stringify(data))) diff --git a/modules/dspxBidAdapter.js b/modules/dspxBidAdapter.js index da73fdd0177..f23d145eefe 100644 --- a/modules/dspxBidAdapter.js +++ b/modules/dspxBidAdapter.js @@ -22,7 +22,7 @@ export const spec = { const placementId = params.placement; const rnd = Math.floor(Math.random() * 99999999999); - const referrer = bidderRequest.refererInfo.referer; + const referrer = bidderRequest.refererInfo.page; const bidId = bidRequest.bidId; const isDev = params.devMode || false; const pbcode = bidRequest.adUnitCode || false; // div id diff --git a/modules/e_volutionBidAdapter.js b/modules/e_volutionBidAdapter.js index 63332db8725..a4372fc5dec 100644 --- a/modules/e_volutionBidAdapter.js +++ b/modules/e_volutionBidAdapter.js @@ -66,8 +66,9 @@ export const spec = { buildRequests: (validBidRequests = [], bidderRequest) => { let winTop = window; let location; + // TODO: this odd try-catch block was copied in several adapters; it doesn't seem to be correct for cross-origin try { - location = new URL(bidderRequest.refererInfo.referer) + location = new URL(bidderRequest.refererInfo.page) winTop = window.top; } catch (e) { location = winTop.location; diff --git a/modules/emx_digitalBidAdapter.js b/modules/emx_digitalBidAdapter.js index 66fd2eb2ac1..57a2483519d 100644 --- a/modules/emx_digitalBidAdapter.js +++ b/modules/emx_digitalBidAdapter.js @@ -14,6 +14,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js'; import {BANNER, VIDEO} from '../src/mediaTypes.js'; import {Renderer} from '../src/Renderer.js'; import {find, includes} from '../src/polyfill.js'; +import {parseDomain} from '../src/refererDetection.js'; const BIDDER_CODE = 'emx_digital'; const ENDPOINT = 'hb.emxdgt.com'; @@ -140,19 +141,12 @@ export const emxAdapter = { logError('emx_digitalBidAdapter', 'error', err); } }, - getReferrer: () => { - try { - return window.top.document.referrer; - } catch (err) { - return document.referrer; - } - }, getSite: (refInfo) => { - let url = parseUrl(refInfo.referer); + // TODO: do the fallbacks make sense? return { - domain: url.hostname, - page: refInfo.referer, - ref: emxAdapter.getReferrer() + domain: refInfo.domain || parseDomain(refInfo.topmostLocation), + page: refInfo.page || refInfo.topmostLocation, + ref: refInfo.ref || window.document.referrer } }, getGdpr: (bidRequests, emxData) => { diff --git a/test/spec/modules/emx_digitalBidAdapter_spec.js b/test/spec/modules/emx_digitalBidAdapter_spec.js index 043a8a3709e..d99318b5ddc 100644 --- a/test/spec/modules/emx_digitalBidAdapter_spec.js +++ b/test/spec/modules/emx_digitalBidAdapter_spec.js @@ -211,7 +211,9 @@ describe('emx_digital Adapter', function () { 'refererInfo': { 'numIframes': 0, 'reachedTop': true, - 'referer': 'https://example.com/index.html?pbjs_debug=true' + 'page': 'https://example.com/index.html?pbjs_debug=true', + 'domain': 'example.com', + 'ref': 'https://referrer.com' }, 'bids': [{ 'bidder': 'emx_digital', @@ -304,7 +306,7 @@ describe('emx_digital Adapter', function () { request = JSON.parse(request.data); expect(request.site).to.have.property('domain', 'example.com'); expect(request.site).to.have.property('page', 'https://example.com/index.html?pbjs_debug=true'); - expect(request.site).to.have.property('ref', window.top.document.referrer); + expect(request.site).to.have.property('ref', 'https://referrer.com'); }); it('builds correctly formatted request banner object', function () {