prebid.js 7.22.0 → 7.24.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/dist/33acrossBidAdapter.js +1 -1
- package/dist/aaxBlockmeterRtdProvider.js +1 -0
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -0
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/analyticsAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidViewabilityIO.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -0
- package/dist/cleanioRtdProvider.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagement.js +1 -1
- package/dist/consentManagementUsp.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/dependencies.json +19 -0
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dgkeywordRtdProvider.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/googleAnalyticsAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/instreamTracking.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerVideoProvider.js +1 -0
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -0
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.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/mediakeysBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/mgidRtdProvider.js +1 -0
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/multibid.js +1 -1
- package/dist/not-for-prod/prebid.js +153 -141
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -0
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionRtdProvider.js +1 -0
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pbsExtensions.js +1 -0
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/pubCommonId.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.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/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rtdModule.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/schain.js +1 -1
- 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/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/spotxBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/teadsIdSystem.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/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/video.js +1 -0
- package/dist/videoModule.js +1 -0
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/videojsVideoProvider.js +1 -0
- 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/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/mgidRtdProvider_example.html +143 -0
- package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +98 -0
- package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +89 -0
- package/integrationExamples/videoModule/jwplayer/eventListeners.html +244 -0
- package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +122 -0
- package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +80 -0
- package/integrationExamples/videoModule/jwplayer/playlist.html +122 -0
- package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +126 -0
- package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +132 -0
- package/integrationExamples/videoModule/videojs/eventListeners.html +238 -0
- package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +138 -0
- package/integrationExamples/videoModule/videojs/mediaMetadata.html +103 -0
- package/integrationExamples/videoModule/videojs/playlist.html +151 -0
- package/libraries/ortbConverter/README.md +378 -0
- package/libraries/ortbConverter/converter.js +135 -0
- package/libraries/ortbConverter/lib/composer.js +43 -0
- package/libraries/ortbConverter/lib/mergeProcessors.js +9 -0
- package/libraries/ortbConverter/lib/sizes.js +14 -0
- package/libraries/ortbConverter/processors/banner.js +40 -0
- package/libraries/ortbConverter/processors/default.js +167 -0
- package/libraries/ortbConverter/processors/mediaType.js +21 -0
- package/libraries/ortbConverter/processors/native.js +37 -0
- package/libraries/ortbConverter/processors/video.js +66 -0
- package/libraries/pbsExtensions/pbsExtensions.js +12 -0
- package/libraries/pbsExtensions/processors/aliases.js +17 -0
- package/libraries/pbsExtensions/processors/mediaType.js +23 -0
- package/libraries/pbsExtensions/processors/params.js +22 -0
- package/libraries/pbsExtensions/processors/pbs.js +99 -0
- package/libraries/pbsExtensions/processors/requestExtPrebid.js +30 -0
- package/libraries/pbsExtensions/processors/video.js +23 -0
- package/libraries/video/constants/enums.js +5 -0
- package/libraries/video/constants/events.js +97 -0
- package/libraries/video/constants/ortb.js +169 -0
- package/libraries/video/constants/vendorCodes.js +6 -0
- package/libraries/video/shared/eventHandler.js +18 -0
- package/libraries/video/shared/parentModule.js +82 -0
- package/libraries/video/shared/state.js +47 -0
- package/libraries/video/shared/vastXmlBuilder.js +77 -0
- package/libraries/video/shared/vastXmlEditor.js +115 -0
- package/modules/.submodules.json +7 -1
- package/modules/aaxBlockmeterRtdProvider.js +59 -0
- package/modules/aaxBlockmeterRtdProvider.md +48 -0
- package/modules/admaticBidAdapter.js +147 -0
- package/modules/admaticBidAdapter.md +48 -0
- package/modules/amxBidAdapter.js +1 -0
- package/modules/appnexusBidAdapter.js +38 -1
- package/modules/chtnwBidAdapter.js +110 -0
- package/modules/chtnwBidAdapter.md +31 -0
- package/modules/concertBidAdapter.js +44 -2
- package/modules/connectIdSystem.js +36 -23
- package/modules/connectIdSystem.md +3 -2
- package/modules/consentManagement.js +22 -1
- package/modules/consentManagementUsp.js +29 -7
- package/modules/criteoBidAdapter.js +25 -5
- package/modules/currency.js +9 -0
- package/modules/dgkeywordRtdProvider.js +3 -3
- package/modules/gridNMBidAdapter.js +10 -14
- package/modules/growthCodeIdSystem.js +9 -5
- package/modules/gumgumBidAdapter.js +4 -0
- package/modules/improvedigitalBidAdapter.js +191 -470
- package/modules/ixBidAdapter.js +54 -71
- package/modules/jwplayerVideoProvider.js +929 -0
- package/modules/jwplayerVideoProvider.md +25 -0
- package/modules/kargoBidAdapter.js +1 -1
- package/modules/kueezRtbBidAdapter.js +278 -0
- package/modules/kueezRtbBidAdapter.md +35 -0
- package/modules/magniteAnalyticsAdapter.js +6 -1
- package/modules/mgidRtdProvider.js +190 -0
- package/modules/mgidRtdProvider.md +51 -0
- package/modules/multibid/index.js +12 -0
- package/modules/openxOrtbBidAdapter.js +120 -275
- package/modules/oxxionRtdProvider.js +119 -0
- package/modules/oxxionRtdProvider.md +48 -0
- package/modules/permutiveRtdProvider.js +2 -1
- package/modules/permutiveRtdProvider.md +36 -1
- package/modules/prebidServerBidAdapter/index.js +19 -716
- package/modules/prebidServerBidAdapter/ortbConverter.js +274 -0
- package/modules/priceFloors.js +73 -1
- package/modules/pubmaticBidAdapter.js +21 -29
- package/modules/rtdModule/index.js +22 -1
- package/modules/schain.js +24 -1
- package/modules/spotxBidAdapter.js +16 -15
- package/modules/synacormediaBidAdapter.js +1 -1
- package/modules/teadsIdSystem.js +5 -0
- package/modules/tripleliftBidAdapter.js +1 -1
- package/modules/userId/eids.js +3 -10
- package/modules/userId/index.js +64 -6
- package/modules/videoModule/addingSubmodule.md +521 -0
- package/modules/videoModule/coreVideo.js +234 -0
- package/modules/videoModule/gamAdServerSubmodule.js +27 -0
- package/modules/videoModule/index.js +244 -0
- package/modules/videoModule/videoImpressionVerifier.js +206 -0
- package/modules/videojsVideoProvider.js +854 -0
- package/modules/videojsVideoProvider.md +17 -0
- package/package.json +12 -8
- package/src/adRendering.js +1 -1
- package/src/adapterManager.js +56 -7
- package/src/adloader.js +3 -1
- package/src/auction.js +6 -1
- package/src/events.js +5 -1
- package/src/pbjsORTB.js +35 -0
- package/src/prebid.js +137 -112
- package/src/targeting.js +10 -2
- package/src/utils/currency.js +16 -0
- package/src/utils.js +21 -0
- package/test/spec/auctionmanager_spec.js +15 -0
- package/test/spec/modules/aaxBlockmeter_spec.js +58 -0
- package/test/spec/modules/admaticBidAdapter_spec.js +46 -0
- package/test/spec/modules/chtnwBidAdapter_spec.js +105 -0
- package/test/spec/modules/concertBidAdapter_spec.js +56 -0
- package/test/spec/modules/connectIdSystem_spec.js +175 -5
- package/test/spec/modules/consentManagementUsp_spec.js +64 -18
- package/test/spec/modules/criteoBidAdapter_spec.js +28 -0
- package/test/spec/modules/dgkeywordRtdProvider_spec.js +3 -3
- package/test/spec/modules/eids_spec.js +10 -7
- package/test/spec/modules/ftrackIdSystem_spec.js +34 -22
- package/test/spec/modules/gumgumBidAdapter_spec.js +15 -0
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +231 -211
- package/test/spec/modules/ixBidAdapter_spec.js +412 -350
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +396 -0
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +26 -0
- package/test/spec/modules/mgidRtdProvider_spec.js +366 -0
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +77 -49
- package/test/spec/modules/oxxionRtdProvider_spec.js +142 -0
- package/test/spec/modules/permutiveRtdProvider_spec.js +64 -5
- package/test/spec/modules/prebidServerBidAdapter_spec.js +139 -137
- package/test/spec/modules/realTimeDataModule_spec.js +65 -0
- package/test/spec/modules/tripleliftBidAdapter_spec.js +14 -0
- package/test/spec/modules/userId_spec.js +67 -1
- package/test/spec/modules/videoModule/coreVideo_spec.js +98 -0
- package/test/spec/modules/videoModule/pbVideo_spec.js +362 -0
- package/test/spec/modules/videoModule/shared/parentModule_spec.js +73 -0
- package/test/spec/modules/videoModule/shared/state_spec.js +26 -0
- package/test/spec/modules/videoModule/shared/vastXmlBuilder_spec.js +103 -0
- package/test/spec/modules/videoModule/shared/vastXmlEditor_spec.js +209 -0
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +846 -0
- package/test/spec/modules/videoModule/submodules/videojsVideoProvider_spec.js +391 -0
- package/test/spec/modules/videoModule/videoImpressionVerifier_spec.js +112 -0
- package/test/spec/ortbConverter/banner_spec.js +203 -0
- package/test/spec/ortbConverter/composer_spec.js +69 -0
- package/test/spec/ortbConverter/converter_spec.js +283 -0
- package/test/spec/ortbConverter/currency_spec.js +40 -0
- package/test/spec/ortbConverter/default_processors_spec.js +61 -0
- package/test/spec/ortbConverter/gdpr_spec.js +38 -0
- package/test/spec/ortbConverter/mediaTypes_spec.js +67 -0
- package/test/spec/ortbConverter/mergeProcessors_spec.js +59 -0
- package/test/spec/ortbConverter/multibid_spec.js +35 -0
- package/test/spec/ortbConverter/native_spec.js +95 -0
- package/test/spec/ortbConverter/pbjsORTB_spec.js +67 -0
- package/test/spec/ortbConverter/pbsExtensions/aliases_spec.js +57 -0
- package/test/spec/ortbConverter/pbsExtensions/params_spec.js +96 -0
- package/test/spec/ortbConverter/pbsExtensions/video_spec.js +52 -0
- package/test/spec/ortbConverter/priceFloors_spec.js +143 -0
- package/test/spec/ortbConverter/schain_spec.js +33 -0
- package/test/spec/ortbConverter/userId_spec.js +21 -0
- package/test/spec/ortbConverter/usp_spec.js +15 -0
- package/test/spec/ortbConverter/video_spec.js +189 -0
- package/test/spec/unit/core/adapterManager_spec.js +102 -0
- package/test/spec/unit/core/targeting_spec.js +34 -0
- package/test/spec/unit/pbjs_api_spec.js +124 -45
- package/test/spec/utils_spec.js +45 -1
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
* information and make it available for any USP (CCPA) supported adapters to
|
|
5
5
|
* read/pass this information to their system.
|
|
6
6
|
*/
|
|
7
|
-
import {isFn, isNumber, isPlainObject, isStr, logError, logInfo, logWarn} from '../src/utils.js';
|
|
7
|
+
import {deepSetValue, isFn, isNumber, isPlainObject, isStr, logError, logInfo, logWarn} from '../src/utils.js';
|
|
8
8
|
import {config} from '../src/config.js';
|
|
9
|
-
import {uspDataHandler} from '../src/adapterManager.js';
|
|
9
|
+
import adapterManager, {uspDataHandler} from '../src/adapterManager.js';
|
|
10
|
+
import {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';
|
|
10
11
|
import {timedAuctionHook} from '../src/utils/perfMetrics.js';
|
|
11
12
|
import {getHook} from '../src/hook.js';
|
|
12
13
|
|
|
@@ -114,6 +115,11 @@ function lookupUspConsent({onSuccess, onError}) {
|
|
|
114
115
|
USPAPI_VERSION,
|
|
115
116
|
callbackHandler.consentDataCallback
|
|
116
117
|
);
|
|
118
|
+
uspapiFunction(
|
|
119
|
+
'registerDeletion',
|
|
120
|
+
USPAPI_VERSION,
|
|
121
|
+
adapterManager.callDataDeletionRequest
|
|
122
|
+
)
|
|
117
123
|
} else {
|
|
118
124
|
logInfo(
|
|
119
125
|
'Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now...'
|
|
@@ -123,12 +129,17 @@ function lookupUspConsent({onSuccess, onError}) {
|
|
|
123
129
|
uspapiFrame,
|
|
124
130
|
callbackHandler.consentDataCallback
|
|
125
131
|
);
|
|
132
|
+
callUspApiWhileInIframe(
|
|
133
|
+
'registerDeletion',
|
|
134
|
+
uspapiFrame,
|
|
135
|
+
adapterManager.callDataDeletionRequest
|
|
136
|
+
);
|
|
126
137
|
}
|
|
127
138
|
|
|
139
|
+
let listening = false;
|
|
140
|
+
|
|
128
141
|
function callUspApiWhileInIframe(commandName, uspapiFrame, moduleCallback) {
|
|
129
|
-
|
|
130
|
-
This function behaves, from the caller's perspective, identicially to the in-frame __uspapi call (although it is not synchronous) */
|
|
131
|
-
window.__uspapi = function (cmd, ver, callback) {
|
|
142
|
+
function callUsp(cmd, ver, callback) {
|
|
132
143
|
let callId = Math.random() + '';
|
|
133
144
|
let msg = {
|
|
134
145
|
__uspapiCall: {
|
|
@@ -143,10 +154,13 @@ function lookupUspConsent({onSuccess, onError}) {
|
|
|
143
154
|
};
|
|
144
155
|
|
|
145
156
|
/** when we get the return message, call the stashed callback */
|
|
146
|
-
|
|
157
|
+
if (!listening) {
|
|
158
|
+
window.addEventListener('message', readPostMessageResponse, false);
|
|
159
|
+
listening = true;
|
|
160
|
+
}
|
|
147
161
|
|
|
148
162
|
// call uspapi
|
|
149
|
-
|
|
163
|
+
callUsp(commandName, USPAPI_VERSION, moduleCallback);
|
|
150
164
|
|
|
151
165
|
function readPostMessageResponse(event) {
|
|
152
166
|
const res = event && event.data && event.data.__uspapiReturn;
|
|
@@ -308,3 +322,11 @@ function enableConsentManagement(configFromUser = false) {
|
|
|
308
322
|
config.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));
|
|
309
323
|
|
|
310
324
|
getHook('requestBids').before(requestBidsHook, 50);
|
|
325
|
+
|
|
326
|
+
export function setOrtbUsp(ortbRequest, bidderRequest) {
|
|
327
|
+
if (bidderRequest.uspConsent) {
|
|
328
|
+
deepSetValue(ortbRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
registerOrtbProcessor({type: REQUEST, name: 'usp', fn: setOrtbUsp});
|
|
@@ -27,7 +27,7 @@ const LOG_PREFIX = 'Criteo: ';
|
|
|
27
27
|
Unminified source code can be found in the privately shared repo: https://github.com/Prebid-org/prebid-js-external-js-criteo/blob/master/dist/prod.js
|
|
28
28
|
*/
|
|
29
29
|
const FAST_BID_VERSION_PLACEHOLDER = '%FAST_BID_VERSION%';
|
|
30
|
-
export const FAST_BID_VERSION_CURRENT =
|
|
30
|
+
export const FAST_BID_VERSION_CURRENT = 132;
|
|
31
31
|
const FAST_BID_VERSION_LATEST = 'latest';
|
|
32
32
|
const FAST_BID_VERSION_NONE = 'none';
|
|
33
33
|
const PUBLISHER_TAG_URL_TEMPLATE = 'https://static.criteo.net/js/ld/publishertag.prebid' + FAST_BID_VERSION_PLACEHOLDER + '.js';
|
|
@@ -644,26 +644,46 @@ for (var i = 0; i < 10; ++i) {
|
|
|
644
644
|
</script>`;
|
|
645
645
|
}
|
|
646
646
|
|
|
647
|
+
function pickAvailableGetFloorFunc(bidRequest) {
|
|
648
|
+
if (bidRequest.getFloor) {
|
|
649
|
+
return bidRequest.getFloor;
|
|
650
|
+
}
|
|
651
|
+
if (bidRequest.params.bidFloor && bidRequest.params.bidFloorCur) {
|
|
652
|
+
try {
|
|
653
|
+
const floor = parseFloat(bidRequest.params.bidFloor);
|
|
654
|
+
return () => {
|
|
655
|
+
return {
|
|
656
|
+
currency: bidRequest.params.bidFloorCur,
|
|
657
|
+
floor: floor
|
|
658
|
+
};
|
|
659
|
+
};
|
|
660
|
+
} catch { }
|
|
661
|
+
}
|
|
662
|
+
return undefined;
|
|
663
|
+
}
|
|
664
|
+
|
|
647
665
|
function enrichSlotWithFloors(slot, bidRequest) {
|
|
648
666
|
try {
|
|
649
667
|
const slotFloors = {};
|
|
650
668
|
|
|
651
|
-
|
|
669
|
+
const getFloor = pickAvailableGetFloorFunc(bidRequest);
|
|
670
|
+
|
|
671
|
+
if (getFloor) {
|
|
652
672
|
if (bidRequest.mediaTypes?.banner) {
|
|
653
673
|
slotFloors.banner = {};
|
|
654
674
|
const bannerSizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'))
|
|
655
|
-
bannerSizes.forEach(bannerSize => slotFloors.banner[parseSize(bannerSize).toString()] =
|
|
675
|
+
bannerSizes.forEach(bannerSize => slotFloors.banner[parseSize(bannerSize).toString()] = getFloor({ size: bannerSize, mediaType: BANNER }));
|
|
656
676
|
}
|
|
657
677
|
|
|
658
678
|
if (bidRequest.mediaTypes?.video) {
|
|
659
679
|
slotFloors.video = {};
|
|
660
680
|
const videoSizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize'))
|
|
661
|
-
videoSizes.forEach(videoSize => slotFloors.video[parseSize(videoSize).toString()] =
|
|
681
|
+
videoSizes.forEach(videoSize => slotFloors.video[parseSize(videoSize).toString()] = getFloor({ size: videoSize, mediaType: VIDEO }));
|
|
662
682
|
}
|
|
663
683
|
|
|
664
684
|
if (bidRequest.mediaTypes?.native) {
|
|
665
685
|
slotFloors.native = {};
|
|
666
|
-
slotFloors.native['*'] =
|
|
686
|
+
slotFloors.native['*'] = getFloor({ size: '*', mediaType: NATIVE });
|
|
667
687
|
}
|
|
668
688
|
|
|
669
689
|
if (Object.keys(slotFloors).length > 0) {
|
package/modules/currency.js
CHANGED
|
@@ -5,6 +5,7 @@ import {ajax} from '../src/ajax.js';
|
|
|
5
5
|
import {config} from '../src/config.js';
|
|
6
6
|
import {getHook} from '../src/hook.js';
|
|
7
7
|
import {defer} from '../src/utils/promise.js';
|
|
8
|
+
import {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';
|
|
8
9
|
import {timedBidResponseHook} from '../src/utils/perfMetrics.js';
|
|
9
10
|
|
|
10
11
|
const DEFAULT_CURRENCY_RATE_URL = 'https://cdn.jsdelivr.net/gh/prebid/currency-file@1/latest.json?date=$$TODAY$$';
|
|
@@ -314,3 +315,11 @@ function roundFloat(num, dec) {
|
|
|
314
315
|
}
|
|
315
316
|
return Math.round(num * d) / d;
|
|
316
317
|
}
|
|
318
|
+
|
|
319
|
+
export function setOrtbCurrency(ortbRequest, bidderRequest, context) {
|
|
320
|
+
if (currencySupportEnabled) {
|
|
321
|
+
ortbRequest.cur = ortbRequest.cur || [context.currency || adServerCurrency];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
registerOrtbProcessor({type: REQUEST, name: 'currency', fn: setOrtbCurrency});
|
|
@@ -41,7 +41,7 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
|
|
|
41
41
|
} else {
|
|
42
42
|
logMessage('[dgkeyword sub module] dgkeyword targets:', setKeywordTargetBidders);
|
|
43
43
|
logMessage('[dgkeyword sub module] get targets from profile api start.');
|
|
44
|
-
ajax(getProfileApiUrl(moduleConfig?.params?.url, moduleConfig?.params?.
|
|
44
|
+
ajax(getProfileApiUrl(moduleConfig?.params?.url, moduleConfig?.params?.enableReadFpid), {
|
|
45
45
|
success: function(response) {
|
|
46
46
|
const res = JSON.parse(response);
|
|
47
47
|
if (!isFinish) {
|
|
@@ -96,9 +96,9 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
export function getProfileApiUrl(customeUrl,
|
|
99
|
+
export function getProfileApiUrl(customeUrl, enableReadFpid) {
|
|
100
100
|
const URL = 'https://mediaconsortium.profiles.tagger.opecloud.com/api/v1';
|
|
101
|
-
const fpid = (
|
|
101
|
+
const fpid = (enableReadFpid) ? readFpidFromLocalStrage() : '';
|
|
102
102
|
let url = customeUrl || URL;
|
|
103
103
|
url = url + '?url=' + encodeURIComponent(window.location.href) + ((fpid) ? `&fpid=${fpid}` : '');
|
|
104
104
|
return url;
|
|
@@ -34,8 +34,6 @@ const LOG_ERROR_MESS = {
|
|
|
34
34
|
hasNoArrayOfBids: 'Seatbid from response has no array of bid objects - '
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
const VIDEO_KEYS = ['mimes', 'protocols', 'startdelay', 'placement', 'linearity', 'skip', 'skipmin', 'skipafter', 'sequence', 'battr', 'maxextended', 'minbitrate', 'maxbitrate', 'boxingallowed', 'playbackmethod', 'playbackend', 'delivery', 'pos', 'companionad', 'api', 'companiontype'];
|
|
38
|
-
|
|
39
37
|
export const spec = {
|
|
40
38
|
code: BIDDER_CODE,
|
|
41
39
|
supportedMediaTypes: [ VIDEO ],
|
|
@@ -105,7 +103,7 @@ export const spec = {
|
|
|
105
103
|
const impObj = {
|
|
106
104
|
id: bidId.toString(),
|
|
107
105
|
tagid: secid.toString(),
|
|
108
|
-
video: createVideoForImp(
|
|
106
|
+
video: createVideoForImp(mergeDeep({}, video, mediaTypes && mediaTypes.video), sizes),
|
|
109
107
|
ext: {
|
|
110
108
|
divid: adUnitCode.toString()
|
|
111
109
|
}
|
|
@@ -386,13 +384,7 @@ function createRenderer (bid, rendererParams) {
|
|
|
386
384
|
return renderer;
|
|
387
385
|
}
|
|
388
386
|
|
|
389
|
-
function createVideoForImp({ mind, maxd, size, ...paramsVideo }, bidSizes
|
|
390
|
-
VIDEO_KEYS.forEach((key) => {
|
|
391
|
-
if (!(key in paramsVideo) && key in bidVideo) {
|
|
392
|
-
paramsVideo[key] = bidVideo[key];
|
|
393
|
-
}
|
|
394
|
-
});
|
|
395
|
-
|
|
387
|
+
function createVideoForImp({ mind, maxd, size, ...paramsVideo }, bidSizes) {
|
|
396
388
|
if (size && isStr(size)) {
|
|
397
389
|
const sizeArray = size.split('x');
|
|
398
390
|
if (sizeArray.length === 2 && parseInt(sizeArray[0]) && parseInt(sizeArray[1])) {
|
|
@@ -402,7 +394,7 @@ function createVideoForImp({ mind, maxd, size, ...paramsVideo }, bidSizes, bidVi
|
|
|
402
394
|
}
|
|
403
395
|
|
|
404
396
|
if (!paramsVideo.w || !paramsVideo.h) {
|
|
405
|
-
const playerSizes =
|
|
397
|
+
const playerSizes = paramsVideo.playerSize && paramsVideo.playerSize.length === 2 ? paramsVideo.playerSize : bidSizes;
|
|
406
398
|
if (playerSizes) {
|
|
407
399
|
const playerSize = playerSizes[0];
|
|
408
400
|
if (playerSize) {
|
|
@@ -411,9 +403,13 @@ function createVideoForImp({ mind, maxd, size, ...paramsVideo }, bidSizes, bidVi
|
|
|
411
403
|
}
|
|
412
404
|
}
|
|
413
405
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
406
|
+
if (paramsVideo.playerSize) {
|
|
407
|
+
delete paramsVideo.playerSize;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const durationRangeSec = paramsVideo.durationRangeSec || [];
|
|
411
|
+
const minDur = mind || durationRangeSec[0] || paramsVideo.minduration;
|
|
412
|
+
const maxDur = maxd || durationRangeSec[1] || paramsVideo.maxduration;
|
|
417
413
|
|
|
418
414
|
if (minDur) {
|
|
419
415
|
paramsVideo.minduration = minDur;
|
|
@@ -10,7 +10,7 @@ import {ajax} from '../src/ajax.js';
|
|
|
10
10
|
import { submodule } from '../src/hook.js'
|
|
11
11
|
import { getStorageManager } from '../src/storageManager.js';
|
|
12
12
|
|
|
13
|
-
const GCID_EXPIRY =
|
|
13
|
+
const GCID_EXPIRY = 7;
|
|
14
14
|
const MODULE_NAME = 'growthCodeId';
|
|
15
15
|
const GC_DATA_KEY = '_gc_data';
|
|
16
16
|
const ENDPOINT_URL = 'https://p2.gcprivacy.com/v1/pb?'
|
|
@@ -24,11 +24,15 @@ export const storage = getStorageManager({ gvlid: undefined, moduleName: MODULE_
|
|
|
24
24
|
*/
|
|
25
25
|
export function readData(key) {
|
|
26
26
|
try {
|
|
27
|
+
let payload
|
|
28
|
+
if (storage.cookiesAreEnabled()) {
|
|
29
|
+
payload = tryParse(storage.getCookie(key))
|
|
30
|
+
}
|
|
27
31
|
if (storage.hasLocalStorage()) {
|
|
28
|
-
|
|
32
|
+
payload = tryParse(storage.getDataFromLocalStorage(key))
|
|
29
33
|
}
|
|
30
|
-
if (
|
|
31
|
-
return
|
|
34
|
+
if ((payload.expire_at !== undefined) && (payload.expire_at > (Date.now() / 1000))) {
|
|
35
|
+
return payload
|
|
32
36
|
}
|
|
33
37
|
} catch (error) {
|
|
34
38
|
logError(error);
|
|
@@ -122,7 +126,7 @@ export const growthCodeIdSubmodule = {
|
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
const resp = function(callback) {
|
|
125
|
-
let gcData =
|
|
129
|
+
let gcData = readData(GC_DATA_KEY);
|
|
126
130
|
if (gcData) {
|
|
127
131
|
callback(gcData);
|
|
128
132
|
} else {
|
|
@@ -294,6 +294,7 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
294
294
|
const gdprConsent = bidderRequest && bidderRequest.gdprConsent;
|
|
295
295
|
const uspConsent = bidderRequest && bidderRequest.uspConsent;
|
|
296
296
|
const timeout = config.getConfig('bidderTimeout');
|
|
297
|
+
const coppa = config.getConfig('coppa') === true ? 1 : 0;
|
|
297
298
|
const topWindowUrl = bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.page;
|
|
298
299
|
_each(validBidRequests, bidRequest => {
|
|
299
300
|
const {
|
|
@@ -386,6 +387,9 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
386
387
|
if (uspConsent) {
|
|
387
388
|
data.uspConsent = uspConsent;
|
|
388
389
|
}
|
|
390
|
+
if (coppa) {
|
|
391
|
+
data.coppa = coppa;
|
|
392
|
+
}
|
|
389
393
|
if (schain && schain.nodes) {
|
|
390
394
|
data.schain = _serializeSupplyChainObj(schain);
|
|
391
395
|
}
|