prebid.js 8.3.0 → 8.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/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a1MediaRtdProvider.js +1 -0
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adfBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/admanBidAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtelligentIdSystem.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/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beachfrontBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/britepoolIdSystem.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagementGpp.js +1 -1
- package/dist/consumableBidAdapter.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/criteoIdSystem.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/czechAdIdSystem.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/deepintentDpesIdSystem.js +1 -1
- package/dist/dependencies.json +6 -0
- package/dist/dmdIdSystem.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/fabrickIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/geolocationRtdProvider.js +1 -0
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gravitoIdSystem.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/idxIdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justIdSystem.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kinessoIdSystem.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.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/lotamePanoramaIdSystem.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/mediasquareBidAdapter.js +1 -1
- package/dist/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/netIdSystem.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +185 -182
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/oneKeyIdSystem.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/pairIdSystem.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +2 -2
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pulsepointBidAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/quantcastIdSystem.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/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/silverpushBidAdapter.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/ssmasBidAdapter.js +1 -0
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stroeerCoreBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/tncIdSystem.js +1 -1
- package/dist/topicsFpdModule.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/unifiedIdSystem.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/utiqSystem.js +1 -1
- package/dist/verizonMediaIdSystem.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/voxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.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/yandexBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/zeotapIdPlusIdSystem.js +1 -1
- package/integrationExamples/gpt/adUnitFloors.html +0 -1
- package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +1 -1
- package/integrationExamples/videoModule/jwplayer/eventListeners.html +2 -2
- package/integrationExamples/videoModule/jwplayer/eventsUI.html +1 -1
- package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +1 -1
- package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +1 -1
- package/integrationExamples/videoModule/jwplayer/playlist.html +1 -1
- package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +1 -1
- package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +1 -1
- package/integrationExamples/videoModule/videojs/eventListeners.html +1 -1
- package/integrationExamples/videoModule/videojs/eventsUI.html +1 -1
- package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +1 -1
- package/integrationExamples/videoModule/videojs/mediaMetadata.html +1 -1
- package/integrationExamples/videoModule/videojs/playlist.html +1 -1
- package/modules/.submodules.json +1 -0
- package/modules/33acrossBidAdapter.js +24 -14
- package/modules/33acrossIdSystem.js +24 -4
- package/modules/a1MediaRtdProvider.js +92 -0
- package/modules/a1MediaRtdProvider.md +46 -0
- package/modules/adagioBidAdapter.js +0 -1
- package/modules/adfBidAdapter.js +4 -1
- package/modules/adkernelAdnBidAdapter.js +1 -1
- package/modules/adkernelBidAdapter.js +10 -3
- package/modules/admanBidAdapter.js +4 -0
- package/modules/admixerIdSystem.js +6 -0
- package/modules/adnuntiusBidAdapter.js +5 -13
- package/modules/adqueryIdSystem.js +6 -0
- package/modules/adtelligentIdSystem.js +6 -0
- package/modules/adyoulikeBidAdapter.js +6 -3
- package/modules/amxIdSystem.js +6 -0
- package/modules/beachfrontBidAdapter.js +32 -6
- package/modules/brandmetricsRtdProvider.js +36 -2
- package/modules/brandmetricsRtdProvider.md +17 -2
- package/modules/britepoolIdSystem.js +6 -0
- package/modules/connectIdSystem.js +6 -0
- package/modules/consentManagementGpp.js +10 -1
- package/modules/consumableBidAdapter.js +9 -1
- package/modules/criteoIdSystem.js +6 -0
- package/modules/czechAdIdSystem.js +6 -0
- package/modules/dacIdSystem.js +6 -0
- package/modules/deepintentDpesIdSystem.js +7 -2
- package/modules/dmdIdSystem.js +6 -0
- package/modules/euidIdSystem.js +9 -0
- package/modules/fabrickIdSystem.js +6 -0
- package/modules/ftrackIdSystem.js +16 -0
- package/modules/gdprEnforcement.js +27 -22
- package/modules/geolocationRtdProvider.js +65 -0
- package/modules/gravitoIdSystem.js +6 -0
- package/modules/greenbidsRtdProvider.js +1 -1
- package/modules/gridBidAdapter.js +19 -0
- package/modules/growthCodeIdSystem.js +20 -1
- package/modules/hadronIdSystem.js +6 -0
- package/modules/id5IdSystem.js +34 -8
- package/modules/identityLinkIdSystem.js +6 -0
- package/modules/idxIdSystem.js +6 -0
- package/modules/imdsBidAdapter.js +38 -14
- package/modules/imuIdSystem.js +10 -0
- package/modules/intentIqIdSystem.js +6 -0
- package/modules/invibesBidAdapter.js +5 -5
- package/modules/ixBidAdapter.js +56 -2
- package/modules/justIdSystem.js +6 -0
- package/modules/kargoBidAdapter.js +4 -0
- package/modules/kinessoIdSystem.js +7 -2
- package/modules/liveIntentIdSystem.js +53 -0
- package/modules/lotamePanoramaIdSystem.js +6 -0
- package/modules/merkleIdSystem.js +24 -0
- package/modules/minutemediaBidAdapter.js +17 -2
- package/modules/mwOpenLinkIdSystem.js +6 -0
- package/modules/naveggIdSystem.js +6 -0
- package/modules/netIdSystem.js +6 -0
- package/modules/novatiqIdSystem.js +12 -0
- package/modules/oguryBidAdapter.js +29 -16
- package/modules/oneKeyIdSystem.js +26 -0
- package/modules/ozoneBidAdapter.js +65 -18
- package/modules/ozoneBidAdapter.md +3 -1
- package/modules/pairIdSystem.js +6 -0
- package/modules/parrableIdSystem.js +38 -2
- package/modules/publinkIdSystem.js +7 -1
- package/modules/pubmaticBidAdapter.js +16 -1
- package/modules/pulsepointBidAdapter.js +63 -424
- package/modules/pulsepointBidAdapter.md +39 -45
- package/modules/quantcastIdSystem.js +6 -0
- package/modules/rubiconBidAdapter.js +9 -0
- package/modules/sharedIdSystem.js +7 -1
- package/modules/silverpushBidAdapter.js +2 -2
- package/modules/sovrnBidAdapter.js +5 -1
- package/modules/ssmasBidAdapter.js +126 -0
- package/modules/ssmasBidAdapter.md +35 -0
- package/modules/sspBCBidAdapter.js +36 -13
- package/modules/stroeerCoreBidAdapter.js +2 -3
- package/modules/tapadIdSystem.js +6 -0
- package/modules/teadsBidAdapter.js +2 -0
- package/modules/tncIdSystem.js +6 -0
- package/modules/topicsFpdModule.js +4 -1
- package/modules/topicsFpdModule.md +4 -0
- package/modules/tripleliftBidAdapter.js +5 -0
- package/modules/uid2IdSystem.js +14 -0
- package/modules/unifiedIdSystem.js +11 -0
- package/modules/userId/eids.js +6 -445
- package/modules/userId/index.js +38 -26
- package/modules/utiqSystem.js +9 -0
- package/modules/verizonMediaIdSystem.js +6 -0
- package/modules/vidazooBidAdapter.js +5 -7
- package/modules/voxBidAdapter.js +16 -5
- package/modules/vrtcalBidAdapter.js +10 -6
- package/modules/yahoosspBidAdapter.js +38 -33
- package/modules/yahoosspBidAdapter.md +96 -95
- package/modules/yandexBidAdapter.js +12 -15
- package/modules/zeotapIdPlusIdSystem.js +6 -0
- package/package.json +1 -1
- package/src/activities/redactor.js +1 -1
- package/src/adapters/bidderFactory.js +15 -6
- package/src/adloader.js +2 -1
- package/src/auction.js +24 -2
- package/src/constants.json +3 -1
- package/src/fpd/sua.js +8 -2
- package/test/spec/auctionmanager_spec.js +29 -1
- package/test/spec/fpd/enrichment_spec.js +7 -1
- package/test/spec/fpd/sua_spec.js +12 -0
- package/test/spec/modules/33acrossBidAdapter_spec.js +188 -35
- package/test/spec/modules/33acrossIdSystem_spec.js +122 -27
- package/test/spec/modules/a1MediaRtdProvider_spec.js +105 -0
- package/test/spec/modules/adagioBidAdapter_spec.js +0 -1
- package/test/spec/modules/adfBidAdapter_spec.js +47 -0
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -2
- package/test/spec/modules/adkernelBidAdapter_spec.js +7 -2
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +116 -64
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -24
- package/test/spec/modules/beachfrontBidAdapter_spec.js +35 -2
- package/test/spec/modules/brandmetricsRtdProvider_spec.js +69 -7
- package/test/spec/modules/consentManagementGpp_spec.js +16 -0
- package/test/spec/modules/consumableBidAdapter_spec.js +15 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +5 -5
- package/test/spec/modules/gdprEnforcement_spec.js +43 -2
- package/test/spec/modules/geolocationRtdProvider_spec.js +119 -0
- package/test/spec/modules/greenbidsRtdProvider_spec.js +1 -1
- package/test/spec/modules/gridBidAdapter_spec.js +42 -0
- package/test/spec/modules/id5IdSystem_spec.js +18 -0
- package/test/spec/modules/imdsBidAdapter_spec.js +98 -17
- package/test/spec/modules/invibesBidAdapter_spec.js +123 -32
- package/test/spec/modules/ixBidAdapter_spec.js +95 -5
- package/test/spec/modules/kargoBidAdapter_spec.js +121 -106
- package/test/spec/modules/medianetBidAdapter_spec.js +117 -0
- package/test/spec/modules/minutemediaBidAdapter_spec.js +36 -5
- package/test/spec/modules/oguryBidAdapter_spec.js +208 -108
- package/test/spec/modules/outbrainBidAdapter_spec.js +3 -5
- package/test/spec/modules/ozoneBidAdapter_spec.js +27 -1
- package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -20
- package/test/spec/modules/priceFloors_spec.js +14 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +125 -373
- package/test/spec/modules/pulsepointBidAdapter_spec.js +225 -486
- package/test/spec/modules/rubiconBidAdapter_spec.js +220 -9
- package/test/spec/modules/smaatoBidAdapter_spec.js +4 -6
- package/test/spec/modules/sovrnBidAdapter_spec.js +24 -4
- package/test/spec/modules/ssmasBidAdapter_spec.js +244 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +18 -19
- package/test/spec/modules/stroeerCoreBidAdapter_spec.js +8 -5
- package/test/spec/modules/teadsBidAdapter_spec.js +70 -21
- package/test/spec/modules/topicsFpdModule_spec.js +10 -4
- package/test/spec/modules/tripleliftBidAdapter_spec.js +40 -0
- package/test/spec/modules/userId_spec.js +116 -7
- package/test/spec/modules/vidazooBidAdapter_spec.js +0 -5
- package/test/spec/modules/voxBidAdapter_spec.js +93 -0
- package/test/spec/modules/vrtcalBidAdapter_spec.js +12 -4
- package/test/spec/modules/xeBidAdapter_spec.js +366 -368
- package/test/spec/modules/yahoosspBidAdapter_spec.js +405 -330
- package/test/spec/modules/yandexBidAdapter_spec.js +21 -3
- package/test/spec/unit/core/bidderFactory_spec.js +61 -14
- package/integrationExamples/gpt/inskin_example.html +0 -100
- package/integrationExamples/gpt/pbjs_video_adUnit.html +0 -109
package/modules/dacIdSystem.js
CHANGED
|
@@ -39,8 +39,13 @@ export const deepintentDpesSubmodule = {
|
|
|
39
39
|
*/
|
|
40
40
|
getId(config, consentData, cacheIdObj) {
|
|
41
41
|
return cacheIdObj;
|
|
42
|
-
}
|
|
43
|
-
|
|
42
|
+
},
|
|
43
|
+
eids: {
|
|
44
|
+
'deepintentId': {
|
|
45
|
+
source: 'deepintent.com',
|
|
46
|
+
atype: 3
|
|
47
|
+
},
|
|
48
|
+
},
|
|
44
49
|
};
|
|
45
50
|
|
|
46
51
|
submodule('userId', deepintentDpesSubmodule);
|
package/modules/dmdIdSystem.js
CHANGED
package/modules/euidIdSystem.js
CHANGED
|
@@ -103,6 +103,15 @@ export const euidIdSubmodule = {
|
|
|
103
103
|
_logInfo(`EUID getId returned`, result);
|
|
104
104
|
return result;
|
|
105
105
|
},
|
|
106
|
+
eids: {
|
|
107
|
+
'euid': {
|
|
108
|
+
source: 'euid.eu',
|
|
109
|
+
atype: 3,
|
|
110
|
+
getValue: function(data) {
|
|
111
|
+
return data.id;
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
},
|
|
106
115
|
};
|
|
107
116
|
|
|
108
117
|
function decodeImpl(value) {
|
|
@@ -221,6 +221,22 @@ export const ftrackIdSubmodule = {
|
|
|
221
221
|
if (usPrivacyVersion == 1 && usPrivacyOptOutSale === 'Y') consentValue = false;
|
|
222
222
|
|
|
223
223
|
return consentValue;
|
|
224
|
+
},
|
|
225
|
+
eids: {
|
|
226
|
+
'ftrackId': {
|
|
227
|
+
source: 'flashtalking.com',
|
|
228
|
+
atype: 1,
|
|
229
|
+
getValue: function(data) {
|
|
230
|
+
let value = '';
|
|
231
|
+
if (data && data.ext && data.ext.DeviceID) {
|
|
232
|
+
value = data.ext.DeviceID;
|
|
233
|
+
}
|
|
234
|
+
return value;
|
|
235
|
+
},
|
|
236
|
+
getUidExt: function(data) {
|
|
237
|
+
return data && data.ext;
|
|
238
|
+
}
|
|
239
|
+
},
|
|
224
240
|
}
|
|
225
241
|
};
|
|
226
242
|
|
|
@@ -24,18 +24,19 @@ import {
|
|
|
24
24
|
import {registerActivityControl} from '../src/activities/rules.js';
|
|
25
25
|
import {
|
|
26
26
|
ACTIVITY_ACCESS_DEVICE,
|
|
27
|
-
ACTIVITY_ENRICH_EIDS,
|
|
27
|
+
ACTIVITY_ENRICH_EIDS, ACTIVITY_ENRICH_UFPD,
|
|
28
28
|
ACTIVITY_FETCH_BIDS,
|
|
29
29
|
ACTIVITY_REPORT_ANALYTICS,
|
|
30
|
-
ACTIVITY_SYNC_USER
|
|
30
|
+
ACTIVITY_SYNC_USER, ACTIVITY_TRANSMIT_UFPD
|
|
31
31
|
} from '../src/activities/activities.js';
|
|
32
32
|
|
|
33
33
|
export const STRICT_STORAGE_ENFORCEMENT = 'strictStorageEnforcement';
|
|
34
34
|
|
|
35
35
|
const TCF2 = {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
purpose1: {id: 1, name: 'storage'},
|
|
37
|
+
purpose2: {id: 2, name: 'basicAds'},
|
|
38
|
+
purpose4: {id: 4, name: 'personalizedAds'},
|
|
39
|
+
purpose7: {id: 7, name: 'measurement'},
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
/*
|
|
@@ -55,6 +56,7 @@ const DEFAULT_RULES = [{
|
|
|
55
56
|
|
|
56
57
|
export let purpose1Rule;
|
|
57
58
|
export let purpose2Rule;
|
|
59
|
+
export let purpose4Rule;
|
|
58
60
|
export let purpose7Rule;
|
|
59
61
|
|
|
60
62
|
export let enforcementRules;
|
|
@@ -62,6 +64,7 @@ export let enforcementRules;
|
|
|
62
64
|
const storageBlocked = new Set();
|
|
63
65
|
const biddersBlocked = new Set();
|
|
64
66
|
const analyticsBlocked = new Set();
|
|
67
|
+
const ufpdBlocked = new Set();
|
|
65
68
|
|
|
66
69
|
let hooksAdded = false;
|
|
67
70
|
let strictStorageEnforcement = false;
|
|
@@ -232,6 +235,8 @@ export const fetchBidsRule = ((rule) => {
|
|
|
232
235
|
|
|
233
236
|
export const reportAnalyticsRule = gdprRule(7, () => purpose7Rule, analyticsBlocked, (params) => getGvlidFromAnalyticsAdapter(params[ACTIVITY_PARAM_COMPONENT_NAME], params[ACTIVITY_PARAM_ANL_CONFIG]));
|
|
234
237
|
|
|
238
|
+
export const ufpdRule = gdprRule(4, () => purpose4Rule, ufpdBlocked);
|
|
239
|
+
|
|
235
240
|
/**
|
|
236
241
|
* Compiles the TCF2.0 enforcement results into an object, which is emitted as an event payload to "tcf2Enforcement" event.
|
|
237
242
|
*/
|
|
@@ -243,27 +248,20 @@ function emitTCF2FinalResults() {
|
|
|
243
248
|
const tcf2FinalResults = {
|
|
244
249
|
storageBlocked: formatSet(storageBlocked),
|
|
245
250
|
biddersBlocked: formatSet(biddersBlocked),
|
|
246
|
-
analyticsBlocked: formatSet(analyticsBlocked)
|
|
251
|
+
analyticsBlocked: formatSet(analyticsBlocked),
|
|
252
|
+
ufpdBlocked: formatSet(ufpdBlocked),
|
|
247
253
|
};
|
|
248
254
|
|
|
249
255
|
events.emit(CONSTANTS.EVENTS.TCF2_ENFORCEMENT, tcf2FinalResults);
|
|
250
|
-
[storageBlocked, biddersBlocked, analyticsBlocked].forEach(el => el.clear());
|
|
256
|
+
[storageBlocked, biddersBlocked, analyticsBlocked, ufpdBlocked].forEach(el => el.clear());
|
|
251
257
|
}
|
|
252
258
|
|
|
253
259
|
events.on(CONSTANTS.EVENTS.AUCTION_END, emitTCF2FinalResults);
|
|
254
260
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
return rule.purpose === TCF2.purpose1.name;
|
|
260
|
-
};
|
|
261
|
-
const hasPurpose2 = (rule) => {
|
|
262
|
-
return rule.purpose === TCF2.purpose2.name;
|
|
263
|
-
};
|
|
264
|
-
const hasPurpose7 = (rule) => {
|
|
265
|
-
return rule.purpose === TCF2.purpose7.name;
|
|
266
|
-
};
|
|
261
|
+
function hasPurpose(purposeNo) {
|
|
262
|
+
const pname = TCF2[`purpose${purposeNo}`].name;
|
|
263
|
+
return (rule) => rule.purpose === pname;
|
|
264
|
+
}
|
|
267
265
|
|
|
268
266
|
/**
|
|
269
267
|
* A configuration function that initializes some module variables, as well as adds hooks
|
|
@@ -279,9 +277,10 @@ export function setEnforcementConfig(config) {
|
|
|
279
277
|
}
|
|
280
278
|
strictStorageEnforcement = !!deepAccess(config, STRICT_STORAGE_ENFORCEMENT);
|
|
281
279
|
|
|
282
|
-
purpose1Rule = find(enforcementRules,
|
|
283
|
-
purpose2Rule = find(enforcementRules,
|
|
284
|
-
|
|
280
|
+
purpose1Rule = find(enforcementRules, hasPurpose(1));
|
|
281
|
+
purpose2Rule = find(enforcementRules, hasPurpose(2));
|
|
282
|
+
purpose4Rule = find(enforcementRules, hasPurpose(4))
|
|
283
|
+
purpose7Rule = find(enforcementRules, hasPurpose(7));
|
|
285
284
|
|
|
286
285
|
if (!purpose1Rule) {
|
|
287
286
|
purpose1Rule = DEFAULT_RULES[0];
|
|
@@ -301,6 +300,12 @@ export function setEnforcementConfig(config) {
|
|
|
301
300
|
if (purpose2Rule) {
|
|
302
301
|
RULE_HANDLES.push(registerActivityControl(ACTIVITY_FETCH_BIDS, RULE_NAME, fetchBidsRule));
|
|
303
302
|
}
|
|
303
|
+
if (purpose4Rule) {
|
|
304
|
+
RULE_HANDLES.push(
|
|
305
|
+
registerActivityControl(ACTIVITY_TRANSMIT_UFPD, RULE_NAME, ufpdRule),
|
|
306
|
+
registerActivityControl(ACTIVITY_ENRICH_UFPD, RULE_NAME, ufpdRule)
|
|
307
|
+
);
|
|
308
|
+
}
|
|
304
309
|
if (purpose7Rule) {
|
|
305
310
|
RULE_HANDLES.push(registerActivityControl(ACTIVITY_REPORT_ANALYTICS, RULE_NAME, reportAnalyticsRule));
|
|
306
311
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {submodule} from '../src/hook.js';
|
|
2
|
+
import {isFn, logError, deepAccess, deepSetValue, logInfo, logWarn} from '../src/utils.js';
|
|
3
|
+
import { ACTIVITY_TRANSMIT_PRECISE_GEO } from '../src/activities/activities.js';
|
|
4
|
+
import { MODULE_TYPE_RTD } from '../src/activities/modules.js';
|
|
5
|
+
import { isActivityAllowed } from '../src/activities/rules.js';
|
|
6
|
+
import { activityParams } from '../src/activities/activityParams.js';
|
|
7
|
+
|
|
8
|
+
let permissionsAvailable = true;
|
|
9
|
+
let geolocation;
|
|
10
|
+
function getGeolocationData(requestBidsObject, onDone, providerConfig, userConsent) {
|
|
11
|
+
let done = false;
|
|
12
|
+
if (!permissionsAvailable) {
|
|
13
|
+
logWarn('permission for geolocation receiving was denied');
|
|
14
|
+
return complete()
|
|
15
|
+
};
|
|
16
|
+
if (!isActivityAllowed(ACTIVITY_TRANSMIT_PRECISE_GEO, activityParams(MODULE_TYPE_RTD, 'geolocation'))) {
|
|
17
|
+
logWarn('permission for geolocation receiving was denied by CMP');
|
|
18
|
+
return complete()
|
|
19
|
+
};
|
|
20
|
+
const requestPermission = deepAccess(providerConfig, 'params.requestPermission') === true;
|
|
21
|
+
const waitForIt = providerConfig.waitForIt;
|
|
22
|
+
navigator.permissions.query({
|
|
23
|
+
name: 'geolocation',
|
|
24
|
+
}).then(permission => {
|
|
25
|
+
if (permission.state !== 'granted' && !requestPermission) return complete();
|
|
26
|
+
navigator.geolocation.getCurrentPosition(geo => {
|
|
27
|
+
geolocation = geo;
|
|
28
|
+
complete();
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
if (!waitForIt) complete();
|
|
32
|
+
function complete() {
|
|
33
|
+
if (done) return;
|
|
34
|
+
done = true;
|
|
35
|
+
if (geolocation) {
|
|
36
|
+
deepSetValue(requestBidsObject, 'ortb2Fragments.global.device.geo', {
|
|
37
|
+
lat: geolocation.coords.latitude,
|
|
38
|
+
lon: geolocation.coords.longitude,
|
|
39
|
+
lastfix: geolocation.timestamp,
|
|
40
|
+
type: 1
|
|
41
|
+
});
|
|
42
|
+
logInfo('geolocation was successfully received ', requestBidsObject.ortb2Fragments.global.device.geo)
|
|
43
|
+
}
|
|
44
|
+
onDone();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function init(moduleConfig) {
|
|
48
|
+
geolocation = void 0;
|
|
49
|
+
if (!isFn(navigator?.permissions?.query) || !isFn(navigator?.geolocation?.getCurrentPosition || !navigator?.permissions?.query)) {
|
|
50
|
+
logError('geolocation is not defined');
|
|
51
|
+
permissionsAvailable = false;
|
|
52
|
+
} else {
|
|
53
|
+
permissionsAvailable = true;
|
|
54
|
+
}
|
|
55
|
+
return permissionsAvailable;
|
|
56
|
+
}
|
|
57
|
+
export const geolocationSubmodule = {
|
|
58
|
+
name: 'geolocation',
|
|
59
|
+
getBidRequestData: getGeolocationData,
|
|
60
|
+
init: init,
|
|
61
|
+
};
|
|
62
|
+
function registerSubModule() {
|
|
63
|
+
submodule('realTimeData', geolocationSubmodule);
|
|
64
|
+
}
|
|
65
|
+
registerSubModule();
|
|
@@ -4,7 +4,7 @@ import { submodule } from '../src/hook.js';
|
|
|
4
4
|
|
|
5
5
|
const MODULE_NAME = 'greenbidsRtdProvider';
|
|
6
6
|
const MODULE_VERSION = '1.0.0';
|
|
7
|
-
const ENDPOINT = 'https://
|
|
7
|
+
const ENDPOINT = 'https://t.greenbids.ai';
|
|
8
8
|
|
|
9
9
|
const auctionInfo = {};
|
|
10
10
|
const rtdOptions = {};
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
isNumber,
|
|
10
10
|
isStr
|
|
11
11
|
} from '../src/utils.js';
|
|
12
|
+
import { ajax } from '../src/ajax.js';
|
|
12
13
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
13
14
|
import { Renderer } from '../src/Renderer.js';
|
|
14
15
|
import { VIDEO, BANNER } from '../src/mediaTypes.js';
|
|
@@ -17,6 +18,7 @@ import { getStorageManager } from '../src/storageManager.js';
|
|
|
17
18
|
|
|
18
19
|
const BIDDER_CODE = 'grid';
|
|
19
20
|
const ENDPOINT_URL = 'https://grid.bidswitch.net/hbjson';
|
|
21
|
+
const USP_DELETE_DATA_HANDLER = 'https://media.grid.bidswitch.net/uspapi_delete'
|
|
20
22
|
|
|
21
23
|
const SYNC_URL = 'https://x.bidswitch.net/sync?ssp=themediagrid';
|
|
22
24
|
const TIME_TO_LIVE = 360;
|
|
@@ -462,6 +464,23 @@ export const spec = {
|
|
|
462
464
|
url: syncUrl + params
|
|
463
465
|
};
|
|
464
466
|
}
|
|
467
|
+
},
|
|
468
|
+
|
|
469
|
+
ajaxCall: function(url, cb, data, options) {
|
|
470
|
+
return ajax(url, cb, data, options);
|
|
471
|
+
},
|
|
472
|
+
|
|
473
|
+
onDataDeletionRequest: function(data) {
|
|
474
|
+
const uids = [];
|
|
475
|
+
const aliases = [spec.code, ...spec.aliases.map((alias) => alias.code || alias)];
|
|
476
|
+
data.forEach(({ bids }) => bids && bids.forEach(({ bidder, params }) => {
|
|
477
|
+
if (aliases.includes(bidder) && params && params.uid) {
|
|
478
|
+
uids.push(params.uid);
|
|
479
|
+
}
|
|
480
|
+
}));
|
|
481
|
+
if (uids.length) {
|
|
482
|
+
spec.ajaxCall(USP_DELETE_DATA_HANDLER, () => {}, JSON.stringify({ uids }), {contentType: 'application/json', method: 'POST'});
|
|
483
|
+
}
|
|
465
484
|
}
|
|
466
485
|
};
|
|
467
486
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @requires module:modules/userId
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {logError, logInfo, tryAppendQueryString} from '../src/utils.js';
|
|
8
|
+
import {logError, logInfo, pick, tryAppendQueryString} from '../src/utils.js';
|
|
9
9
|
import {ajax} from '../src/ajax.js';
|
|
10
10
|
import { submodule } from '../src/hook.js'
|
|
11
11
|
import {getStorageManager} from '../src/storageManager.js';
|
|
@@ -166,6 +166,25 @@ export const growthCodeIdSubmodule = {
|
|
|
166
166
|
}
|
|
167
167
|
};
|
|
168
168
|
return { callback: resp };
|
|
169
|
+
},
|
|
170
|
+
eids: {
|
|
171
|
+
'growthCodeId': {
|
|
172
|
+
getValue: function(data) {
|
|
173
|
+
return data.gc_id
|
|
174
|
+
},
|
|
175
|
+
source: 'growthcode.io',
|
|
176
|
+
atype: 1,
|
|
177
|
+
getUidExt: function(data) {
|
|
178
|
+
const extendedData = pick(data, [
|
|
179
|
+
'h1',
|
|
180
|
+
'h2',
|
|
181
|
+
'h3',
|
|
182
|
+
]);
|
|
183
|
+
if (Object.keys(extendedData).length) {
|
|
184
|
+
return extendedData;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
169
188
|
}
|
|
170
189
|
};
|
|
171
190
|
|
package/modules/id5IdSystem.js
CHANGED
|
@@ -108,7 +108,7 @@ export const id5IdSubmodule = {
|
|
|
108
108
|
* @returns {IdResponse|undefined}
|
|
109
109
|
*/
|
|
110
110
|
getId(submoduleConfig, consentData, cacheIdObj) {
|
|
111
|
-
if (!
|
|
111
|
+
if (!validateConfig(submoduleConfig)) {
|
|
112
112
|
return undefined;
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -142,19 +142,31 @@ export const id5IdSubmodule = {
|
|
|
142
142
|
* @return {(IdResponse|function(callback:function))} A response object that contains id and/or callback.
|
|
143
143
|
*/
|
|
144
144
|
extendId(config, consentData, cacheIdObj) {
|
|
145
|
-
hasRequiredConfig(config);
|
|
146
|
-
|
|
147
145
|
if (!hasWriteConsentToLocalStorage(consentData)) {
|
|
148
146
|
logInfo(LOG_PREFIX + 'No consent given for ID5 local storage writing, skipping nb increment.')
|
|
149
147
|
return cacheIdObj;
|
|
150
148
|
}
|
|
151
149
|
|
|
152
|
-
const partnerId = (config
|
|
150
|
+
const partnerId = validateConfig(config) ? config.params.partner : 0;
|
|
153
151
|
incrementNb(partnerId);
|
|
154
152
|
|
|
155
153
|
logInfo(LOG_PREFIX + 'using cached ID', cacheIdObj);
|
|
156
154
|
return cacheIdObj;
|
|
157
|
-
}
|
|
155
|
+
},
|
|
156
|
+
eids: {
|
|
157
|
+
'id5id': {
|
|
158
|
+
getValue: function(data) {
|
|
159
|
+
return data.uid
|
|
160
|
+
},
|
|
161
|
+
source: 'id5-sync.com',
|
|
162
|
+
atype: 1,
|
|
163
|
+
getUidExt: function(data) {
|
|
164
|
+
if (data.ext) {
|
|
165
|
+
return data.ext;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
},
|
|
158
170
|
};
|
|
159
171
|
|
|
160
172
|
class IdFetchFlow {
|
|
@@ -293,9 +305,23 @@ class IdFetchFlow {
|
|
|
293
305
|
}
|
|
294
306
|
}
|
|
295
307
|
|
|
296
|
-
function
|
|
297
|
-
if (!config || !config.params || !config.params.partner
|
|
298
|
-
logError(LOG_PREFIX + 'partner required to be defined
|
|
308
|
+
function validateConfig(config) {
|
|
309
|
+
if (!config || !config.params || !config.params.partner) {
|
|
310
|
+
logError(LOG_PREFIX + 'partner required to be defined');
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const partner = config.params.partner
|
|
315
|
+
if (typeof partner === 'string' || partner instanceof String) {
|
|
316
|
+
let parsedPartnerId = parseInt(partner);
|
|
317
|
+
if (isNaN(parsedPartnerId) || parsedPartnerId < 0) {
|
|
318
|
+
logError(LOG_PREFIX + 'partner required to be a number or a String parsable to a positive integer');
|
|
319
|
+
return false;
|
|
320
|
+
} else {
|
|
321
|
+
config.params.partner = parsedPartnerId;
|
|
322
|
+
}
|
|
323
|
+
} else if (typeof partner !== 'number') {
|
|
324
|
+
logError(LOG_PREFIX + 'partner required to be a number or a String parsable to a positive integer');
|
|
299
325
|
return false;
|
|
300
326
|
}
|
|
301
327
|
|
package/modules/idxIdSystem.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn} from '../src/utils.js';
|
|
3
|
+
import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn, mergeDeep} from '../src/utils.js';
|
|
4
4
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
5
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
6
6
|
import {includes} from '../src/polyfill.js';
|
|
@@ -8,7 +8,8 @@ import {config} from '../src/config.js';
|
|
|
8
8
|
|
|
9
9
|
const BID_SCHEME = 'https://';
|
|
10
10
|
const BID_DOMAIN = 'technoratimedia.com';
|
|
11
|
-
const
|
|
11
|
+
const USER_SYNC_IFRAME_URL = 'https://ad-cdn.technoratimedia.com/html/usersync.html';
|
|
12
|
+
const USER_SYNC_PIXEL_URL = 'https://sync.technoratimedia.com/services';
|
|
12
13
|
const VIDEO_PARAMS = [ 'minduration', 'maxduration', 'startdelay', 'placement', 'linearity', 'mimes', 'protocols', 'api' ];
|
|
13
14
|
const BLOCKED_AD_SIZES = [
|
|
14
15
|
'1x1',
|
|
@@ -38,11 +39,11 @@ export const spec = {
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
const refererInfo = bidderRequest.refererInfo;
|
|
41
|
-
|
|
42
|
+
// start with some defaults, overridden by anything set in ortb2, if provided.
|
|
43
|
+
const openRtbBidRequest = mergeDeep({
|
|
42
44
|
id: bidderRequest.bidderRequestId,
|
|
43
45
|
site: {
|
|
44
|
-
|
|
45
|
-
domain: refererInfo.domain || location.hostname,
|
|
46
|
+
domain: refererInfo.domain,
|
|
46
47
|
page: refererInfo.page,
|
|
47
48
|
ref: refererInfo.ref
|
|
48
49
|
},
|
|
@@ -50,7 +51,7 @@ export const spec = {
|
|
|
50
51
|
ua: navigator.userAgent
|
|
51
52
|
},
|
|
52
53
|
imp: []
|
|
53
|
-
};
|
|
54
|
+
}, bidderRequest.ortb2 || {});
|
|
54
55
|
|
|
55
56
|
const tmax = bidderRequest.timeout;
|
|
56
57
|
if (tmax) {
|
|
@@ -101,9 +102,17 @@ export const spec = {
|
|
|
101
102
|
}
|
|
102
103
|
});
|
|
103
104
|
|
|
104
|
-
//
|
|
105
|
-
if (
|
|
106
|
-
deepSetValue(openRtbBidRequest, 'regs.
|
|
105
|
+
// Move us_privacy from regs.ext to regs if there isn't already a us_privacy in regs
|
|
106
|
+
if (openRtbBidRequest.regs?.ext?.us_privacy && !openRtbBidRequest.regs?.us_privacy) {
|
|
107
|
+
deepSetValue(openRtbBidRequest, 'regs.us_privacy', openRtbBidRequest.regs.ext.us_privacy);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Remove regs.ext.us_privacy
|
|
111
|
+
if (openRtbBidRequest.regs?.ext?.us_privacy) {
|
|
112
|
+
delete openRtbBidRequest.regs.ext.us_privacy;
|
|
113
|
+
if (Object.keys(openRtbBidRequest.regs.ext).length < 1) {
|
|
114
|
+
delete openRtbBidRequest.regs.ext;
|
|
115
|
+
}
|
|
107
116
|
}
|
|
108
117
|
|
|
109
118
|
// User ID
|
|
@@ -117,7 +126,7 @@ export const spec = {
|
|
|
117
126
|
if (openRtbBidRequest.imp.length && seatId) {
|
|
118
127
|
return {
|
|
119
128
|
method: 'POST',
|
|
120
|
-
url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src
|
|
129
|
+
url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src=pbjs%2F$prebid.version$`,
|
|
121
130
|
data: openRtbBidRequest,
|
|
122
131
|
options: {
|
|
123
132
|
contentType: 'application/json',
|
|
@@ -294,16 +303,31 @@ export const spec = {
|
|
|
294
303
|
}
|
|
295
304
|
return bids;
|
|
296
305
|
},
|
|
297
|
-
getUserSyncs: function
|
|
306
|
+
getUserSyncs: function(syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) {
|
|
298
307
|
const syncs = [];
|
|
308
|
+
const queryParams = ['src=pbjs%2F$prebid.version$'];
|
|
309
|
+
if (gdprConsent) {
|
|
310
|
+
queryParams.push(`gdpr=${Number(gdprConsent.gdprApplies && 1)}&consent=${encodeURIComponent(gdprConsent.consentString || '')}`);
|
|
311
|
+
}
|
|
312
|
+
if (uspConsent) {
|
|
313
|
+
queryParams.push('us_privacy=' + encodeURIComponent(uspConsent));
|
|
314
|
+
}
|
|
315
|
+
if (gppConsent) {
|
|
316
|
+
queryParams.push('gpp=' + encodeURIComponent(gppConsent.gppString || '') + '&gppsid=' + encodeURIComponent((gppConsent.applicableSections || []).join(',')));
|
|
317
|
+
}
|
|
318
|
+
|
|
299
319
|
if (syncOptions.iframeEnabled) {
|
|
300
320
|
syncs.push({
|
|
301
321
|
type: 'iframe',
|
|
302
|
-
url: `${
|
|
322
|
+
url: `${USER_SYNC_IFRAME_URL}?${queryParams.join('&')}`
|
|
323
|
+
});
|
|
324
|
+
} else if (syncOptions.pixelEnabled) {
|
|
325
|
+
syncs.push({
|
|
326
|
+
type: 'pixel',
|
|
327
|
+
url: `${USER_SYNC_PIXEL_URL}?srv=cs&${queryParams.join('&')}`
|
|
303
328
|
});
|
|
304
|
-
} else {
|
|
305
|
-
logWarn('IMDS: Please enable iframe based user sync.');
|
|
306
329
|
}
|
|
330
|
+
|
|
307
331
|
return syncs;
|
|
308
332
|
}
|
|
309
333
|
};
|
package/modules/imuIdSystem.js
CHANGED
|
@@ -160,6 +160,16 @@ export const imuIdSubmodule = {
|
|
|
160
160
|
imppid: localData.ppid
|
|
161
161
|
}
|
|
162
162
|
};
|
|
163
|
+
},
|
|
164
|
+
eids: {
|
|
165
|
+
'imppid': {
|
|
166
|
+
source: 'ppid.intimatemerger.com',
|
|
167
|
+
atype: 1
|
|
168
|
+
},
|
|
169
|
+
'imuid': {
|
|
170
|
+
source: 'intimatemerger.com',
|
|
171
|
+
atype: 1
|
|
172
|
+
},
|
|
163
173
|
}
|
|
164
174
|
};
|
|
165
175
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {logInfo} from '../src/utils.js';
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {getStorageManager} from '../src/storageManager.js';
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ const CONSTANTS = {
|
|
|
9
9
|
SYNC_ENDPOINT: 'https://k.r66net.com/GetUserSync',
|
|
10
10
|
TIME_TO_LIVE: 300,
|
|
11
11
|
DEFAULT_CURRENCY: 'EUR',
|
|
12
|
-
PREBID_VERSION:
|
|
12
|
+
PREBID_VERSION: 10,
|
|
13
13
|
METHOD: 'GET',
|
|
14
14
|
INVIBES_VENDOR_ID: 436,
|
|
15
15
|
USERID_PROVIDERS: ['pubcid', 'pubProvidedId', 'uid2', 'zeotapIdPlus', 'id5id'],
|
|
@@ -116,7 +116,7 @@ function buildRequest(bidRequests, bidderRequest) {
|
|
|
116
116
|
bidParamsJson.userId = userIdModel;
|
|
117
117
|
}
|
|
118
118
|
let data = {
|
|
119
|
-
location: getDocumentLocation(
|
|
119
|
+
location: getDocumentLocation(bidderRequest),
|
|
120
120
|
videoAdHtmlId: generateRandomId(),
|
|
121
121
|
showFallback: currentQueryStringParams['advs'] === '0',
|
|
122
122
|
ivbsCampIdsLocal: readFromLocalStorage('IvbsCampIdsLocal'),
|
|
@@ -371,8 +371,8 @@ function generateRandomId() {
|
|
|
371
371
|
return (Math.round(Math.random() * 1e12)).toString(36).substring(0, 10);
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
function getDocumentLocation(
|
|
375
|
-
return
|
|
374
|
+
function getDocumentLocation(bidderRequest) {
|
|
375
|
+
return bidderRequest.refererInfo.page.substring(0, 300);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
function getUserIds(bidUserId) {
|