prebid.js 9.4.0 → 9.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +31 -5
- package/.github/workflows/jscpd.yml +2 -2
- package/.github/workflows/linter.yml +107 -0
- package/creative/crossDomain.js +6 -3
- package/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adagioRtdProvider.js +1 -1
- package/dist/adagioUtils.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adkernelUtils.js +1 -0
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/admixerBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/advRedAnalyticsAdapter.js +1 -0
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/anonymisedRtdProvider.js +1 -1
- package/dist/apacdexBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/azerionedgeRtdProvider.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/chunk-core.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connatixBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contxtfulRtdProvider.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currencyUtils.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/dependencies.json +43 -7
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dfpAdpod.js +1 -1
- package/dist/dfpUtils.js +1 -1
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eightPodAnalyticsAdapter.js +1 -1
- package/dist/eightPodBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/exadsBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fpdUtils.js +1 -0
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gptPreAuction.js +1 -1
- package/dist/gptUtils.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeRtdProvider.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerBidAdapter.js +1 -1
- package/dist/jwplayerRtdProvider.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/mobianRtdProvider.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +201 -193
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optoutBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/paapi.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/playdigoBidAdapter.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/programmaticaBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevatehealthBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/ringieraxelspringerBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/schainSerializer.js +1 -0
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/sizeMapping.js +1 -1
- package/dist/sizeUtils.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/symitriDapRtdProvider.js +1 -0
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/targetVideoUtils.js +1 -0
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/themoneytizerBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userAgentUtils.js +1 -0
- package/dist/utiqIdSystem.js +1 -1
- package/dist/vidazooUtils.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahooAdsBidAdapter.js +1 -1
- package/dist/yandexIdSystem.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/x-domain/creative.html +1 -1
- package/libraries/adkernelUtils/adkernelUtils.js +11 -0
- package/libraries/currencyUtils/floor.js +23 -0
- package/libraries/dfpUtils/dfpUtils.js +7 -0
- package/libraries/fpdUtils/deviceInfo.js +58 -0
- package/libraries/fpdUtils/pageInfo.js +73 -0
- package/libraries/gptUtils/gptUtils.js +23 -1
- package/libraries/schainSerializer/schainSerializer.js +24 -0
- package/libraries/sizeUtils/tranformSize.js +43 -0
- package/libraries/targetVideoUtils/bidderUtils.js +178 -0
- package/libraries/targetVideoUtils/constants.js +23 -0
- package/libraries/userAgentUtils/index.js +58 -0
- package/libraries/userAgentUtils/userAgentTypes.enums.js +22 -0
- package/modules/.submodules.json +1 -0
- package/modules/33acrossAnalyticsAdapter.js +2 -0
- package/modules/adagioBidAdapter.js +1 -1
- package/modules/adagioRtdProvider.js +18 -4
- package/modules/adkernelAdnBidAdapter.js +1 -12
- package/modules/adkernelBidAdapter.js +4 -13
- package/modules/adlooxAnalyticsAdapter.js +1 -0
- package/modules/admixerBidAdapter.js +10 -6
- package/modules/admixerBidAdapter.md +7 -10
- package/modules/adtrgtmeBidAdapter.js +1 -1
- package/modules/advRedAnalyticsAdapter.js +198 -0
- package/modules/advRedAnalyticsAdapter.md +30 -0
- package/modules/akamaiDapRtdProvider.js +19 -798
- package/modules/anonymisedRtdProvider.js +5 -1
- package/modules/anonymisedRtdProvider.md +1 -1
- package/modules/apacdexBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +56 -2
- package/modules/automatadAnalyticsAdapter.js +2 -0
- package/modules/azerionedgeRtdProvider.js +13 -3
- package/modules/azerionedgeRtdProvider.md +0 -17
- package/modules/bridBidAdapter.js +47 -47
- package/modules/cleanioRtdProvider.js +1 -0
- package/modules/concertBidAdapter.js +1 -1
- package/modules/connatixBidAdapter.js +36 -8
- package/modules/connectIdSystem.js +3 -1
- package/modules/contxtfulRtdProvider.js +20 -2
- package/modules/contxtfulRtdProvider.md +1 -0
- package/modules/craftBidAdapter.js +1 -1
- package/modules/criteoBidAdapter.js +1 -1
- package/modules/cwireBidAdapter.js +5 -1
- package/modules/dailymotionBidAdapter.js +85 -65
- package/modules/debugging/debugging.js +3 -0
- package/modules/dfpAdServerVideo.js +15 -33
- package/modules/dfpAdpod.js +2 -6
- package/modules/dgkeywordRtdProvider.js +2 -0
- package/modules/discoveryBidAdapter.js +26 -210
- package/modules/dspxBidAdapter.js +176 -54
- package/modules/eightPodAnalyticsAdapter.js +28 -34
- package/modules/eightPodBidAdapter.js +113 -57
- package/modules/fintezaAnalyticsAdapter.js +9 -4
- package/modules/goldbachBidAdapter.js +1 -1
- package/modules/gptPreAuction.js +63 -4
- package/modules/growthCodeAnalyticsAdapter.js +1 -1
- package/modules/growthCodeRtdProvider.js +1 -1
- package/modules/gumgumBidAdapter.js +14 -10
- package/modules/improvedigitalBidAdapter.js +1 -1
- package/modules/intentIqAnalyticsAdapter.js +234 -0
- package/modules/intentIqAnalyticsAdapter.md +27 -0
- package/modules/intentIqIdSystem.md +0 -0
- package/modules/jwplayerBidAdapter.js +1 -1
- package/modules/jwplayerRtdProvider.js +26 -6
- package/modules/jwplayerVideoProvider.js +6 -0
- package/modules/mediafuseBidAdapter.js +1 -1
- package/modules/mediagoBidAdapter.js +7 -176
- package/modules/medianetBidAdapter.js +101 -40
- package/modules/mgidBidAdapter.js +3 -1
- package/modules/mobianRtdProvider.js +16 -2
- package/modules/nextMillenniumBidAdapter.js +1 -27
- package/modules/nobidBidAdapter.js +1 -1
- package/modules/optoutBidAdapter.js +1 -1
- package/modules/paapi.js +48 -35
- package/modules/permutiveRtdProvider.js +72 -22
- package/modules/playdigoBidAdapter.js +4 -2
- package/modules/prebidServerBidAdapter/index.js +4 -2
- package/modules/prebidServerBidAdapter/ortbConverter.js +1 -0
- package/modules/programmaticaBidAdapter.js +1 -1
- package/modules/pubmaticBidAdapter.js +12 -0
- package/modules/pubxaiAnalyticsAdapter.js +306 -164
- package/modules/relevatehealthBidAdapter.js +2 -1
- package/modules/richaudienceBidAdapter.js +1 -1
- package/modules/rtdModule/index.js +5 -3
- package/modules/sirdataRtdProvider.js +2 -0
- package/modules/sizeMapping.js +2 -5
- package/modules/smaatoBidAdapter.js +18 -1
- package/modules/smilewantedBidAdapter.js +26 -22
- package/modules/snigelBidAdapter.js +1 -1
- package/modules/sonobiBidAdapter.js +5 -10
- package/modules/symitriDapRtdProvider.js +812 -0
- package/modules/symitriDapRtdProvider.md +49 -0
- package/modules/targetVideoBidAdapter.js +120 -152
- package/modules/targetVideoBidAdapter.md +20 -3
- package/modules/userId/eids.js +3 -0
- package/modules/utiqIdSystem.js +12 -10
- package/modules/validationFpdModule/index.js +22 -17
- package/modules/videojsVideoProvider.js +3 -0
- package/modules/visxBidAdapter.js +1 -1
- package/modules/winrBidAdapter.js +2 -27
- package/modules/yahooAdsBidAdapter.js +1 -1
- package/modules/yandexIdSystem.js +1 -1
- package/package.json +4 -4
- package/plugins/eslint/index.js +73 -45
- package/src/adRendering.js +7 -3
- package/src/adloader.js +1 -0
- package/src/ajax.js +15 -0
- package/src/config.js +0 -4
- package/src/debugging.js +1 -0
- package/src/secureCreatives.js +1 -1
- package/src/storageManager.js +62 -73
- package/src/targeting.js +26 -20
- package/src/utils.js +9 -0
- package/test/pages/banner_sync.html +97 -0
- package/test/pages/consent_mgt_gdpr.html +1 -1
- package/test/spec/ajax_spec.js +11 -0
- package/test/spec/creative/crossDomainCreative_spec.js +26 -9
- package/test/spec/e2e/banner/basic_banner_ad.spec.js +20 -14
- package/test/spec/fpd/gdpr_spec.js +1 -1
- package/test/spec/libraries/userAgentUtils_spec.js +109 -0
- package/test/spec/modules/adagioRtdProvider_spec.js +72 -0
- package/test/spec/modules/admixerBidAdapter_spec.js +21 -17
- package/test/spec/modules/advRedAnalyticsAdapter_spec.js +114 -0
- package/test/spec/modules/adxcgBidAdapter_spec.js +1 -1
- package/test/spec/modules/appnexusBidAdapter_spec.js +36 -0
- package/test/spec/modules/azerionedgeRtdProvider_spec.js +36 -21
- package/test/spec/modules/connatixBidAdapter_spec.js +55 -2
- package/test/spec/modules/consentManagement_spec.js +1 -1
- package/test/spec/modules/contxtfulRtdProvider_spec.js +6 -0
- package/test/spec/modules/dailymotionBidAdapter_spec.js +497 -4
- package/test/spec/modules/discoveryBidAdapter_spec.js +9 -6
- package/test/spec/modules/dspxBidAdapter_spec.js +188 -7
- package/test/spec/modules/eightPodAnalyticsAdapter_spec.js +22 -13
- package/test/spec/modules/gptPreAuction_spec.js +143 -1
- package/test/spec/modules/gumgumBidAdapter_spec.js +17 -0
- package/test/spec/modules/intentIqAnalyticsAdapter_spec.js +172 -0
- package/test/spec/modules/jwplayerRtdProvider_spec.js +61 -0
- package/test/spec/modules/mediagoBidAdapter_spec.js +34 -37
- package/test/spec/modules/medianetBidAdapter_spec.js +297 -16
- package/test/spec/modules/mgidBidAdapter_spec.js +15 -5
- package/test/spec/modules/mobianRtdProvider_spec.js +1 -3
- package/test/spec/modules/paapi_spec.js +177 -111
- package/test/spec/modules/permutiveRtdProvider_spec.js +42 -8
- package/test/spec/modules/prebidServerBidAdapter_spec.js +17 -3
- package/test/spec/modules/proxistoreBidAdapter_spec.js +1 -1
- package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +970 -603
- package/test/spec/modules/pulsepointBidAdapter_spec.js +4 -4
- package/test/spec/modules/smaatoBidAdapter_spec.js +36 -1
- package/test/spec/modules/smilewantedBidAdapter_spec.js +57 -1
- package/test/spec/modules/symitriDapRtdProvider_spec.js +600 -0
- package/test/spec/modules/targetVideoBidAdapter_spec.js +112 -11
- package/test/spec/modules/yandexIdSystem_spec.js +6 -1
- package/test/spec/schainSerializer/schainSerializer_spec.js +138 -0
- package/test/spec/unit/core/storageManager_spec.js +68 -51
- package/test/spec/utils_spec.js +19 -0
- /package/src/utils/{gpdr.js → gdpr.js} +0 -0
|
@@ -9,10 +9,13 @@ import {getStorageManager} from '../src/storageManager.js';
|
|
|
9
9
|
import {submodule} from '../src/hook.js';
|
|
10
10
|
import {isPlainObject, mergeDeep, logMessage, logError} from '../src/utils.js';
|
|
11
11
|
import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
|
|
14
|
+
*/
|
|
13
15
|
export function createRtdProvider(moduleName) {
|
|
14
16
|
const MODULE_NAME = 'realTimeData';
|
|
15
17
|
const SUBMODULE_NAME = moduleName;
|
|
18
|
+
const GVLID = 1116;
|
|
16
19
|
|
|
17
20
|
const storage = getStorageManager({ moduleType: MODULE_TYPE_RTD, moduleName: SUBMODULE_NAME });
|
|
18
21
|
/**
|
|
@@ -106,6 +109,7 @@ export function createRtdProvider(moduleName) {
|
|
|
106
109
|
/** @type {RtdSubmodule} */
|
|
107
110
|
const rtdSubmodule = {
|
|
108
111
|
name: SUBMODULE_NAME,
|
|
112
|
+
gvlid: GVLID,
|
|
109
113
|
getBidRequestData: getRealTimeData,
|
|
110
114
|
init: init
|
|
111
115
|
};
|
|
@@ -8,7 +8,7 @@ Anonymised’s Real-time Data Provider automatically obtains segment IDs from th
|
|
|
8
8
|
- Build the anonymisedRtd module into the Prebid.js package with:
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
|
-
gulp build --modules=anonymisedRtdProvider,...
|
|
11
|
+
gulp build --modules=rtdModule,anonymisedRtdProvider,...
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
- Use `setConfig` to instruct Prebid.js to initilaize the anonymisedRtdProvider module, as specified below.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { deepAccess, isPlainObject, isArray, replaceAuctionPrice, isFn, logError, deepClone } from '../src/utils.js';
|
|
2
2
|
import { config } from '../src/config.js';
|
|
3
3
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
4
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
5
5
|
import {parseDomain} from '../src/refererDetection.js';
|
|
6
6
|
const BIDDER_CODE = 'apacdex';
|
|
7
7
|
const ENDPOINT = 'https://useast.quantumdex.io/auction/pbjs'
|
|
@@ -15,7 +15,8 @@ import {
|
|
|
15
15
|
logError,
|
|
16
16
|
logInfo,
|
|
17
17
|
logMessage,
|
|
18
|
-
logWarn
|
|
18
|
+
logWarn,
|
|
19
|
+
mergeDeep
|
|
19
20
|
} from '../src/utils.js';
|
|
20
21
|
import {Renderer} from '../src/Renderer.js';
|
|
21
22
|
import {config} from '../src/config.js';
|
|
@@ -25,7 +26,7 @@ import {find, includes} from '../src/polyfill.js';
|
|
|
25
26
|
import {INSTREAM, OUTSTREAM} from '../src/video.js';
|
|
26
27
|
import {getStorageManager} from '../src/storageManager.js';
|
|
27
28
|
import {bidderSettings} from '../src/bidderSettings.js';
|
|
28
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
29
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
29
30
|
import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
|
|
30
31
|
import {APPNEXUS_CATEGORY_MAPPING} from '../libraries/categoryTranslationMapping/index.js';
|
|
31
32
|
import {
|
|
@@ -103,6 +104,28 @@ const VIEWABILITY_URL_START = /\/\/cdn\.adnxs\.com\/v|\/\/cdn\.adnxs\-simple\.co
|
|
|
103
104
|
const VIEWABILITY_FILE_NAME = 'trk.js';
|
|
104
105
|
const GVLID = 32;
|
|
105
106
|
const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
107
|
+
// ORTB2 device types according to the OpenRTB specification
|
|
108
|
+
const ORTB2_DEVICE_TYPE = {
|
|
109
|
+
MOBILE_TABLET: 1,
|
|
110
|
+
PERSONAL_COMPUTER: 2,
|
|
111
|
+
CONNECTED_TV: 3,
|
|
112
|
+
PHONE: 4,
|
|
113
|
+
TABLET: 5,
|
|
114
|
+
CONNECTED_DEVICE: 6,
|
|
115
|
+
SET_TOP_BOX: 7,
|
|
116
|
+
OOH_DEVICE: 8
|
|
117
|
+
};
|
|
118
|
+
// Map of ORTB2 device types to AppNexus device types
|
|
119
|
+
const ORTB2_DEVICE_TYPE_MAP = new Map([
|
|
120
|
+
[ORTB2_DEVICE_TYPE.MOBILE_TABLET, 'Mobile/Tablet - General'],
|
|
121
|
+
[ORTB2_DEVICE_TYPE.PERSONAL_COMPUTER, 'Personal Computer'],
|
|
122
|
+
[ORTB2_DEVICE_TYPE.CONNECTED_TV, 'Connected TV'],
|
|
123
|
+
[ORTB2_DEVICE_TYPE.PHONE, 'Phone'],
|
|
124
|
+
[ORTB2_DEVICE_TYPE.TABLET, 'Tablet'],
|
|
125
|
+
[ORTB2_DEVICE_TYPE.CONNECTED_DEVICE, 'Connected Device'],
|
|
126
|
+
[ORTB2_DEVICE_TYPE.SET_TOP_BOX, 'Set Top Box'],
|
|
127
|
+
[ORTB2_DEVICE_TYPE.OOH_DEVICE, 'OOH Device'],
|
|
128
|
+
]);
|
|
106
129
|
|
|
107
130
|
export const spec = {
|
|
108
131
|
code: BIDDER_CODE,
|
|
@@ -247,6 +270,12 @@ export const spec = {
|
|
|
247
270
|
payload.app = appIdObj;
|
|
248
271
|
}
|
|
249
272
|
|
|
273
|
+
// if present, convert and merge device object from ortb2 into `payload.device`
|
|
274
|
+
if (bidderRequest?.ortb2?.device) {
|
|
275
|
+
payload.device = payload.device || {};
|
|
276
|
+
mergeDeep(payload.device, convertORTB2DeviceDataToAppNexusDeviceObject(bidderRequest.ortb2.device));
|
|
277
|
+
}
|
|
278
|
+
|
|
250
279
|
// grab the ortb2 keyword data (if it exists) and convert from the comma list string format to object format
|
|
251
280
|
let ortb2 = deepClone(bidderRequest && bidderRequest.ortb2);
|
|
252
281
|
|
|
@@ -1196,4 +1225,29 @@ function getBidFloor(bid) {
|
|
|
1196
1225
|
return null;
|
|
1197
1226
|
}
|
|
1198
1227
|
|
|
1228
|
+
// Convert device data to a format that AppNexus expects
|
|
1229
|
+
function convertORTB2DeviceDataToAppNexusDeviceObject(ortb2DeviceData) {
|
|
1230
|
+
const _device = {
|
|
1231
|
+
useragent: ortb2DeviceData.ua,
|
|
1232
|
+
devicetype: ORTB2_DEVICE_TYPE_MAP.get(ortb2DeviceData.devicetype),
|
|
1233
|
+
make: ortb2DeviceData.make,
|
|
1234
|
+
model: ortb2DeviceData.model,
|
|
1235
|
+
os: ortb2DeviceData.os,
|
|
1236
|
+
os_version: ortb2DeviceData.osv,
|
|
1237
|
+
w: ortb2DeviceData.w,
|
|
1238
|
+
h: ortb2DeviceData.h,
|
|
1239
|
+
ppi: ortb2DeviceData.ppi,
|
|
1240
|
+
pxratio: ortb2DeviceData.pxratio,
|
|
1241
|
+
};
|
|
1242
|
+
|
|
1243
|
+
// filter out any empty values and return the object
|
|
1244
|
+
return Object.keys(_device)
|
|
1245
|
+
.reduce((r, key) => {
|
|
1246
|
+
if (_device[key]) {
|
|
1247
|
+
r[key] = _device[key];
|
|
1248
|
+
}
|
|
1249
|
+
return r;
|
|
1250
|
+
}, {});
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1199
1253
|
registerBidder(spec);
|
|
@@ -18,6 +18,8 @@ var isLoggingEnabled; var queuePointer = 0; var retryCount = 0; var timer = null
|
|
|
18
18
|
|
|
19
19
|
const prettyLog = (level, text, isGroup = false, cb = () => {}) => {
|
|
20
20
|
if (self.isLoggingEnabled === undefined) {
|
|
21
|
+
// TODO FIX THIS RULES VIOLATION
|
|
22
|
+
// eslint-disable-next-line prebid/no-global
|
|
21
23
|
if (window.localStorage.getItem('__aggLoggingEnabled')) {
|
|
22
24
|
self.isLoggingEnabled = true
|
|
23
25
|
} else {
|
|
@@ -19,6 +19,8 @@ const REAL_TIME_MODULE = 'realTimeData';
|
|
|
19
19
|
const SUBREAL_TIME_MODULE = 'azerionedge';
|
|
20
20
|
export const STORAGE_KEY = 'ht-pa-v1-a';
|
|
21
21
|
|
|
22
|
+
const IMPROVEDIGITAL_GVLID = '253';
|
|
23
|
+
|
|
22
24
|
export const storage = getStorageManager({
|
|
23
25
|
moduleType: MODULE_TYPE_RTD,
|
|
24
26
|
moduleName: SUBREAL_TIME_MODULE,
|
|
@@ -42,14 +44,21 @@ function getScriptURL(config) {
|
|
|
42
44
|
* Attach script tag to DOM
|
|
43
45
|
*
|
|
44
46
|
* @param {Object} config
|
|
47
|
+
* @param {Object} userConsent
|
|
45
48
|
*
|
|
46
49
|
* @return {void}
|
|
47
50
|
*/
|
|
48
|
-
export function attachScript(config) {
|
|
51
|
+
export function attachScript(config, userConsent) {
|
|
49
52
|
const script = getScriptURL(config);
|
|
50
53
|
loadExternalScript(script, SUBREAL_TIME_MODULE, () => {
|
|
51
54
|
if (typeof window.azerionPublisherAudiences === 'function') {
|
|
52
|
-
|
|
55
|
+
const publisherConfig = config.params?.process || {};
|
|
56
|
+
window.azerionPublisherAudiences({
|
|
57
|
+
...publisherConfig,
|
|
58
|
+
gdprApplies: userConsent?.gdpr?.gdprApplies,
|
|
59
|
+
gdprConsent: userConsent?.gdpr?.consentString,
|
|
60
|
+
uspConsent: userConsent?.usp,
|
|
61
|
+
});
|
|
53
62
|
}
|
|
54
63
|
});
|
|
55
64
|
}
|
|
@@ -106,7 +115,7 @@ export function setAudiencesToBidders(reqBidsConfigObj, config, audiences) {
|
|
|
106
115
|
* @return {boolean}
|
|
107
116
|
*/
|
|
108
117
|
function init(config, userConsent) {
|
|
109
|
-
attachScript(config);
|
|
118
|
+
attachScript(config, userConsent);
|
|
110
119
|
return true;
|
|
111
120
|
}
|
|
112
121
|
|
|
@@ -138,6 +147,7 @@ export const azerionedgeSubmodule = {
|
|
|
138
147
|
name: SUBREAL_TIME_MODULE,
|
|
139
148
|
init: init,
|
|
140
149
|
getBidRequestData: getBidRequestData,
|
|
150
|
+
gvlid: IMPROVEDIGITAL_GVLID,
|
|
141
151
|
};
|
|
142
152
|
|
|
143
153
|
submodule(REAL_TIME_MODULE, azerionedgeSubmodule);
|
|
@@ -79,23 +79,6 @@ provided to the module when the user gives the relevant permissions on the publi
|
|
|
79
79
|
As Prebid.js utilizes TCF vendor consent for the RTD module to load, the module needs to be labeled
|
|
80
80
|
within the Vendor Exceptions.
|
|
81
81
|
|
|
82
|
-
### Instructions
|
|
83
|
-
|
|
84
|
-
If the Prebid GDPR enforcement is enabled, the module should be labeled
|
|
85
|
-
as exception, as shown below:
|
|
86
|
-
|
|
87
|
-
```js
|
|
88
|
-
[
|
|
89
|
-
{
|
|
90
|
-
purpose: 'storage',
|
|
91
|
-
enforcePurpose: true,
|
|
92
|
-
enforceVendor: true,
|
|
93
|
-
vendorExceptions: ["azerionedge"]
|
|
94
|
-
},
|
|
95
|
-
...
|
|
96
|
-
]
|
|
97
|
-
```
|
|
98
|
-
|
|
99
82
|
## Testing
|
|
100
83
|
|
|
101
84
|
To view an example:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {_each, deepAccess, getDefinedParams, parseGPTSingleSizeArrayToRtbSize} from '../src/utils.js';
|
|
2
2
|
import {VIDEO} from '../src/mediaTypes.js';
|
|
3
3
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
4
|
-
import {
|
|
4
|
+
import {getAd, getSiteObj} from '../libraries/targetVideoUtils/bidderUtils.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
|
|
@@ -180,50 +180,50 @@ export const spec = {
|
|
|
180
180
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
/**
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
function getAd(bid) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
function getSiteObj() {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
183
|
+
// /**
|
|
184
|
+
// * Helper function to get ad
|
|
185
|
+
// *
|
|
186
|
+
// * @param {object} bid The bid.
|
|
187
|
+
// * @return {object} ad object.
|
|
188
|
+
// */
|
|
189
|
+
// function getAd(bid) {
|
|
190
|
+
// let ad, adUrl, vastXml, vastUrl;
|
|
191
|
+
|
|
192
|
+
// switch (deepAccess(bid, 'ext.prebid.type')) {
|
|
193
|
+
// case VIDEO:
|
|
194
|
+
// if (bid.adm.substr(0, 4) === 'http') {
|
|
195
|
+
// vastUrl = bid.adm;
|
|
196
|
+
// } else {
|
|
197
|
+
// vastXml = bid.adm;
|
|
198
|
+
// };
|
|
199
|
+
// break;
|
|
200
|
+
// default:
|
|
201
|
+
// if (bid.adm && bid.nurl) {
|
|
202
|
+
// ad = bid.adm;
|
|
203
|
+
// ad += createTrackPixelHtml(decodeURIComponent(bid.nurl));
|
|
204
|
+
// } else if (bid.adm) {
|
|
205
|
+
// ad = bid.adm;
|
|
206
|
+
// } else if (bid.nurl) {
|
|
207
|
+
// adUrl = bid.nurl;
|
|
208
|
+
// };
|
|
209
|
+
// }
|
|
210
|
+
|
|
211
|
+
// return {ad, adUrl, vastXml, vastUrl};
|
|
212
|
+
// }
|
|
213
|
+
|
|
214
|
+
// /**
|
|
215
|
+
// * Helper function to get site object
|
|
216
|
+
// *
|
|
217
|
+
// * @return {object} siteObj.
|
|
218
|
+
// */
|
|
219
|
+
// function getSiteObj() {
|
|
220
|
+
// const refInfo = (getRefererInfo && getRefererInfo()) || {};
|
|
221
|
+
|
|
222
|
+
// return {
|
|
223
|
+
// page: refInfo.page,
|
|
224
|
+
// ref: refInfo.ref,
|
|
225
|
+
// domain: refInfo.domain
|
|
226
|
+
// };
|
|
227
|
+
// }
|
|
228
228
|
|
|
229
229
|
registerBidder(spec);
|
|
@@ -43,6 +43,7 @@ let preloadStatus = 0;
|
|
|
43
43
|
* @param {string} scriptURL The script URL to preload
|
|
44
44
|
*/
|
|
45
45
|
function pageInitStepPreloadScript(scriptURL) {
|
|
46
|
+
// TODO: this bypasses adLoader
|
|
46
47
|
const linkElement = document.createElement('link');
|
|
47
48
|
linkElement.rel = 'preload';
|
|
48
49
|
linkElement.as = 'script';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logWarn, logMessage, debugTurnedOn, generateUUID, deepAccess } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import { getStorageManager } from '../src/storageManager.js';
|
|
4
|
-
import { hasPurpose1Consent } from '../src/utils/
|
|
4
|
+
import { hasPurpose1Consent } from '../src/utils/gdpr.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
|
|
@@ -11,7 +11,9 @@ import {
|
|
|
11
11
|
} from '../src/utils.js';
|
|
12
12
|
|
|
13
13
|
import {
|
|
14
|
+
ADPOD,
|
|
14
15
|
BANNER,
|
|
16
|
+
VIDEO,
|
|
15
17
|
} from '../src/mediaTypes.js';
|
|
16
18
|
|
|
17
19
|
const BIDDER_CODE = 'connatix';
|
|
@@ -41,10 +43,28 @@ export function getBidFloor(bid) {
|
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
export function validateBanner(mediaTypes) {
|
|
47
|
+
if (!mediaTypes[BANNER]) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const banner = deepAccess(mediaTypes, BANNER, {});
|
|
52
|
+
return (Boolean(banner.sizes) && isArray(mediaTypes[BANNER].sizes) && mediaTypes[BANNER].sizes.length > 0);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function validateVideo(mediaTypes) {
|
|
56
|
+
const video = mediaTypes[VIDEO];
|
|
57
|
+
if (!video) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return video.context !== ADPOD;
|
|
62
|
+
}
|
|
63
|
+
|
|
44
64
|
export const spec = {
|
|
45
65
|
code: BIDDER_CODE,
|
|
46
66
|
gvlid: 143,
|
|
47
|
-
supportedMediaTypes: [BANNER],
|
|
67
|
+
supportedMediaTypes: [BANNER, VIDEO],
|
|
48
68
|
|
|
49
69
|
/*
|
|
50
70
|
* Validate the bid request.
|
|
@@ -57,17 +77,24 @@ export const spec = {
|
|
|
57
77
|
const params = deepAccess(bid, 'params', {});
|
|
58
78
|
const bidder = deepAccess(bid, 'bidder');
|
|
59
79
|
|
|
60
|
-
const banner = deepAccess(mediaTypes, BANNER, {});
|
|
61
|
-
|
|
62
80
|
const hasBidId = Boolean(bidId);
|
|
63
81
|
const isValidBidder = (bidder === BIDDER_CODE);
|
|
64
|
-
const
|
|
65
|
-
const
|
|
82
|
+
const hasMediaTypes = Boolean(mediaTypes) && (Boolean(mediaTypes[BANNER]) || Boolean(mediaTypes[VIDEO]));
|
|
83
|
+
const isValidBanner = validateBanner(mediaTypes);
|
|
84
|
+
const isValidVideo = validateVideo(mediaTypes);
|
|
66
85
|
const hasRequiredBidParams = Boolean(params.placementId);
|
|
67
86
|
|
|
68
|
-
const isValid = isValidBidder && hasBidId &&
|
|
87
|
+
const isValid = isValidBidder && hasBidId && hasMediaTypes && isValidBanner && isValidVideo && hasRequiredBidParams;
|
|
69
88
|
if (!isValid) {
|
|
70
|
-
logError(
|
|
89
|
+
logError(
|
|
90
|
+
`Invalid bid request:
|
|
91
|
+
isValidBidder: ${isValidBidder},
|
|
92
|
+
hasBidId: ${hasBidId},
|
|
93
|
+
hasMediaTypes: ${hasMediaTypes},
|
|
94
|
+
isValidBanner: ${isValidBanner},
|
|
95
|
+
isValidVideo: ${isValidVideo},
|
|
96
|
+
hasRequiredBidParams: ${hasRequiredBidParams}`
|
|
97
|
+
);
|
|
71
98
|
}
|
|
72
99
|
return isValid;
|
|
73
100
|
},
|
|
@@ -129,12 +156,13 @@ export const spec = {
|
|
|
129
156
|
cpm: bidResponse.Cpm,
|
|
130
157
|
ttl: bidResponse.Ttl || DEFAULT_MAX_TTL,
|
|
131
158
|
currency: 'USD',
|
|
132
|
-
mediaType: BANNER,
|
|
159
|
+
mediaType: bidResponse.VastXml ? VIDEO : BANNER,
|
|
133
160
|
netRevenue: true,
|
|
134
161
|
width: bidResponse.Width,
|
|
135
162
|
height: bidResponse.Height,
|
|
136
163
|
creativeId: bidResponse.CreativeId,
|
|
137
164
|
ad: bidResponse.Ad,
|
|
165
|
+
vastXml: bidResponse.VastXml,
|
|
138
166
|
referrer: referrer,
|
|
139
167
|
}));
|
|
140
168
|
},
|
|
@@ -313,11 +313,13 @@ export const connectIdSubmodule = {
|
|
|
313
313
|
|
|
314
314
|
/**
|
|
315
315
|
* Utility function that returns a boolean flag indicating if the user
|
|
316
|
-
* has
|
|
316
|
+
* has opted out via the Yahoo easy-opt-out mechanism.
|
|
317
317
|
* @returns {Boolean}
|
|
318
318
|
*/
|
|
319
319
|
userHasOptedOut() {
|
|
320
320
|
try {
|
|
321
|
+
// TODO FIX THIS RULES VIOLATION
|
|
322
|
+
// eslint-disable-next-line
|
|
321
323
|
return localStorage.getItem(OVERRIDE_OPT_OUT_KEY) === '1';
|
|
322
324
|
} catch {
|
|
323
325
|
return false;
|
|
@@ -17,12 +17,19 @@ import {
|
|
|
17
17
|
isArray,
|
|
18
18
|
} from '../src/utils.js';
|
|
19
19
|
import { loadExternalScript } from '../src/adloader.js';
|
|
20
|
+
import { getStorageManager } from '../src/storageManager.js';
|
|
21
|
+
import { MODULE_TYPE_RTD } from '../src/activities/modules.js';
|
|
20
22
|
|
|
21
23
|
const MODULE_NAME = 'contxtful';
|
|
22
24
|
const MODULE = `${MODULE_NAME}RtdProvider`;
|
|
23
25
|
|
|
24
26
|
const CONTXTFUL_RECEPTIVITY_DOMAIN = 'api.receptivity.io';
|
|
25
27
|
|
|
28
|
+
const storageManager = getStorageManager({
|
|
29
|
+
moduleType: MODULE_TYPE_RTD,
|
|
30
|
+
moduleName: MODULE_NAME
|
|
31
|
+
});
|
|
32
|
+
|
|
26
33
|
let rxApi = null;
|
|
27
34
|
let isFirstBidRequestCall = true;
|
|
28
35
|
|
|
@@ -35,8 +42,19 @@ function getRxEngineReceptivity(requester) {
|
|
|
35
42
|
return rxApi?.receptivity(requester);
|
|
36
43
|
}
|
|
37
44
|
|
|
45
|
+
function getItemFromSessionStorage(key) {
|
|
46
|
+
let value = null;
|
|
47
|
+
try {
|
|
48
|
+
// Use the Storage Manager
|
|
49
|
+
value = storageManager.getDataFromSessionStorage(key, null);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
|
|
38
56
|
function loadSessionReceptivity(requester) {
|
|
39
|
-
let sessionStorageValue =
|
|
57
|
+
let sessionStorageValue = getItemFromSessionStorage(requester);
|
|
40
58
|
if (!sessionStorageValue) {
|
|
41
59
|
return null;
|
|
42
60
|
}
|
|
@@ -54,7 +72,7 @@ function loadSessionReceptivity(requester) {
|
|
|
54
72
|
} catch {
|
|
55
73
|
return null;
|
|
56
74
|
}
|
|
57
|
-
}
|
|
75
|
+
}
|
|
58
76
|
|
|
59
77
|
/**
|
|
60
78
|
* Prepare a receptivity batch
|
|
@@ -4,7 +4,7 @@ import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
|
4
4
|
import {find, includes} from '../src/polyfill.js';
|
|
5
5
|
import {getStorageManager} from '../src/storageManager.js';
|
|
6
6
|
import {ajax} from '../src/ajax.js';
|
|
7
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
7
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
8
8
|
import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
|
|
9
9
|
import {getANKeywordParam} from '../libraries/appnexusUtils/anKeywords.js';
|
|
10
10
|
|
|
@@ -3,7 +3,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
|
3
3
|
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
4
4
|
import {getStorageManager} from '../src/storageManager.js';
|
|
5
5
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
6
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
6
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
7
7
|
import {Renderer} from '../src/Renderer.js';
|
|
8
8
|
import {OUTSTREAM} from '../src/video.js';
|
|
9
9
|
import {ajax} from '../src/ajax.js';
|
|
@@ -2,7 +2,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
|
2
2
|
import {getStorageManager} from '../src/storageManager.js';
|
|
3
3
|
import {BANNER} from '../src/mediaTypes.js';
|
|
4
4
|
import {generateUUID, getParameterByName, isNumber, logError, logInfo} from '../src/utils.js';
|
|
5
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
5
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
|
|
@@ -224,6 +224,8 @@ export const spec = {
|
|
|
224
224
|
bid: bid
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
|
+
// TODO FIX THIS RULES VIOLATION
|
|
228
|
+
// eslint-disable-next-line prebid/no-member
|
|
227
229
|
navigator.sendBeacon(EVENT_ENDPOINT, JSON.stringify(event))
|
|
228
230
|
},
|
|
229
231
|
|
|
@@ -236,6 +238,8 @@ export const spec = {
|
|
|
236
238
|
bidderRequest: bidderRequest
|
|
237
239
|
}
|
|
238
240
|
}
|
|
241
|
+
// TODO FIX THIS RULES VIOLATION
|
|
242
|
+
// eslint-disable-next-line prebid/no-member
|
|
239
243
|
navigator.sendBeacon(EVENT_ENDPOINT, JSON.stringify(event))
|
|
240
244
|
},
|
|
241
245
|
|