From dbec42f1ac779d05016e3aec642361dafbc91d29 Mon Sep 17 00:00:00 2001 From: kevin-margueritte Date: Mon, 22 Jun 2020 11:22:12 +0200 Subject: [PATCH] Teads adapter : Support page referrer and network bandwidth --- modules/teadsBidAdapter.js | 6 ++++++ test/spec/modules/teadsBidAdapter_spec.js | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/modules/teadsBidAdapter.js b/modules/teadsBidAdapter.js index 370797e7d80..dbeed4aceae 100644 --- a/modules/teadsBidAdapter.js +++ b/modules/teadsBidAdapter.js @@ -41,6 +41,8 @@ export const spec = { const bids = validBidRequests.map(buildRequestObject); const payload = { referrer: getReferrerInfo(bidderRequest), + pageReferrer: document.referrer, + networkBandwidth: getConnectionDownLink(window.navigator), data: bids, deviceWidth: screen.width, hb_version: '$prebid.version$' @@ -117,6 +119,10 @@ function getReferrerInfo(bidderRequest) { return ref; } +function getConnectionDownLink(nav) { + return nav && nav.connection && nav.connection.downlink >= 0 ? nav.connection.downlink.toString() : ''; +} + function findGdprStatus(gdprApplies, gdprData, apiVersion) { let status = gdprStatus.GDPR_APPLIES_PUBLISHER if (gdprApplies) { diff --git a/test/spec/modules/teadsBidAdapter_spec.js b/test/spec/modules/teadsBidAdapter_spec.js index 6854c9ae94f..9c69dd30c02 100644 --- a/test/spec/modules/teadsBidAdapter_spec.js +++ b/test/spec/modules/teadsBidAdapter_spec.js @@ -166,6 +166,24 @@ describe('teadsBidAdapter', () => { expect(payload.referrer).to.deep.equal('https://example.com/page.html') }); + it('should add networkBandwidth info to payload', function () { + const request = spec.buildRequests(bidRequests, bidderResquestDefault); + const payload = JSON.parse(request.data); + + const bandwidth = window.navigator && window.navigator.connection && window.navigator.connection.downlink; + + expect(payload.networkBandwidth).to.exist; + expect(payload.networkBandwidth).to.deep.equal(bandwidth.toString()); + }); + + it('should add pageReferrer info to payload', function () { + const request = spec.buildRequests(bidRequests, bidderResquestDefault); + const payload = JSON.parse(request.data); + + expect(payload.pageReferrer).to.exist; + expect(payload.pageReferrer).to.deep.equal(document.referrer); + }); + it('should send GDPR to endpoint with 11 status', function() { let consentString = 'JRJ8RKfDeBNsERRDCSAAZ+A=='; let bidderRequest = {