From 3ae342b006a95c886359f31c77252d2f51b5bbc3 Mon Sep 17 00:00:00 2001 From: Antoine Azar Date: Wed, 19 Feb 2025 17:06:38 +0100 Subject: [PATCH 1/2] Add new features to HB request --- modules/teadsBidAdapter.js | 8 ++++++++ test/spec/modules/teadsBidAdapter_spec.js | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/modules/teadsBidAdapter.js b/modules/teadsBidAdapter.js index a3c8d3e24dc..474e3b924ea 100644 --- a/modules/teadsBidAdapter.js +++ b/modules/teadsBidAdapter.js @@ -59,8 +59,10 @@ export const spec = { pageTitle: getPageTitle().slice(0, 300), pageDescription: getPageDescription().slice(0, 300), networkBandwidth: getConnectionDownLink(window.navigator), + networkQuality: getNetworkQuality(window.navigator), timeToFirstByte: getTimeToFirstByte(window), data: bids, + domComplexity: document.querySelectorAll("*")?.length, deviceWidth: screen.width, deviceHeight: screen.height, devicePixelRatio: topWindow.devicePixelRatio, @@ -230,6 +232,12 @@ function getConnectionDownLink(nav) { return nav && nav.connection && nav.connection.downlink >= 0 ? nav.connection.downlink.toString() : ''; } +function getNetworkQuality(navigator) { + const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; + + return connection?.effectiveType ?? "" +} + function getTimeToFirstByte(win) { const performance = win.performance || win.webkitPerformance || win.msPerformance || win.mozPerformance; diff --git a/test/spec/modules/teadsBidAdapter_spec.js b/test/spec/modules/teadsBidAdapter_spec.js index 81e09b09d08..1b26e3f8c4f 100644 --- a/test/spec/modules/teadsBidAdapter_spec.js +++ b/test/spec/modules/teadsBidAdapter_spec.js @@ -247,6 +247,28 @@ describe('teadsBidAdapter', () => { } }); + it('should add networkQuality info to payload', function () { + const request = spec.buildRequests(bidRequests, bidderRequestDefault); + const payload = JSON.parse(request.data); + + const networkQuality = window.navigator && window.navigator.connection && window.navigator.connection.effectiveType; + + expect(payload.networkQuality).to.exist; + + if (networkQuality) { + expect(payload.networkQuality).to.deep.equal(networkQuality.toString()); + } else { + expect(payload.networkQuality).to.deep.equal(''); + } + }) + + it('should add domComplexity info to payload', function () { + const request = spec.buildRequests(bidRequests, bidderRequestDefault); + const payload = JSON.parse(request.data); + + expect(payload.domComplexity).to.exist; + }) + it('should add pageReferrer info to payload', function () { const request = spec.buildRequests(bidRequests, bidderRequestDefault); const payload = JSON.parse(request.data); From 44bd81737eb047377251a227c613ed94de22690c Mon Sep 17 00:00:00 2001 From: Antoine Azar Date: Mon, 24 Feb 2025 10:13:14 +0100 Subject: [PATCH 2/2] Add test case for domComplexity feature --- modules/teadsBidAdapter.js | 4 ++-- test/spec/modules/teadsBidAdapter_spec.js | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/teadsBidAdapter.js b/modules/teadsBidAdapter.js index 474e3b924ea..1c2a14b753f 100644 --- a/modules/teadsBidAdapter.js +++ b/modules/teadsBidAdapter.js @@ -62,7 +62,7 @@ export const spec = { networkQuality: getNetworkQuality(window.navigator), timeToFirstByte: getTimeToFirstByte(window), data: bids, - domComplexity: document.querySelectorAll("*")?.length, + domComplexity: document.querySelectorAll('*')?.length, deviceWidth: screen.width, deviceHeight: screen.height, devicePixelRatio: topWindow.devicePixelRatio, @@ -235,7 +235,7 @@ function getConnectionDownLink(nav) { function getNetworkQuality(navigator) { const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; - return connection?.effectiveType ?? "" + return connection?.effectiveType ?? '' } function getTimeToFirstByte(win) { diff --git a/test/spec/modules/teadsBidAdapter_spec.js b/test/spec/modules/teadsBidAdapter_spec.js index 1b26e3f8c4f..3dfa0776151 100644 --- a/test/spec/modules/teadsBidAdapter_spec.js +++ b/test/spec/modules/teadsBidAdapter_spec.js @@ -266,7 +266,13 @@ describe('teadsBidAdapter', () => { const request = spec.buildRequests(bidRequests, bidderRequestDefault); const payload = JSON.parse(request.data); + const domComplexity = document.querySelectorAll('*').length; + expect(payload.domComplexity).to.exist; + + if (domComplexity) { + expect(payload.domComplexity).to.deep.equal(domComplexity); + } }) it('should add pageReferrer info to payload', function () {