prebid.js 9.26.0 → 9.28.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/creative/renderers/native/renderer.js +29 -8
- 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/acuityadsBidAdapter.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/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxAnalyticsAdapter.js +1 -1
- package/dist/adlooxRtdProvider.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/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/aniviewBidAdapter.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/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bitmediaBidAdapter.js +1 -1
- package/dist/blueBidAdapter.js +1 -0
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgeuppBidAdapter.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/conceptxBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contxtfulBidAdapter.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/creative-renderer-native.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/dependencies.json +7 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/equativBidAdapter.js +1 -1
- package/dist/escalaxBidAdapter.js +1 -1
- package/dist/eskimiBidAdapter.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/freewheel-sspBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsBidAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.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/inmobiBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -1
- package/dist/intentIqConstants.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 -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/liveIntentId.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/liveIntentRtdProvider.js +1 -0
- 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/madsenseBidAdapter.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/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/mspa.js +1 -1
- package/dist/nativeRendering.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 +193 -191
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/omsBidAdapter.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/orbidderBidAdapter.js +1 -1
- package/dist/orbitsoftBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/publinkIdSystem.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/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/riseUtils.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/showheroes-bsBidAdapter.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/sparteoBidAdapter.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 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- 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/userId.js +1 -1
- package/dist/vdoaiBidAdapter.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/wurflRtdProvider.js +1 -1
- package/dist/yahooAdsBidAdapter.js +1 -1
- package/dist/yieldlabBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/liveIntentRtdProviderExample.html +164 -0
- package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +3 -1
- package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +2 -0
- package/integrationExamples/videoModule/jwplayer/bidsBackHandlerOverride.html +2 -0
- package/integrationExamples/videoModule/jwplayer/eventListeners.html +2 -0
- package/integrationExamples/videoModule/jwplayer/eventsUI.html +2 -0
- package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +2 -0
- package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +3 -1
- package/integrationExamples/videoModule/jwplayer/playlist.html +3 -1
- package/libraries/creative-renderer-native/renderer.js +1 -1
- package/libraries/intentIqConstants/intentIqConstants.js +1 -1
- package/libraries/liveIntentId/shared.js +18 -5
- package/libraries/mspa/activityControls.js +26 -7
- package/libraries/riseUtils/constants.js +20 -0
- package/libraries/riseUtils/index.js +143 -38
- package/libraries/sizeUtils/sizeUtils.js +25 -0
- package/libraries/vidazooUtils/bidderUtils.js +2 -0
- package/modules/33acrossIdSystem.js +64 -23
- package/modules/33acrossIdSystem.md +2 -1
- package/modules/acuityadsBidAdapter.js +1 -1
- package/modules/adagioRtdProvider.js +15 -9
- package/modules/adlooxAnalyticsAdapter.js +12 -6
- package/modules/blueBidAdapter.js +122 -0
- package/modules/blueBidAdapter.md +28 -0
- package/modules/conceptxBidAdapter.js +2 -0
- package/modules/consumableBidAdapter.js +3 -1
- package/modules/contxtfulBidAdapter.js +25 -13
- package/modules/contxtfulRtdProvider.js +9 -12
- package/modules/eplanningBidAdapter.js +5 -1
- package/modules/equativBidAdapter.js +13 -18
- package/modules/escalaxBidAdapter.js +2 -2
- package/modules/eskimiBidAdapter.js +4 -1
- package/modules/improvedigitalBidAdapter.js +0 -67
- package/modules/intentIqAnalyticsAdapter.js +1 -1
- package/modules/ixBidAdapter.js +7 -1
- package/modules/jwplayerVideoProvider.js +99 -6
- package/modules/liveIntentRtdProvider.js +52 -0
- package/modules/liveIntentRtdProvider.md +45 -0
- package/modules/minutemediaBidAdapter.js +6 -80
- package/modules/minutemediaBidAdapter.md +1 -1
- package/modules/missenaBidAdapter.js +2 -0
- package/modules/nativeRendering.js +2 -1
- package/modules/omsBidAdapter.js +25 -11
- package/modules/omsBidAdapter.md +15 -0
- package/modules/openwebBidAdapter.js +6 -81
- package/modules/openwebBidAdapter.md +1 -1
- package/modules/openxBidAdapter.js +19 -6
- package/modules/openxBidAdapter.md +46 -1
- package/modules/orbitsoftBidAdapter.js +1 -1
- package/modules/permutiveRtdProvider.md +6 -5
- package/modules/pubmaticAnalyticsAdapter.js +61 -19
- package/modules/riseBidAdapter.js +11 -92
- package/modules/riseBidAdapter.md +1 -1
- package/modules/sharedIdSystem.js +9 -3
- package/modules/shinezBidAdapter.js +4 -80
- package/modules/shinezBidAdapter.md +2 -2
- package/modules/stnBidAdapter.js +7 -86
- package/modules/stnBidAdapter.md +1 -1
- package/modules/symitriDapRtdProvider.js +4 -4
- package/modules/symitriDapRtdProvider.md +2 -2
- package/modules/userId/eids.js +32 -5
- package/modules/wurflRtdProvider.js +7 -1
- package/modules/wurflRtdProvider.md +1 -1
- package/modules/yieldlabBidAdapter.js +2 -2
- package/modules/zeta_global_sspAnalyticsAdapter.js +5 -2
- package/package.json +2 -2
- package/src/adapters/bidderFactory.js +7 -6
- package/src/adloader.js +0 -1
- package/src/native.js +6 -3
- package/test/spec/creative/nativeRenderer_spec.js +45 -10
- package/test/spec/libraries/mspa/activityControls_spec.js +63 -9
- package/test/spec/modules/33acrossIdSystem_spec.js +288 -2
- package/test/spec/modules/acuityadsBidAdapter_spec.js +49 -0
- package/test/spec/modules/adagioRtdProvider_spec.js +119 -3
- package/test/spec/modules/adlooxAdServerVideo_spec.js +0 -1
- package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +31 -0
- package/test/spec/modules/blueBidAdapter_spec.js +91 -0
- package/test/spec/modules/consumableBidAdapter_spec.js +42 -0
- package/test/spec/modules/contxtfulRtdProvider_spec.js +37 -2
- package/test/spec/modules/eplanningBidAdapter_spec.js +74 -1
- package/test/spec/modules/equativBidAdapter_spec.js +5 -6
- package/test/spec/modules/excoBidAdapter_spec.js +33 -18
- package/test/spec/modules/illuminBidAdapter_spec.js +33 -18
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
- package/test/spec/modules/ixBidAdapter_spec.js +68 -2
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +33 -18
- package/test/spec/modules/liveIntentExternalIdSystem_spec.js +16 -6
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +16 -6
- package/test/spec/modules/liveIntentIdSystem_spec.js +49 -6
- package/test/spec/modules/liveIntentRtdProvider_spec.js +116 -0
- package/test/spec/modules/minutemediaBidAdapter_spec.js +126 -6
- package/test/spec/modules/missenaBidAdapter_spec.js +12 -3
- package/test/spec/modules/omsBidAdapter_spec.js +78 -0
- package/test/spec/modules/openwebBidAdapter_spec.js +126 -6
- package/test/spec/modules/openxBidAdapter_spec.js +236 -8
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +29 -36
- package/test/spec/modules/riseBidAdapter_spec.js +126 -6
- package/test/spec/modules/sharedIdSystem_spec.js +25 -1
- package/test/spec/modules/shinezBidAdapter_spec.js +133 -9
- package/test/spec/modules/shinezRtbBidAdapter_spec.js +33 -18
- package/test/spec/modules/stnBidAdapter_spec.js +126 -5
- package/test/spec/modules/symitriDapRtdProvider_spec.js +36 -0
- package/test/spec/modules/tagorasBidAdapter_spec.js +33 -18
- package/test/spec/modules/twistDigitalBidAdapter_spec.js +34 -18
- package/test/spec/modules/userId_spec.js +103 -2
- package/test/spec/modules/vidazooBidAdapter_spec.js +34 -18
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +81 -0
- package/test/spec/modules/wurflRtdProvider_spec.js +8 -3
- package/test/spec/modules/yieldlabBidAdapter_spec.js +5 -5
- package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +3 -2
- package/test/spec/native_spec.js +4 -2
- package/test/spec/unit/core/bidderFactory_spec.js +120 -43
|
@@ -1,40 +1,19 @@
|
|
|
1
|
+
import {logWarn} from '../src/utils.js';
|
|
2
|
+
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
|
+
import {makeBaseSpec} from '../libraries/riseUtils/index.js';
|
|
1
4
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from '../
|
|
8
|
-
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
9
|
-
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
10
|
-
import {
|
|
11
|
-
getEndpoint,
|
|
12
|
-
generateBidsParams,
|
|
13
|
-
generateGeneralParams,
|
|
14
|
-
buildBidResponse,
|
|
15
|
-
} from '../libraries/riseUtils/index.js';
|
|
16
|
-
|
|
17
|
-
const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
|
|
18
|
-
const BIDDER_CODE = 'rise';
|
|
19
|
-
const ADAPTER_VERSION = '6.0.0';
|
|
20
|
-
const TTL = 360;
|
|
21
|
-
const DEFAULT_CURRENCY = 'USD';
|
|
22
|
-
const DEFAULT_GVLID = 1043;
|
|
23
|
-
const BASE_URL = 'https://hb.yellowblue.io/';
|
|
24
|
-
const MODES = {
|
|
25
|
-
PRODUCTION: 'hb-multi',
|
|
26
|
-
TEST: 'hb-multi-test'
|
|
27
|
-
};
|
|
5
|
+
ALIASES,
|
|
6
|
+
BASE_URL,
|
|
7
|
+
BIDDER_CODE,
|
|
8
|
+
DEFAULT_GVLID,
|
|
9
|
+
MODES,
|
|
10
|
+
} from '../libraries/riseUtils/constants.js';
|
|
28
11
|
|
|
29
12
|
export const spec = {
|
|
13
|
+
...makeBaseSpec(BASE_URL, MODES),
|
|
30
14
|
code: BIDDER_CODE,
|
|
31
|
-
aliases:
|
|
32
|
-
{ code: 'risexchange', gvlid: DEFAULT_GVLID },
|
|
33
|
-
{ code: 'openwebxchange', gvlid: 280 }
|
|
34
|
-
],
|
|
15
|
+
aliases: ALIASES,
|
|
35
16
|
gvlid: DEFAULT_GVLID,
|
|
36
|
-
version: ADAPTER_VERSION,
|
|
37
|
-
supportedMediaTypes: SUPPORTED_AD_TYPES,
|
|
38
17
|
isBidRequestValid: function (bidRequest) {
|
|
39
18
|
if (!bidRequest.params) {
|
|
40
19
|
logWarn('no params have been set to Rise adapter');
|
|
@@ -47,66 +26,6 @@ export const spec = {
|
|
|
47
26
|
}
|
|
48
27
|
|
|
49
28
|
return true;
|
|
50
|
-
},
|
|
51
|
-
buildRequests: function (validBidRequests, bidderRequest) {
|
|
52
|
-
const combinedRequestsObject = {};
|
|
53
|
-
|
|
54
|
-
// use data from the first bid, to create the general params for all bids
|
|
55
|
-
const generalObject = validBidRequests[0];
|
|
56
|
-
const testMode = generalObject.params.testMode;
|
|
57
|
-
const rtbDomain = generalObject.params.rtbDomain || BASE_URL;
|
|
58
|
-
|
|
59
|
-
combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
|
|
60
|
-
combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
|
|
61
|
-
|
|
62
|
-
return {
|
|
63
|
-
method: 'POST',
|
|
64
|
-
url: getEndpoint(testMode, rtbDomain, MODES),
|
|
65
|
-
data: combinedRequestsObject
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
interpretResponse: function ({ body }) {
|
|
69
|
-
const bidResponses = [];
|
|
70
|
-
|
|
71
|
-
if (body.bids) {
|
|
72
|
-
body.bids.forEach(adUnit => {
|
|
73
|
-
const bidResponse = buildBidResponse(adUnit, DEFAULT_CURRENCY, TTL, VIDEO, BANNER);
|
|
74
|
-
bidResponses.push(bidResponse);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
return bidResponses;
|
|
79
|
-
},
|
|
80
|
-
getUserSyncs: function (syncOptions, serverResponses) {
|
|
81
|
-
const syncs = [];
|
|
82
|
-
for (const response of serverResponses) {
|
|
83
|
-
if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
|
|
84
|
-
syncs.push({
|
|
85
|
-
type: 'iframe',
|
|
86
|
-
url: deepAccess(response, 'body.params.userSyncURL')
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
|
|
90
|
-
const pixels = response.body.params.userSyncPixels.map(pixel => {
|
|
91
|
-
return {
|
|
92
|
-
type: 'image',
|
|
93
|
-
url: pixel
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
syncs.push(...pixels);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return syncs;
|
|
100
|
-
},
|
|
101
|
-
onBidWon: function (bid) {
|
|
102
|
-
if (bid == null) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
logInfo('onBidWon:', bid);
|
|
107
|
-
if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
|
|
108
|
-
triggerPixel(bid.nurl);
|
|
109
|
-
}
|
|
110
29
|
}
|
|
111
30
|
};
|
|
112
31
|
|
|
@@ -13,7 +13,7 @@ Module that connects to Rise's demand sources.
|
|
|
13
13
|
|
|
14
14
|
The Rise adapter requires setup and approval from the Rise. Please reach out to prebid-rise-engage@risecodes.com to create an Rise account.
|
|
15
15
|
|
|
16
|
-
The adapter supports Video(instream).
|
|
16
|
+
The adapter supports Video(instream), Banner, Native and multi-format bid requests.
|
|
17
17
|
|
|
18
18
|
# Bid Parameters
|
|
19
19
|
## Video
|
|
@@ -183,9 +183,15 @@ export const sharedIdSystemSubmodule = {
|
|
|
183
183
|
|
|
184
184
|
domainOverride: domainOverrideToRootDomain(storage, 'sharedId'),
|
|
185
185
|
eids: {
|
|
186
|
-
'pubcid'
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
'pubcid'(values, config) {
|
|
187
|
+
const eid = {
|
|
188
|
+
source: 'pubcid.org',
|
|
189
|
+
uids: values.map(id => ({id, atype: 1}))
|
|
190
|
+
}
|
|
191
|
+
if (config?.params?.inserter != null) {
|
|
192
|
+
eid.inserter = config.params.inserter;
|
|
193
|
+
}
|
|
194
|
+
return eid;
|
|
189
195
|
},
|
|
190
196
|
}
|
|
191
197
|
};
|
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
isArray,
|
|
5
|
-
deepAccess,
|
|
6
|
-
triggerPixel,
|
|
7
|
-
} from '../src/utils.js';
|
|
8
|
-
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
9
|
-
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
10
|
-
import {
|
|
11
|
-
getEndpoint,
|
|
12
|
-
generateBidsParams,
|
|
13
|
-
generateGeneralParams,
|
|
14
|
-
buildBidResponse,
|
|
15
|
-
} from '../libraries/riseUtils/index.js';
|
|
1
|
+
import {logWarn} from '../src/utils.js';
|
|
2
|
+
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
|
+
import {makeBaseSpec} from '../libraries/riseUtils/index.js';
|
|
16
4
|
|
|
17
|
-
const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
|
|
18
5
|
const BIDDER_CODE = 'shinez';
|
|
19
|
-
const ADAPTER_VERSION = '1.0.0';
|
|
20
|
-
const TTL = 360;
|
|
21
|
-
const CURRENCY = 'USD';
|
|
22
6
|
const BASE_URL = 'https://hb.sweetgum.io/';
|
|
23
7
|
const MODES = {
|
|
24
8
|
PRODUCTION: 'hb-sz-multi',
|
|
@@ -26,9 +10,8 @@ const MODES = {
|
|
|
26
10
|
};
|
|
27
11
|
|
|
28
12
|
export const spec = {
|
|
13
|
+
...makeBaseSpec(BASE_URL, MODES),
|
|
29
14
|
code: BIDDER_CODE,
|
|
30
|
-
version: ADAPTER_VERSION,
|
|
31
|
-
supportedMediaTypes: SUPPORTED_AD_TYPES,
|
|
32
15
|
isBidRequestValid: function (bidRequest) {
|
|
33
16
|
if (!bidRequest.params) {
|
|
34
17
|
logWarn('no params have been set to Shinez adapter');
|
|
@@ -41,65 +24,6 @@ export const spec = {
|
|
|
41
24
|
}
|
|
42
25
|
|
|
43
26
|
return true;
|
|
44
|
-
},
|
|
45
|
-
buildRequests: function (validBidRequests, bidderRequest) {
|
|
46
|
-
const combinedRequestsObject = {};
|
|
47
|
-
|
|
48
|
-
// use data from the first bid, to create the general params for all bids
|
|
49
|
-
const generalObject = validBidRequests[0];
|
|
50
|
-
const testMode = generalObject.params.testMode;
|
|
51
|
-
|
|
52
|
-
combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
|
|
53
|
-
combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
|
|
54
|
-
|
|
55
|
-
return {
|
|
56
|
-
method: 'POST',
|
|
57
|
-
url: getEndpoint(testMode, BASE_URL, MODES),
|
|
58
|
-
data: combinedRequestsObject
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
interpretResponse: function ({body}) {
|
|
62
|
-
const bidResponses = [];
|
|
63
|
-
|
|
64
|
-
if (body.bids) {
|
|
65
|
-
body.bids.forEach(adUnit => {
|
|
66
|
-
const bidResponse = buildBidResponse(adUnit, CURRENCY, TTL, VIDEO, BANNER);
|
|
67
|
-
bidResponses.push(bidResponse);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return bidResponses;
|
|
72
|
-
},
|
|
73
|
-
getUserSyncs: function (syncOptions, serverResponses) {
|
|
74
|
-
const syncs = [];
|
|
75
|
-
for (const response of serverResponses) {
|
|
76
|
-
if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
|
|
77
|
-
syncs.push({
|
|
78
|
-
type: 'iframe',
|
|
79
|
-
url: deepAccess(response, 'body.params.userSyncURL')
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
|
|
83
|
-
const pixels = response.body.params.userSyncPixels.map(pixel => {
|
|
84
|
-
return {
|
|
85
|
-
type: 'image',
|
|
86
|
-
url: pixel
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
syncs.push(...pixels);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return syncs;
|
|
93
|
-
},
|
|
94
|
-
onBidWon: function (bid) {
|
|
95
|
-
if (bid == null) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
logInfo('onBidWon:', bid);
|
|
100
|
-
if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
|
|
101
|
-
triggerPixel(bid.nurl);
|
|
102
|
-
}
|
|
103
27
|
}
|
|
104
28
|
};
|
|
105
29
|
|
|
@@ -13,7 +13,7 @@ Module that connects to Shinez's demand sources.
|
|
|
13
13
|
|
|
14
14
|
The Shinez adapter requires setup and approval from the Shinez. Please reach out to tech-team@shinez.io to create an Shinez account.
|
|
15
15
|
|
|
16
|
-
The adapter supports Video(instream)
|
|
16
|
+
The adapter supports Video(instream), Banner, Native and multi-format bid requests.
|
|
17
17
|
|
|
18
18
|
# Bid Parameters
|
|
19
19
|
## Video
|
|
@@ -73,4 +73,4 @@ var adUnits = [{
|
|
|
73
73
|
}]
|
|
74
74
|
}
|
|
75
75
|
];
|
|
76
|
-
```
|
|
76
|
+
```
|
package/modules/stnBidAdapter.js
CHANGED
|
@@ -1,38 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
isArray,
|
|
5
|
-
deepAccess,
|
|
6
|
-
triggerPixel,
|
|
7
|
-
} from '../src/utils.js';
|
|
8
|
-
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
9
|
-
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
10
|
-
import {
|
|
11
|
-
getEndpoint,
|
|
12
|
-
generateBidsParams,
|
|
13
|
-
generateGeneralParams,
|
|
14
|
-
buildBidResponse,
|
|
15
|
-
} from '../libraries/riseUtils/index.js';
|
|
1
|
+
import {logWarn} from '../src/utils.js';
|
|
2
|
+
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
|
+
import {makeBaseSpec} from '../libraries/riseUtils/index.js';
|
|
16
4
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const TTL = 360;
|
|
21
|
-
export const DEFAULT_CURRENCY = 'USD';
|
|
22
|
-
export const SELLER_ENDPOINT = 'https://hb.stngo.com/';
|
|
23
|
-
export const MODES = {
|
|
5
|
+
const BIDDER_CODE = 'stn';
|
|
6
|
+
const BASE_URL = 'https://hb.stngo.com/';
|
|
7
|
+
const MODES = {
|
|
24
8
|
PRODUCTION: 'hb-multi',
|
|
25
9
|
TEST: 'hb-multi-test'
|
|
26
10
|
};
|
|
27
|
-
export const SUPPORTED_SYNC_METHODS = {
|
|
28
|
-
IFRAME: 'iframe',
|
|
29
|
-
PIXEL: 'pixel'
|
|
30
|
-
};
|
|
31
11
|
|
|
32
12
|
export const spec = {
|
|
13
|
+
...makeBaseSpec(BASE_URL, MODES),
|
|
33
14
|
code: BIDDER_CODE,
|
|
34
|
-
version: ADAPTER_VERSION,
|
|
35
|
-
supportedMediaTypes: SUPPORTED_AD_TYPES,
|
|
36
15
|
isBidRequestValid: function (bidRequest) {
|
|
37
16
|
if (!bidRequest.params) {
|
|
38
17
|
logWarn('no params have been set to STN adapter');
|
|
@@ -45,64 +24,6 @@ export const spec = {
|
|
|
45
24
|
}
|
|
46
25
|
|
|
47
26
|
return true;
|
|
48
|
-
},
|
|
49
|
-
buildRequests: function (validBidRequests, bidderRequest) {
|
|
50
|
-
const combinedRequestsObject = {};
|
|
51
|
-
|
|
52
|
-
const generalObject = validBidRequests[0];
|
|
53
|
-
const testMode = generalObject.params.testMode;
|
|
54
|
-
|
|
55
|
-
combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
|
|
56
|
-
combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
|
|
57
|
-
|
|
58
|
-
return {
|
|
59
|
-
method: 'POST',
|
|
60
|
-
url: getEndpoint(testMode, SELLER_ENDPOINT, MODES),
|
|
61
|
-
data: combinedRequestsObject
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
interpretResponse: function ({ body }) {
|
|
65
|
-
const bidResponses = [];
|
|
66
|
-
|
|
67
|
-
if (body.bids) {
|
|
68
|
-
body.bids.forEach(adUnit => {
|
|
69
|
-
const bidResponse = buildBidResponse(adUnit, DEFAULT_CURRENCY, TTL, VIDEO, BANNER);
|
|
70
|
-
bidResponses.push(bidResponse);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return bidResponses;
|
|
75
|
-
},
|
|
76
|
-
getUserSyncs: function (syncOptions, serverResponses) {
|
|
77
|
-
const syncs = [];
|
|
78
|
-
for (const response of serverResponses) {
|
|
79
|
-
if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
|
|
80
|
-
syncs.push({
|
|
81
|
-
type: 'iframe',
|
|
82
|
-
url: deepAccess(response, 'body.params.userSyncURL')
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
|
|
86
|
-
const pixels = response.body.params.userSyncPixels.map(pixel => {
|
|
87
|
-
return {
|
|
88
|
-
type: 'image',
|
|
89
|
-
url: pixel
|
|
90
|
-
}
|
|
91
|
-
})
|
|
92
|
-
syncs.push(...pixels)
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return syncs;
|
|
96
|
-
},
|
|
97
|
-
onBidWon: function (bid) {
|
|
98
|
-
if (bid == null) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
logInfo('onBidWon:', bid);
|
|
103
|
-
if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
|
|
104
|
-
triggerPixel(bid.nurl);
|
|
105
|
-
}
|
|
106
27
|
}
|
|
107
28
|
};
|
|
108
29
|
|
package/modules/stnBidAdapter.md
CHANGED
|
@@ -13,7 +13,7 @@ Module that connects to STN's demand sources.
|
|
|
13
13
|
|
|
14
14
|
The STN adapter requires setup and approval from the STN. Please reach out to hb@stnvideo.com to create an STN account.
|
|
15
15
|
|
|
16
|
-
The adapter supports Video(instream)
|
|
16
|
+
The adapter supports Video(instream), Banner, Native and multi-format bid requests.
|
|
17
17
|
|
|
18
18
|
# Bid Parameters
|
|
19
19
|
## Video
|
|
@@ -663,6 +663,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
|
|
|
663
663
|
switch (config.api_version) {
|
|
664
664
|
case 'x1':
|
|
665
665
|
case 'x1-dev':
|
|
666
|
+
case 'x2':
|
|
666
667
|
method = 'POST';
|
|
667
668
|
path = '/data-activation/' + config.api_version + '/domain/' + config.domain + '/identity/tokenize';
|
|
668
669
|
body = JSON.stringify(apiParams);
|
|
@@ -685,6 +686,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
|
|
|
685
686
|
switch (config.api_version) {
|
|
686
687
|
case 'x1':
|
|
687
688
|
case 'x1-dev':
|
|
689
|
+
case 'x2':
|
|
688
690
|
token = request.getResponseHeader(headerPrefix + '-DAP-Token');
|
|
689
691
|
break;
|
|
690
692
|
}
|
|
@@ -744,8 +746,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
|
|
|
744
746
|
return;
|
|
745
747
|
}
|
|
746
748
|
|
|
747
|
-
let path = '/data-activation/' +
|
|
748
|
-
config.api_version +
|
|
749
|
+
let path = '/data-activation/x1' +
|
|
749
750
|
'/token/' + token +
|
|
750
751
|
'/membership';
|
|
751
752
|
|
|
@@ -812,8 +813,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
|
|
|
812
813
|
error: (error, request) => { onError(request, request.status, error, onDone); }
|
|
813
814
|
};
|
|
814
815
|
|
|
815
|
-
let path = '/data-activation/' +
|
|
816
|
-
config.api_version +
|
|
816
|
+
let path = '/data-activation/x1' +
|
|
817
817
|
'/token/' + token +
|
|
818
818
|
'/membership/encrypt';
|
|
819
819
|
|
|
@@ -42,7 +42,7 @@ pbjs.setConfig({
|
|
|
42
42
|
waitForIt: true,
|
|
43
43
|
params: {
|
|
44
44
|
apiHostname: '<see your Symitri account rep>',
|
|
45
|
-
apiVersion:
|
|
45
|
+
apiVersion: 'x1'|'x2',
|
|
46
46
|
apiAuthToken: '<see your Symitri account rep>',
|
|
47
47
|
domain: 'your-domain.com',
|
|
48
48
|
identityType: 'simpleid'|'compositeid'|'hashedid'|'dap-signature:1.0.0',
|
|
@@ -68,7 +68,7 @@ Please reach out to your Symitri account representative(<Prebid@symitri.com>) to
|
|
|
68
68
|
| name | String | Symitri Dap Rtd module name | 'symitriDap' always|
|
|
69
69
|
| waitForIt | Boolean | Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false |
|
|
70
70
|
| apiHostname | String | Hostname provided by Symitri | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value|
|
|
71
|
-
| apiVersion | String | This holds the API version |
|
|
71
|
+
| apiVersion | String | This holds the API version | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value |
|
|
72
72
|
| apiAuthToken | String | Symitri API AuthToken | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value |
|
|
73
73
|
| domain | String | The domain name of your webpage | |
|
|
74
74
|
| identityType | String | 'simpleid' or 'compositeid' or 'hashedid' or 'dap-signature:1.0.0' | Use 'simpleid' to pass email or other plain text ids and SymitriRTD Module will hash it.
|
package/modules/userId/eids.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {deepClone, isFn, isStr} from '../../src/utils.js';
|
|
1
|
+
import {logError, deepClone, isFn, isStr} from '../../src/utils.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @typedef {import('./index.js').SubmodulePriorityMap} SubmodulePriorityMap
|
|
@@ -38,7 +38,10 @@ function createEidObject(userIdData, subModuleKey, eidConf) {
|
|
|
38
38
|
export function createEidsArray(bidRequestUserId, eidConfigs = EID_CONFIG) {
|
|
39
39
|
const allEids = {};
|
|
40
40
|
function collect(eid) {
|
|
41
|
-
const key = JSON.stringify([
|
|
41
|
+
const key = JSON.stringify([
|
|
42
|
+
eid.source?.toLowerCase(),
|
|
43
|
+
...Object.keys(eid).filter(k => !['uids', 'source'].includes(k)).sort().map(k => eid[k])
|
|
44
|
+
]);
|
|
42
45
|
if (allEids.hasOwnProperty(key)) {
|
|
43
46
|
allEids[key].uids.push(...eid.uids);
|
|
44
47
|
} else {
|
|
@@ -48,8 +51,27 @@ export function createEidsArray(bidRequestUserId, eidConfigs = EID_CONFIG) {
|
|
|
48
51
|
|
|
49
52
|
Object.entries(bidRequestUserId).forEach(([name, values]) => {
|
|
50
53
|
values = Array.isArray(values) ? values : [values];
|
|
51
|
-
const
|
|
52
|
-
eids
|
|
54
|
+
const eidConf = eidConfigs.get(name);
|
|
55
|
+
let eids;
|
|
56
|
+
if (name === 'pubProvidedId') {
|
|
57
|
+
eids = deepClone(values);
|
|
58
|
+
} else if (typeof eidConf === 'function') {
|
|
59
|
+
try {
|
|
60
|
+
eids = eidConf(values);
|
|
61
|
+
if (!Array.isArray(eids)) {
|
|
62
|
+
eids = [eids];
|
|
63
|
+
}
|
|
64
|
+
eids.forEach(eid => eid.uids = eid.uids.filter(({id}) => isStr(id)))
|
|
65
|
+
eids = eids.filter(({uids}) => uids?.length > 0);
|
|
66
|
+
} catch (e) {
|
|
67
|
+
logError(`Could not generate EID for "${name}"`, e);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
eids = values.map(value => createEidObject(value, name, eidConf));
|
|
71
|
+
}
|
|
72
|
+
if (Array.isArray(eids)) {
|
|
73
|
+
eids.filter(eid => eid != null).forEach(collect);
|
|
74
|
+
}
|
|
53
75
|
})
|
|
54
76
|
return Object.values(allEids);
|
|
55
77
|
}
|
|
@@ -64,7 +86,12 @@ export function getEids(priorityMap) {
|
|
|
64
86
|
const submodule = submodules.find(mod => mod.idObj?.[key] != null);
|
|
65
87
|
if (submodule) {
|
|
66
88
|
idValues[key] = submodule.idObj[key];
|
|
67
|
-
|
|
89
|
+
let eidConf = submodule.submodule.eids?.[key];
|
|
90
|
+
if (typeof eidConf === 'function') {
|
|
91
|
+
// if eid config is given as a function, append the active module configuration to its args
|
|
92
|
+
eidConf = ((orig) => (...args) => orig(...args, submodule.config))(eidConf);
|
|
93
|
+
}
|
|
94
|
+
eidConfigs.set(key, eidConf);
|
|
68
95
|
}
|
|
69
96
|
})
|
|
70
97
|
return createEidsArray(idValues, eidConfigs);
|
|
@@ -65,7 +65,7 @@ const getBidRequestData = (reqBidsConfigObj, callback, config, userConsent) => {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
url.searchParams.set('mode', 'prebid')
|
|
68
|
-
|
|
68
|
+
url.searchParams.set('wurfl_id', 'true')
|
|
69
69
|
|
|
70
70
|
try {
|
|
71
71
|
loadExternalScript(url.toString(), MODULE_TYPE_RTD, MODULE_NAME, () => {
|
|
@@ -120,6 +120,9 @@ function enrichBidderRequests(reqBidsConfigObj, bidders, wjsResponse) {
|
|
|
120
120
|
*/
|
|
121
121
|
export const bidderData = (wurflData, caps, filter) => {
|
|
122
122
|
const data = {};
|
|
123
|
+
if ('wurfl_id' in wurflData) {
|
|
124
|
+
data['wurfl_id'] = wurflData.wurfl_id;
|
|
125
|
+
}
|
|
123
126
|
caps.forEach((cap, index) => {
|
|
124
127
|
if (!filter.includes(index)) {
|
|
125
128
|
return;
|
|
@@ -152,6 +155,9 @@ export const lowEntropyData = (wurflData, lowEntropyCaps) => {
|
|
|
152
155
|
if ('brand_name' in wurflData) {
|
|
153
156
|
data['brand_name'] = wurflData.brand_name;
|
|
154
157
|
}
|
|
158
|
+
if ('wurfl_id' in wurflData) {
|
|
159
|
+
data['wurfl_id'] = wurflData.wurfl_id;
|
|
160
|
+
}
|
|
155
161
|
return data;
|
|
156
162
|
}
|
|
157
163
|
/**
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
## Description
|
|
10
10
|
|
|
11
11
|
The WURFL RTD module enriches the OpenRTB 2.0 device data with [WURFL data](https://www.scientiamobile.com/wurfl-js-business-edition-at-the-intersection-of-javascript-and-enterprise/).
|
|
12
|
-
The module sets the WURFL data in `device.ext.wurfl` and all the bidder adapters will always receive the low entry
|
|
12
|
+
The module sets the WURFL data in `device.ext.wurfl` and all the bidder adapters will always receive the low entry capabilities like `is_mobile`, `complete_device_name` and `form_factor`, and the `wurfl_id`.
|
|
13
13
|
|
|
14
14
|
For a more detailed analysis bidders can subscribe to detect iPhone and iPad models and receive additional [WURFL device capabilities](https://www.scientiamobile.com/capabilities/?products%5B%5D=wurfl-js).
|
|
15
15
|
|
|
@@ -100,7 +100,7 @@ export const spec = {
|
|
|
100
100
|
if (bidderRequest.gdprConsent) {
|
|
101
101
|
query.gdpr = (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') ? bidderRequest.gdprConsent.gdprApplies : true;
|
|
102
102
|
if (query.gdpr) {
|
|
103
|
-
query.
|
|
103
|
+
query.gdpr_consent = bidderRequest.gdprConsent.consentString;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
@@ -184,7 +184,7 @@ export const spec = {
|
|
|
184
184
|
const extId = bidRequest.params.extId !== undefined ? '&id=' + bidRequest.params.extId : '';
|
|
185
185
|
const adType = matchedBid.adtype !== undefined ? matchedBid.adtype : '';
|
|
186
186
|
const gdprApplies = reqParams.gdpr ? '&gdpr=' + reqParams.gdpr : '';
|
|
187
|
-
const gdprConsent = reqParams.
|
|
187
|
+
const gdprConsent = reqParams.gdpr_consent ? '&gdpr_consent=' + reqParams.gdpr_consent : '';
|
|
188
188
|
const pvId = matchedBid.pvid !== undefined ? '&pvid=' + matchedBid.pvid : '';
|
|
189
189
|
const iabContent = reqParams.iab_content ? '&iab_content=' + reqParams.iab_content : '';
|
|
190
190
|
|
|
@@ -4,6 +4,8 @@ import adapterManager from '../src/adapterManager.js';
|
|
|
4
4
|
import {EVENTS} from '../src/constants.js';
|
|
5
5
|
|
|
6
6
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
7
|
+
import {config} from '../src/config.js';
|
|
8
|
+
import {parseDomain} from '../src/refererDetection.js';
|
|
7
9
|
|
|
8
10
|
const ZETA_GVL_ID = 833;
|
|
9
11
|
const ADAPTER_CODE = 'zeta_global_ssp';
|
|
@@ -27,10 +29,11 @@ function sendEvent(eventType, event) {
|
|
|
27
29
|
/// /////////// ADAPTER EVENT HANDLER FUNCTIONS //////////////
|
|
28
30
|
|
|
29
31
|
function adRenderSucceededHandler(args) {
|
|
32
|
+
const page = config.getConfig('pageUrl') || args.doc?.location?.host + args.doc?.location?.pathname;
|
|
30
33
|
const event = {
|
|
31
34
|
zetaParams: zetaParams,
|
|
32
|
-
domain:
|
|
33
|
-
page:
|
|
35
|
+
domain: parseDomain(page, {noLeadingWww: true}),
|
|
36
|
+
page: page,
|
|
34
37
|
bid: {
|
|
35
38
|
adId: args.bid?.adId,
|
|
36
39
|
requestId: args.bid?.requestId,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prebid.js",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.28.0",
|
|
4
4
|
"description": "Header Bidding Management Library",
|
|
5
5
|
"main": "src/prebid.public.js",
|
|
6
6
|
"exports": {
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
"fun-hooks": "^0.9.9",
|
|
144
144
|
"gulp-wrap": "^0.15.0",
|
|
145
145
|
"klona": "^2.0.6",
|
|
146
|
-
"live-connect-js": "^7.
|
|
146
|
+
"live-connect-js": "^7.2.0"
|
|
147
147
|
},
|
|
148
148
|
"optionalDependencies": {
|
|
149
149
|
"fsevents": "^2.3.2"
|
|
@@ -5,7 +5,7 @@ import {createBid} from '../bidfactory.js';
|
|
|
5
5
|
import {userSync} from '../userSync.js';
|
|
6
6
|
import {nativeBidIsValid} from '../native.js';
|
|
7
7
|
import {isValidVideoBid} from '../video.js';
|
|
8
|
-
import {
|
|
8
|
+
import {EVENTS, REJECTION_REASON, STATUS} from '../constants.js';
|
|
9
9
|
import * as events from '../events.js';
|
|
10
10
|
import {includes} from '../polyfill.js';
|
|
11
11
|
import {
|
|
@@ -13,9 +13,11 @@ import {
|
|
|
13
13
|
isArray,
|
|
14
14
|
isPlainObject,
|
|
15
15
|
logError,
|
|
16
|
-
logWarn,
|
|
16
|
+
logWarn,
|
|
17
|
+
memoize,
|
|
17
18
|
parseQueryStringParameters,
|
|
18
|
-
parseSizesInput,
|
|
19
|
+
parseSizesInput,
|
|
20
|
+
pick,
|
|
19
21
|
uniques
|
|
20
22
|
} from '../utils.js';
|
|
21
23
|
import {hook} from '../hook.js';
|
|
@@ -523,10 +525,9 @@ export const processBidderRequests = hook('sync', function (spec, bids, bidderRe
|
|
|
523
525
|
export const registerSyncInner = hook('async', function(spec, responses, gdprConsent, uspConsent, gppConsent) {
|
|
524
526
|
const aliasSyncEnabled = config.getConfig('userSync.aliasSyncEnabled');
|
|
525
527
|
if (spec.getUserSyncs && (aliasSyncEnabled || !adapterManager.aliasRegistry[spec.code])) {
|
|
526
|
-
let filterConfig = config.getConfig('userSync.filterSettings');
|
|
527
528
|
let syncs = spec.getUserSyncs({
|
|
528
|
-
iframeEnabled:
|
|
529
|
-
pixelEnabled:
|
|
529
|
+
iframeEnabled: userSync.canBidderRegisterSync('iframe', spec.code),
|
|
530
|
+
pixelEnabled: userSync.canBidderRegisterSync('image', spec.code),
|
|
530
531
|
}, responses, gdprConsent, uspConsent, gppConsent);
|
|
531
532
|
if (syncs) {
|
|
532
533
|
if (!Array.isArray(syncs)) {
|
package/src/adloader.js
CHANGED
package/src/native.js
CHANGED
|
@@ -436,13 +436,16 @@ function assetsMessage(data, adObject, keys, {index = auctionManager.index} = {}
|
|
|
436
436
|
message: 'assetResponse',
|
|
437
437
|
adId: data.adId,
|
|
438
438
|
};
|
|
439
|
-
let renderData = getRenderingData(adObject)
|
|
439
|
+
let {native: renderData, rendererVersion} = getRenderingData(adObject);
|
|
440
440
|
if (renderData) {
|
|
441
441
|
// if we have native rendering data (set up by the nativeRendering module)
|
|
442
442
|
// include it in full ("all assets") together with the renderer.
|
|
443
443
|
// this is to allow PUC to use dynamic renderers without requiring changes in creative setup
|
|
444
|
-
|
|
445
|
-
|
|
444
|
+
Object.assign(msg, {
|
|
445
|
+
native: Object.assign({}, renderData),
|
|
446
|
+
renderer: getCreativeRendererSource(adObject),
|
|
447
|
+
rendererVersion,
|
|
448
|
+
})
|
|
446
449
|
if (keys != null) {
|
|
447
450
|
renderData.assets = renderData.assets.filter(({key}) => keys.includes(key))
|
|
448
451
|
}
|