prebid.js 9.4.1 → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +31 -5
- package/.github/workflows/jscpd.yml +2 -2
- package/.github/workflows/linter.yml +107 -0
- package/creative/crossDomain.js +6 -3
- package/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adagioRtdProvider.js +1 -1
- package/dist/adagioUtils.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adkernelUtils.js +1 -0
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/admixerBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/advRedAnalyticsAdapter.js +1 -0
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/anonymisedRtdProvider.js +1 -1
- package/dist/apacdexBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/azerionedgeRtdProvider.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/chunk-core.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connatixBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contxtfulRtdProvider.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currencyUtils.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/dependencies.json +69 -8
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dfpAdpod.js +1 -1
- package/dist/dfpUtils.js +1 -1
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eightPodAnalyticsAdapter.js +1 -1
- package/dist/eightPodBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/exadsBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fpdUtils.js +1 -0
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gptPreAuction.js +1 -1
- package/dist/gptUtils.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeRtdProvider.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerBidAdapter.js +1 -1
- package/dist/jwplayerRtdProvider.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/mobianRtdProvider.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +208 -199
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optoutBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/paapi.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/playdigoBidAdapter.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/programmaticaBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevatehealthBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/ringieraxelspringerBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/riseUtils.js +1 -0
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/schainSerializer.js +1 -0
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/sizeMapping.js +1 -1
- package/dist/sizeUtils.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/symitriDapRtdProvider.js +1 -0
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/targetVideoUtils.js +1 -0
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/teqblazeUtils.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/uid2IdSystem_shared.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userAgentUtils.js +1 -0
- package/dist/utiqIdSystem.js +1 -1
- package/dist/vidazooUtils.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahooAdsBidAdapter.js +1 -1
- package/dist/yandexIdSystem.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/x-domain/creative.html +1 -1
- package/libraries/adkernelUtils/adkernelUtils.js +11 -0
- package/libraries/currencyUtils/floor.js +23 -0
- package/libraries/dfpUtils/dfpUtils.js +7 -0
- package/libraries/fpdUtils/deviceInfo.js +58 -0
- package/libraries/fpdUtils/pageInfo.js +73 -0
- package/libraries/gptUtils/gptUtils.js +23 -1
- package/libraries/riseUtils/index.js +330 -0
- package/libraries/schainSerializer/schainSerializer.js +24 -0
- package/libraries/sizeUtils/tranformSize.js +43 -0
- package/libraries/targetVideoUtils/bidderUtils.js +178 -0
- package/libraries/targetVideoUtils/constants.js +23 -0
- package/libraries/teqblazeUtils/bidderUtils.js +15 -11
- package/libraries/userAgentUtils/index.js +58 -0
- package/libraries/userAgentUtils/userAgentTypes.enums.js +22 -0
- package/modules/.submodules.json +1 -0
- package/modules/33acrossAnalyticsAdapter.js +2 -0
- package/modules/adagioAnalyticsAdapter.js +101 -84
- package/modules/adagioAnalyticsAdapter.md +4 -0
- package/modules/adagioBidAdapter.js +5 -17
- package/modules/adagioRtdProvider.js +18 -4
- package/modules/adkernelAdnBidAdapter.js +1 -12
- package/modules/adkernelBidAdapter.js +4 -13
- package/modules/adlooxAnalyticsAdapter.js +1 -0
- package/modules/admixerBidAdapter.js +10 -6
- package/modules/admixerBidAdapter.md +7 -10
- package/modules/adtrgtmeBidAdapter.js +1 -1
- package/modules/advRedAnalyticsAdapter.js +198 -0
- package/modules/advRedAnalyticsAdapter.md +30 -0
- package/modules/aidemBidAdapter.js +2 -0
- package/modules/akamaiDapRtdProvider.js +19 -798
- package/modules/anonymisedRtdProvider.js +5 -1
- package/modules/anonymisedRtdProvider.md +1 -1
- package/modules/apacdexBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +56 -2
- package/modules/automatadAnalyticsAdapter.js +2 -0
- package/modules/azerionedgeRtdProvider.js +13 -3
- package/modules/azerionedgeRtdProvider.md +0 -17
- package/modules/bridBidAdapter.js +47 -47
- package/modules/cleanioRtdProvider.js +1 -0
- package/modules/concertBidAdapter.js +1 -1
- package/modules/connatixBidAdapter.js +36 -8
- package/modules/connectIdSystem.js +6 -2
- package/modules/contxtfulRtdProvider.js +20 -2
- package/modules/contxtfulRtdProvider.md +1 -0
- package/modules/craftBidAdapter.js +1 -1
- package/modules/criteoBidAdapter.js +1 -1
- package/modules/cwireBidAdapter.js +5 -1
- package/modules/dailymotionBidAdapter.js +85 -65
- package/modules/debugging/debugging.js +3 -0
- package/modules/dfpAdServerVideo.js +15 -33
- package/modules/dfpAdpod.js +2 -6
- package/modules/dgkeywordRtdProvider.js +2 -0
- package/modules/discoveryBidAdapter.js +26 -210
- package/modules/dspxBidAdapter.js +176 -54
- package/modules/eightPodAnalyticsAdapter.js +28 -34
- package/modules/eightPodBidAdapter.js +113 -57
- package/modules/fintezaAnalyticsAdapter.js +9 -4
- package/modules/goldbachBidAdapter.js +1 -1
- package/modules/gptPreAuction.js +63 -4
- package/modules/growthCodeAnalyticsAdapter.js +1 -1
- package/modules/growthCodeRtdProvider.js +1 -1
- package/modules/gumgumBidAdapter.js +14 -10
- package/modules/improvedigitalBidAdapter.js +1 -1
- package/modules/insticatorBidAdapter.js +35 -31
- package/modules/intentIqAnalyticsAdapter.js +234 -0
- package/modules/intentIqAnalyticsAdapter.md +27 -0
- package/modules/intentIqIdSystem.md +0 -0
- package/modules/jwplayerBidAdapter.js +1 -1
- package/modules/jwplayerRtdProvider.js +26 -6
- package/modules/jwplayerVideoProvider.js +6 -0
- package/modules/kargoBidAdapter.js +11 -14
- package/modules/kimberliteBidAdapter.js +24 -7
- package/modules/kimberliteBidAdapter.md +30 -1
- package/modules/mediafuseBidAdapter.js +1 -1
- package/modules/mediagoBidAdapter.js +7 -176
- package/modules/medianetBidAdapter.js +101 -40
- package/modules/mgidBidAdapter.js +3 -1
- package/modules/minutemediaBidAdapter.js +21 -398
- package/modules/mobianRtdProvider.js +16 -2
- package/modules/nextMillenniumBidAdapter.js +1 -27
- package/modules/nexx360BidAdapter.js +3 -2
- package/modules/nobidBidAdapter.js +1 -1
- package/modules/openwebBidAdapter.js +18 -396
- package/modules/optoutBidAdapter.js +1 -1
- package/modules/paapi.js +48 -35
- package/modules/permutiveRtdProvider.js +72 -22
- package/modules/playdigoBidAdapter.js +4 -2
- package/modules/prebidServerBidAdapter/index.js +4 -2
- package/modules/prebidServerBidAdapter/ortbConverter.js +1 -0
- package/modules/programmaticaBidAdapter.js +1 -1
- package/modules/publirBidAdapter.js +20 -273
- package/modules/pubmaticBidAdapter.js +12 -0
- package/modules/pubxaiAnalyticsAdapter.js +306 -164
- package/modules/relevatehealthBidAdapter.js +2 -1
- package/modules/resetdigitalBidAdapter.md +54 -45
- package/modules/richaudienceBidAdapter.js +1 -1
- package/modules/riseBidAdapter.js +19 -400
- package/modules/rtdModule/index.js +5 -3
- package/modules/shinezBidAdapter.js +17 -361
- package/modules/sirdataRtdProvider.js +2 -0
- package/modules/sizeMapping.js +2 -5
- package/modules/smaatoBidAdapter.js +18 -1
- package/modules/smarthubBidAdapter.js +45 -177
- package/modules/smilewantedBidAdapter.js +26 -22
- package/modules/snigelBidAdapter.js +1 -1
- package/modules/sonobiBidAdapter.js +5 -10
- package/modules/stnBidAdapter.js +22 -398
- package/modules/symitriDapRtdProvider.js +812 -0
- package/modules/symitriDapRtdProvider.md +49 -0
- package/modules/targetVideoBidAdapter.js +120 -152
- package/modules/targetVideoBidAdapter.md +20 -3
- package/modules/telariaBidAdapter.js +2 -32
- package/modules/uid2IdSystem_shared.js +51 -39
- package/modules/userId/eids.js +3 -0
- package/modules/utiqIdSystem.js +12 -10
- package/modules/validationFpdModule/index.js +22 -17
- package/modules/videojsVideoProvider.js +3 -0
- package/modules/visxBidAdapter.js +1 -1
- package/modules/winrBidAdapter.js +2 -27
- package/modules/yahooAdsBidAdapter.js +1 -1
- package/modules/yandexIdSystem.js +1 -1
- package/package.json +4 -4
- package/plugins/eslint/index.js +73 -45
- package/src/adloader.js +1 -0
- package/src/ajax.js +15 -0
- package/src/config.js +0 -4
- package/src/debugging.js +1 -0
- package/src/prebid.js +4 -0
- package/src/secureCreatives.js +1 -1
- package/src/storageManager.js +62 -73
- package/src/targeting.js +26 -20
- package/src/utils.js +9 -0
- package/test/pages/consent_mgt_gdpr.html +1 -1
- package/test/spec/ajax_spec.js +11 -0
- package/test/spec/creative/crossDomainCreative_spec.js +26 -9
- package/test/spec/fpd/gdpr_spec.js +1 -1
- package/test/spec/libraries/userAgentUtils_spec.js +109 -0
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +231 -141
- package/test/spec/modules/adagioBidAdapter_spec.js +32 -66
- package/test/spec/modules/adagioRtdProvider_spec.js +72 -0
- package/test/spec/modules/admixerBidAdapter_spec.js +21 -17
- package/test/spec/modules/advRedAnalyticsAdapter_spec.js +114 -0
- package/test/spec/modules/adxcgBidAdapter_spec.js +1 -1
- package/test/spec/modules/appnexusBidAdapter_spec.js +36 -0
- package/test/spec/modules/azerionedgeRtdProvider_spec.js +36 -21
- package/test/spec/modules/connatixBidAdapter_spec.js +55 -2
- package/test/spec/modules/connectIdSystem_spec.js +27 -28
- package/test/spec/modules/consentManagement_spec.js +1 -1
- package/test/spec/modules/contxtfulRtdProvider_spec.js +6 -0
- package/test/spec/modules/dailymotionBidAdapter_spec.js +497 -4
- package/test/spec/modules/discoveryBidAdapter_spec.js +9 -6
- package/test/spec/modules/dspxBidAdapter_spec.js +188 -7
- package/test/spec/modules/eightPodAnalyticsAdapter_spec.js +22 -13
- package/test/spec/modules/gptPreAuction_spec.js +143 -1
- package/test/spec/modules/gumgumBidAdapter_spec.js +17 -0
- package/test/spec/modules/insticatorBidAdapter_spec.js +8 -1
- package/test/spec/modules/intentIqAnalyticsAdapter_spec.js +172 -0
- package/test/spec/modules/jwplayerRtdProvider_spec.js +61 -0
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -8
- package/test/spec/modules/kimberliteBidAdapter_spec.js +137 -65
- package/test/spec/modules/mediagoBidAdapter_spec.js +34 -37
- package/test/spec/modules/medianetBidAdapter_spec.js +297 -16
- package/test/spec/modules/mgidBidAdapter_spec.js +15 -5
- package/test/spec/modules/mobianRtdProvider_spec.js +1 -3
- package/test/spec/modules/nexx360BidAdapter_spec.js +1 -1
- package/test/spec/modules/paapi_spec.js +177 -111
- package/test/spec/modules/permutiveRtdProvider_spec.js +42 -8
- package/test/spec/modules/prebidServerBidAdapter_spec.js +17 -3
- package/test/spec/modules/proxistoreBidAdapter_spec.js +1 -1
- package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +970 -603
- package/test/spec/modules/pulsepointBidAdapter_spec.js +4 -4
- package/test/spec/modules/smaatoBidAdapter_spec.js +36 -1
- package/test/spec/modules/smarthubBidAdapter_spec.js +6 -4
- package/test/spec/modules/smilewantedBidAdapter_spec.js +57 -1
- package/test/spec/modules/symitriDapRtdProvider_spec.js +600 -0
- package/test/spec/modules/targetVideoBidAdapter_spec.js +112 -11
- package/test/spec/modules/yandexIdSystem_spec.js +6 -1
- package/test/spec/schainSerializer/schainSerializer_spec.js +138 -0
- package/test/spec/unit/core/storageManager_spec.js +68 -51
- package/test/spec/unit/pbjs_api_spec.js +11 -0
- package/test/spec/utils_spec.js +19 -0
- /package/src/utils/{gpdr.js → gdpr.js} +0 -0
package/dist/dependencies.json
CHANGED
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"urlUtils.js"
|
|
34
34
|
],
|
|
35
35
|
"adagioAnalyticsAdapter.js": [
|
|
36
|
-
"analyticsAdapter.js"
|
|
36
|
+
"analyticsAdapter.js",
|
|
37
|
+
"adagioUtils.js"
|
|
37
38
|
],
|
|
38
39
|
"adagioBidAdapter.js": [
|
|
39
40
|
"gptUtils.js",
|
|
@@ -54,8 +55,12 @@
|
|
|
54
55
|
"adkernelAdnAnalyticsAdapter.js": [
|
|
55
56
|
"analyticsAdapter.js"
|
|
56
57
|
],
|
|
58
|
+
"adkernelAdnBidAdapter.js": [
|
|
59
|
+
"adkernelUtils.js"
|
|
60
|
+
],
|
|
57
61
|
"adkernelBidAdapter.js": [
|
|
58
|
-
"sizeUtils.js"
|
|
62
|
+
"sizeUtils.js",
|
|
63
|
+
"adkernelUtils.js"
|
|
59
64
|
],
|
|
60
65
|
"adlooxAdServerVideo.js": [
|
|
61
66
|
"chunk-core.js",
|
|
@@ -94,6 +99,9 @@
|
|
|
94
99
|
"aduptechBidAdapter.js": [
|
|
95
100
|
"sizeUtils.js"
|
|
96
101
|
],
|
|
102
|
+
"advRedAnalyticsAdapter.js": [
|
|
103
|
+
"analyticsAdapter.js"
|
|
104
|
+
],
|
|
97
105
|
"adxcgAnalyticsAdapter.js": [
|
|
98
106
|
"analyticsAdapter.js"
|
|
99
107
|
],
|
|
@@ -183,6 +191,9 @@
|
|
|
183
191
|
"boldwinBidAdapter.js": [
|
|
184
192
|
"teqblazeUtils.js"
|
|
185
193
|
],
|
|
194
|
+
"bridBidAdapter.js": [
|
|
195
|
+
"targetVideoUtils.js"
|
|
196
|
+
],
|
|
186
197
|
"byDataAnalyticsAdapter.js": [
|
|
187
198
|
"analyticsAdapter.js"
|
|
188
199
|
],
|
|
@@ -254,6 +265,7 @@
|
|
|
254
265
|
],
|
|
255
266
|
"dfpAdServerVideo.js": [
|
|
256
267
|
"chunk-core.js",
|
|
268
|
+
"gptUtils.js",
|
|
257
269
|
"dfpUtils.js"
|
|
258
270
|
],
|
|
259
271
|
"dfpAdpod.js": [
|
|
@@ -261,7 +273,10 @@
|
|
|
261
273
|
"dfpUtils.js"
|
|
262
274
|
],
|
|
263
275
|
"discoveryBidAdapter.js": [
|
|
264
|
-
"chunk-core.js"
|
|
276
|
+
"chunk-core.js",
|
|
277
|
+
"sizeUtils.js",
|
|
278
|
+
"currencyUtils.js",
|
|
279
|
+
"fpdUtils.js"
|
|
265
280
|
],
|
|
266
281
|
"displayioBidAdapter.js": [
|
|
267
282
|
"keywords.js"
|
|
@@ -332,6 +347,9 @@
|
|
|
332
347
|
"gppControl_usstates.js": [
|
|
333
348
|
"mspa.js"
|
|
334
349
|
],
|
|
350
|
+
"gptPreAuction.js": [
|
|
351
|
+
"gptUtils.js"
|
|
352
|
+
],
|
|
335
353
|
"greenbidsAnalyticsAdapter.js": [
|
|
336
354
|
"analyticsAdapter.js"
|
|
337
355
|
],
|
|
@@ -365,6 +383,9 @@
|
|
|
365
383
|
"chunk-core.js",
|
|
366
384
|
"ortbConverter.js"
|
|
367
385
|
],
|
|
386
|
+
"intentIqAnalyticsAdapter.js": [
|
|
387
|
+
"analyticsAdapter.js"
|
|
388
|
+
],
|
|
368
389
|
"invisiblyAnalyticsAdapter.js": [
|
|
369
390
|
"analyticsAdapter.js"
|
|
370
391
|
],
|
|
@@ -453,6 +474,11 @@
|
|
|
453
474
|
"appnexusUtils.js",
|
|
454
475
|
"categoryTranslationMapping.js"
|
|
455
476
|
],
|
|
477
|
+
"mediagoBidAdapter.js": [
|
|
478
|
+
"sizeUtils.js",
|
|
479
|
+
"currencyUtils.js",
|
|
480
|
+
"fpdUtils.js"
|
|
481
|
+
],
|
|
456
482
|
"medianetAnalyticsAdapter.js": [
|
|
457
483
|
"analyticsAdapter.js"
|
|
458
484
|
],
|
|
@@ -462,6 +488,9 @@
|
|
|
462
488
|
"mgidXBidAdapter.js": [
|
|
463
489
|
"teqblazeUtils.js"
|
|
464
490
|
],
|
|
491
|
+
"minutemediaBidAdapter.js": [
|
|
492
|
+
"riseUtils.js"
|
|
493
|
+
],
|
|
465
494
|
"mobfoxpbBidAdapter.js": [
|
|
466
495
|
"teqblazeUtils.js"
|
|
467
496
|
],
|
|
@@ -475,6 +504,9 @@
|
|
|
475
504
|
"chunk-core.js",
|
|
476
505
|
"ortbConverter.js"
|
|
477
506
|
],
|
|
507
|
+
"nextMillenniumBidAdapter.js": [
|
|
508
|
+
"targetVideoUtils.js"
|
|
509
|
+
],
|
|
478
510
|
"nexx360BidAdapter.js": [
|
|
479
511
|
"chunk-core.js",
|
|
480
512
|
"ortbConverter.js"
|
|
@@ -498,6 +530,9 @@
|
|
|
498
530
|
"open8BidAdapter.js": [
|
|
499
531
|
"urlUtils.js"
|
|
500
532
|
],
|
|
533
|
+
"openwebBidAdapter.js": [
|
|
534
|
+
"riseUtils.js"
|
|
535
|
+
],
|
|
501
536
|
"openxBidAdapter.js": [
|
|
502
537
|
"chunk-core.js",
|
|
503
538
|
"ortbConverter.js"
|
|
@@ -550,8 +585,8 @@
|
|
|
550
585
|
"prebidServerBidAdapter.js": [
|
|
551
586
|
"chunk-core.js",
|
|
552
587
|
"ortbConverter.js",
|
|
553
|
-
"
|
|
554
|
-
"
|
|
588
|
+
"currencyUtils.js",
|
|
589
|
+
"pbsExtensions.js"
|
|
555
590
|
],
|
|
556
591
|
"priceFloors.js": [
|
|
557
592
|
"chunk-core.js",
|
|
@@ -568,6 +603,9 @@
|
|
|
568
603
|
"pubCircleBidAdapter.js": [
|
|
569
604
|
"teqblazeUtils.js"
|
|
570
605
|
],
|
|
606
|
+
"publirBidAdapter.js": [
|
|
607
|
+
"riseUtils.js"
|
|
608
|
+
],
|
|
571
609
|
"pubmaticAnalyticsAdapter.js": [
|
|
572
610
|
"analyticsAdapter.js",
|
|
573
611
|
"gptUtils.js"
|
|
@@ -583,7 +621,8 @@
|
|
|
583
621
|
],
|
|
584
622
|
"pubxaiAnalyticsAdapter.js": [
|
|
585
623
|
"analyticsAdapter.js",
|
|
586
|
-
"gptUtils.js"
|
|
624
|
+
"gptUtils.js",
|
|
625
|
+
"userAgentUtils.js"
|
|
587
626
|
],
|
|
588
627
|
"pubxaiRtdProvider.js": [
|
|
589
628
|
"chunk-core.js",
|
|
@@ -630,8 +669,11 @@
|
|
|
630
669
|
"keywords.js"
|
|
631
670
|
],
|
|
632
671
|
"ringieraxelspringerBidAdapter.js": [
|
|
633
|
-
"
|
|
634
|
-
"
|
|
672
|
+
"sizeUtils.js",
|
|
673
|
+
"keywords.js"
|
|
674
|
+
],
|
|
675
|
+
"riseBidAdapter.js": [
|
|
676
|
+
"riseUtils.js"
|
|
635
677
|
],
|
|
636
678
|
"rivrAnalyticsAdapter.js": [
|
|
637
679
|
"analyticsAdapter.js"
|
|
@@ -676,6 +718,9 @@
|
|
|
676
718
|
"analyticsAdapter.js",
|
|
677
719
|
"urlUtils.js"
|
|
678
720
|
],
|
|
721
|
+
"shinezBidAdapter.js": [
|
|
722
|
+
"riseUtils.js"
|
|
723
|
+
],
|
|
679
724
|
"shinezRtbBidAdapter.js": [
|
|
680
725
|
"chunk.js",
|
|
681
726
|
"vidazooUtils.js"
|
|
@@ -695,6 +740,9 @@
|
|
|
695
740
|
"chunk.js",
|
|
696
741
|
"appnexusUtils.js"
|
|
697
742
|
],
|
|
743
|
+
"smarthubBidAdapter.js": [
|
|
744
|
+
"teqblazeUtils.js"
|
|
745
|
+
],
|
|
698
746
|
"smartyadsAnalyticsAdapter.js": [
|
|
699
747
|
"analyticsAdapter.js"
|
|
700
748
|
],
|
|
@@ -702,6 +750,9 @@
|
|
|
702
750
|
"teqblazeUtils.js",
|
|
703
751
|
"smartyadsUtils.js"
|
|
704
752
|
],
|
|
753
|
+
"smilewantedBidAdapter.js": [
|
|
754
|
+
"schainSerializer.js"
|
|
755
|
+
],
|
|
705
756
|
"snigelBidAdapter.js": [
|
|
706
757
|
"chunk-core.js"
|
|
707
758
|
],
|
|
@@ -717,6 +768,9 @@
|
|
|
717
768
|
"chunk-core.js",
|
|
718
769
|
"ortbConverter.js"
|
|
719
770
|
],
|
|
771
|
+
"stnBidAdapter.js": [
|
|
772
|
+
"riseUtils.js"
|
|
773
|
+
],
|
|
720
774
|
"taboolaBidAdapter.js": [
|
|
721
775
|
"chunk-core.js",
|
|
722
776
|
"ortbConverter.js"
|
|
@@ -725,9 +779,15 @@
|
|
|
725
779
|
"chunk.js",
|
|
726
780
|
"vidazooUtils.js"
|
|
727
781
|
],
|
|
782
|
+
"targetVideoBidAdapter.js": [
|
|
783
|
+
"targetVideoUtils.js"
|
|
784
|
+
],
|
|
728
785
|
"teadsBidAdapter.js": [
|
|
729
786
|
"autoplayDetection.js"
|
|
730
787
|
],
|
|
788
|
+
"telariaBidAdapter.js": [
|
|
789
|
+
"riseUtils.js"
|
|
790
|
+
],
|
|
731
791
|
"terceptAnalyticsAdapter.js": [
|
|
732
792
|
"analyticsAdapter.js"
|
|
733
793
|
],
|
|
@@ -799,6 +859,7 @@
|
|
|
799
859
|
],
|
|
800
860
|
"winrBidAdapter.js": [
|
|
801
861
|
"chunk-core.js",
|
|
862
|
+
"sizeUtils.js",
|
|
802
863
|
"keywords.js",
|
|
803
864
|
"appnexusUtils.js"
|
|
804
865
|
],
|
package/dist/dfpAdServerVideo.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[36050],{96480:(e,t
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[36050],{96480:(e,r,t)=>{var a=t(7873),n=t(25246),i=t(51252),o=t(10201),s=t(16916),c=t(51692),d=t(67314),l=t(43272),u=t(78969),p=t(75023),m=t(16833),b=t(27934),h=t(97779),f=t(91069),y=t(70433);const g={ri:b.EN};function v(e,r,t){return(0,y.A)(r,`${t}.description_url`)||encodeURIComponent(g.ri().page)}function _(e,r,t){const a=e&&e.adserverTargeting||{};let n={};const i=r&&r.adUnit;if(i){let e=h.iS.getAllTargeting(i.code);n=e?e[i.code]:{}}const o=Object.assign({},{hb_uuid:e&&e.videoCacheKey},{hb_cache_id:e&&e.videoCacheKey},n,a);p.emit(u.qY.SET_TARGETING,{[i.code]:o});const s=(0,y.A)(r,"params.cust_params"),c=Object.assign({},o,s);let d=encodeURIComponent((0,f.formatQS)(c));return t&&(d=t+"%26"+d),d}l.$W.getConfig("brandCategoryTranslation.translationFile")&&(0,m.Yn)("registerAdserver").before((function(e){e.call(this,"dfp")})),(0,o.U)("dfp",{buildVideoUrl:function(e){if(!e.params&&!e.url)return void(0,f.logError)("A params object or a url is required to use pbjs.adServers.dfp.buildVideoUrl");const r=e.adUnit,t=e.bid||h.iS.getWinningBids(r.code)[0];let a={};if(e.url&&(a=(0,f.parseUrl)(e.url,{noDecodeWholeURL:!0}),(0,f.isEmpty)(e.params)))return function(e,r,t){const a=v(r,e,"search");a&&(e.search.description_url=a);return e.search.cust_params=_(r,t,e.search.cust_params),(0,f.buildUrl)(e)}(a,t,e);const o={correlator:Date.now(),sz:(0,f.parseSizesInput)((0,y.A)(r,"mediaTypes.video.playerSize")).join("|"),url:encodeURIComponent(location.href)},l=a.search,u=l&&l.sz;u&&(o.sz=u+"|"+o.sz);let p=_(t,e,l&&l.cust_params);const m=Object.assign({},n.Mu,a.search,o,e.params,{cust_params:p}),b=v(t,e,"params");b&&(m.description_url=b);const g=s.mW.getConsentData();if((0,n.ec)(g,m),!m.ppid){const e=(0,c.Q)();null!=e&&(m.ppid=e)}const A=e.adUnit?.mediaTypes?.video;Object.entries({plcmt:()=>A?.plcmt,min_ad_duration:()=>(0,f.isNumber)(A?.minduration)?1e3*A.minduration:null,max_ad_duration:()=>(0,f.isNumber)(A?.maxduration)?1e3*A.maxduration:null,vpos(){const e=A?.startdelay;if((0,f.isNumber)(e))return-2===e?"postroll":-1===e||e>0?"midroll":"preroll"},vconp:()=>Array.isArray(A?.playbackmethod)&&A.playbackmethod.every((e=>7===e))?"2":void 0,vpa(){if(Array.isArray(A?.playbackmethod)){const e=A.playbackmethod.some((e=>3===e)),r=A.playbackmethod.some((e=>[1,2,4,5,6].includes(e)));if(e&&!r)return"click";if(r&&!e)return"auto"}},vpmute(){if(Array.isArray(A?.playbackmethod)){const e=A.playbackmethod.some((e=>[2,6].includes(e))),r=A.playbackmethod.some((e=>[1,3,4,5].includes(e)));if(e&&!r)return"1";if(r&&!e)return"0"}}}).forEach((e=>{let[r,t]=e;if(!m.hasOwnProperty(r)){const e=t();null!=e&&(m[r]=e)}}));const U=d.n.index.getBidRequest(e.bid||{})?.ortb2??d.n.index.getAuction(e.bid||{})?.getFPD()?.global,j=(0,i.eu)(U);return j.length&&(m.ppsj=btoa(JSON.stringify({PublisherProvidedTaxonomySignals:j}))),(0,f.buildUrl)(Object.assign({},n.P8,a,{search:m}))}}),(0,a.E)("dfpAdServerVideo")}},e=>{e.O(0,[60802,33005,47650,51085],(()=>{return r=96480,e(e.s=r);var r}));e.O()}]);
|
package/dist/dfpAdpod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[3105],{77957:(e,
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[3105],{77957:(e,o,t)=>{var _=t(7873),n=t(16833),r=t(91069),d=t(70433),T=t(67314),a=t(25246),i=t(16916),s=t(10201);const l={};(0,s.U)("dfp",{buildAdpodVideoUrl:function(){let{code:e,params:o,callback:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!o||!t)return void(0,r.logError)("A params object and a callback is required to use pbjs.adServers.dfp.buildAdpodVideoUrl");const _={correlator:Date.now(),sz:function(e){let o=T.n.getAdUnits().filter((o=>o.code===e)),t=(0,d.A)(o[0],"mediaTypes.video.playerSize");return(0,r.parseSizesInput)(t).join("|")}(e),url:encodeURIComponent(location.href)};l.getTargeting({codes:[e],callback:function(n,d){if(n)return void t(n,null);let T={[l.TARGETING_KEY_PB_CAT_DUR]:void 0,[l.TARGETING_KEY_CACHE_ID]:void 0},s={};d[e]&&(s=d[e].reduce(((e,o)=>(Object.keys(o)[0]===l.TARGETING_KEY_PB_CAT_DUR?e[l.TARGETING_KEY_PB_CAT_DUR]=void 0!==e[l.TARGETING_KEY_PB_CAT_DUR]?e[l.TARGETING_KEY_PB_CAT_DUR]+","+o[l.TARGETING_KEY_PB_CAT_DUR]:o[l.TARGETING_KEY_PB_CAT_DUR]:Object.keys(o)[0]===l.TARGETING_KEY_CACHE_ID&&(e[l.TARGETING_KEY_CACHE_ID]=o[l.TARGETING_KEY_CACHE_ID]),e)),T));let A=encodeURIComponent((0,r.formatQS)(s));const c=Object.assign({},a.Mu,_,o,{cust_params:A}),E=i.mW.getConsentData();(0,a.ec)(E,c);const u=(0,r.buildUrl)({...a.P8,search:c});t(null,u)}})},getAdpodTargeting:e=>l.getTargeting(e)}),(0,n.bz)("adpod",l),(0,_.E)("dfpAdpod")}},e=>{e.O(0,[60802,47650,51085],(()=>{return o=77957,e(e.s=o);var o}));e.O()}]);
|
package/dist/dfpUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[47650],{25246:(
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[47650],{25246:(t,e,n)=>{n.d(e,{Mu:()=>s,P8:()=>p,ec:()=>o});const s={env:"vp",gdfp_req:1,output:"vast",unviewed_position_start:1},p={protocol:"https",host:"securepubads.g.doubleclick.net",pathname:"/gampad/ads"},o=(t,e)=>{t&&("boolean"==typeof t.gdprApplies&&(e.gdpr=Number(t.gdprApplies)),t.consentString&&(e.gdpr_consent=t.consentString),t.addtlConsent&&(e.addtl_consent=t.addtlConsent))}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[47301],{16855:(e,t,r)=>{var i=r(7873),o=r(91069),n=r(70433),a=r(12938),s=r(57377),d=r(71371),c=r(86656);const p="discovery",l=(0,a.vM)({bidderCode:p});let m={},u={};const g=[d.D4,d.s6],h="__mguid_",b="__pmguid_",f="_ss_pp_utm";let w={};const v={id:"id",bidfloor:0,native:{ver:"1.2",plcmtcnt:1,assets:[{id:1,required:1,img:{type:3,w:300,wmin:300,h:174,hmin:174}},{id:2,required:1,title:{len:75}}],plcmttype:1,privacy:1,eventtrackers:[{event:1,methods:[1,2]}]},ext:{}};function y(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).navigator||{};return e&&e.connection&&e.connection.downlink>=0?e.connection.downlink.toString():void 0}const k=()=>{if(!l.cookiesAreEnabled())return;let e=l.getCookie(b);e||(e=o.generateUUID());try{l.setCookie(b,e,S())}catch(e){}return e};function I(e){let t=e;for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];for(let e of i){if(!t||!t[e])return"";t=t[e]}return t}const x=[{w:300,h:250},{w:300,h:600},{w:728,h:90},{w:970,h:250},{w:320,h:50},{w:160,h:600},{w:320,h:180},{w:320,h:100},{w:336,h:280}];function A(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e=t.params&&t.params.referrer?t.params.referrer:n.A(r,"refererInfo.page"),e}function S(){const e=new Date;return e.setTime(e.getTime()+31536e6),e.toUTCString()}function _(e,t){let r=[];return r=e.map(((e,r)=>{let i={},a=I(e,"mediaTypes");const s=function(e){if(!o.isFn(e.getFloor))return n.A(e,"params.bidfloor",0);try{return e.getFloor({currency:"USD",mediaType:"*",size:"*"}).floor}catch(e){return 0}}(e);let d=""+(r+1);if(a.native&&(i={...v,id:d,bidFloor:s}),a.banner){let t,r=function(e){let t=[],r={};if(o.isArray(e)&&2===e.length&&!o.isArray(e[0]))r.width=parseInt(e[0],10),r.height=parseInt(e[1],10),t.push(r);else if("object"==typeof e)for(let i=0;i<e.length;i++){let o=e[i];r={},r.width=parseInt(o[0],10),r.height=parseInt(o[1],10),t.push(r)}return t}(I(e,"sizes"));for(let e of r)if(t=x.find((t=>e.width===t.w&&e.height===t.h)),t)break;t||(t=r[0]?{h:r[0].height||0,w:r[0].width||0}:{h:0,w:0}),i={id:d,bidfloor:s,banner:{h:t.h,w:t.w,pos:1,format:r},ext:{},tagid:e.params&&e.params.tagid}}try{i.ext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{deepAccess:r}=o,{params:i={},adUnitCode:n,bidId:a}=e;return{bidId:a||"",adUnitCode:n||"",token:i.token||"",siteId:i.siteId||"",zoneId:i.zoneId||"",publisher:i.publisher||"",p_pos:i.position||"",screenSize:o.parseSizesInput([window.screen.width,window.screen.height]),referrer:A(e,t),stack:r(e,"refererInfo.stack",[]),b_pos:r(e,"mediaTypes.banner.pos","",""),ortbUser:r(e,"ortb2.user",{},{}),ortbSite:r(e,"ortb2.site",{},{}),tid:r(e,"ortb2Imp.ext.tid","",""),browsiViewability:r(e,"ortb2Imp.ext.data.browsi.browsiViewability","",""),adserverName:r(e,"ortb2Imp.ext.data.adserver.name","",""),adslot:r(e,"ortb2Imp.ext.data.adserver.adslot","",""),keywords:r(e,"ortb2Imp.ext.data.keywords","",""),gpid:r(e,"ortb2Imp.ext.gpid","",""),pbadslot:r(e,"ortb2Imp.ext.data.pbadslot","","")}}(e,t)}catch(e){}return u[d]={req:e,ret:i},i})),r}function q(e,t){const r=n.A(e[0],"crumbs.pubcid"),i=n.A(e[0],"userId.sharedid.id")||n.A(e[0],"userId.pubcid"),a=e[0].userIdAsEids||e[0].userId;let s=function(){let e=!1;return function(t){let r=new RegExp(["(android|bbd+|meego)",".+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)","|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone","|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap","|windows ce|xda|xiino|android|ipad|playbook|silk"].join(""),"i"),i=new RegExp(["1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)","|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )","|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell","|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)","|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene","|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c","|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom","|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)","|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)","|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]","|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)","|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio","|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms","|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al","|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)","|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|","v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)","|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-","|your|zeto|zte-"].join(""),"i");(r.test(t)||i.test(t.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e}()?1:0,d=e[0].params.test||0,p=I(t,"auctionId"),u=_(e,t);const g=t.timeout||2e3,b=n.A(t,"refererInfo.domain")||document.domain,v=n.A(t,"refererInfo.referer"),x=n.A(t,"refererInfo.page"),A=n.A(t,"refererInfo.ref"),q=t.ortb2,z=n.A(t,"ortb2.user.data")||void 0,j=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;try{const t=e.top.document.querySelector('meta[property="og:title"]');return e.top.document.title||t&&t.content||""}catch(e){const t=document.querySelector('meta[property="og:title"]');return document.title||t&&t.content||""}}(),C=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;try{e=t.top.document.querySelector('meta[name="description"]')||t.top.document.querySelector('meta[property="og:description"]')}catch(t){e=document.querySelector('meta[name="description"]')||document.querySelector('meta[property="og:description"]')}return e&&e.content||""}(),E=function(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;try{e=t.top.document.querySelector('meta[name="keywords"]')}catch(t){e=document.querySelector('meta[name="keywords"]')}return e&&e.content||""}();let T={};try{T={eids:a,firstPartyData:q,ssppid:l.getCookie("_ss_pp_id")||void 0,pmguid:k(),tpData:z,utm:l.getCookie(f),page:{title:j?j.slice(0,100):void 0,desc:C?C.slice(0,300):void 0,keywords:E?E.slice(0,100):void 0,hLen:(0,c.GA)()},device:{nbw:y(),hc:(0,c.iz)(),dm:(0,c.qM)()}}}catch(e){}try{(e=>{if(!l.cookiesAreEnabled())return;const t=o.parseUrl(e).search||{},r={};Object.keys(t).forEach((e=>{/^utm_/.test(e)&&(r[e]=t[e])})),w=JSON.parse(l.getCookie(f)||"{}"),Object.assign(w,r),l.setCookie(f,JSON.stringify(w),S())})(x)}catch(e){}if(u&&u.length){return{id:"pp_hbjs_"+p,test:+d,at:1,bcat:m.bcat,badv:m.adv,cur:["USD"],device:{connectiontype:0,js:1,os:navigator.platform||"",ua:navigator.userAgent,language:/en/.test(navigator.language)?"en":navigator.language},ext:T,user:{buyeruid:l.getCookie(h)||void 0,id:i||r},tmax:g,site:{name:b,domain:b,page:x||v,ref:A,mobile:s,cat:[],publisher:{id:m.publisher}},imp:u}}return null}const z={code:p,supportedMediaTypes:g,isBidRequestValid:function(e){return e.params.token&&(m.token=e.params.token),e.params.publisher&&(m.publisher=e.params.publisher),e.params.tagid&&(m.tagid=e.params.tagid),e.params.bcat&&(m.bcat=Array.isArray(e.params.bcat)?e.params.bcat:[]),e.params.badv&&(m.badv=Array.isArray(e.params.badv)?e.params.badv:[]),!0},buildRequests:function(e,t){if(!m.token)return;let r=q(e,t);const i=JSON.stringify(r);return{method:"POST",url:"https://rtb-jp.mediago.io/api/bid?tn="+m.token,data:i}},interpretResponse:function(e,t){const r=I(e,"body","seatbid",0,"bid"),i=I(e,"body","cur"),o=[];for(let e of r){let t=I(e,"impid");if(u[t]){let r=I(u[t],"req","bidId");const a=I(e,"w")?"banner":"native";let s={requestId:r,cpm:I(e,"price"),creativeId:I(e,"cid"),mediaType:a,currency:i,netRevenue:!0,nurl:I(e,"nurl"),ttl:500,meta:{advertiserDomains:I(e,"adomain")||[]}};if("native"===a){const t=I(e,"adm"),r=JSON.parse(t);var n={};r.assets.forEach((e=>{if(e.title)n.title=e.title.text;else if(e.data)n.data=e.data.value;else if(e.img)if(1===e.img.type)n.icon={url:e.img.url,width:e.img.w,height:e.img.h};else n.image={url:e.img.url,width:e.img.w,height:e.img.h}})),r.link&&r.link.url&&(n.clickUrl=r.link.url),Array.isArray(r.eventtrackers)&&(n.impressionTrackers=[],r.eventtrackers.forEach((e=>{if(1===e.event&&1===e.method)n.impressionTrackers.push(e.url)}))),r.purl&&(n.purl=r.purl),s.native=n}else s.width=I(e,"w"),s.height=I(e,"h"),s.ad=I(e,"adm");o.push(s)}}return o},getUserSyncs:function(e,t,r,i,o){let n=`dm=${encodeURIComponent(location.origin||`https://${location.host}`)}`;if(r&&r.consentString&&("boolean"==typeof r.gdprApplies?n+=`&gdpr=${Number(r.gdprApplies)}&gdpr_consent=${r.consentString}`:n+=`&gdpr=0&gdpr_consent=${r.consentString}`),i&&i.consentString&&(n+=`&ccpa_consent=${i.consentString}`),e.iframeEnabled)return window.addEventListener("message",(function e(t){if(!t.data||"https://asset.popin.cc"!=t.origin)return;this.removeEventListener("message",e),t.stopImmediatePropagation();const r=t.data;!r.optout&&r.mguid&&l.setCookie(h,r.mguid,S())}),!0),[{type:"iframe",url:`https://asset.popin.cc/js/cookieSync.html?${n}`}]},onTimeout:function(e){o.logError("DiscoveryDSP adapter timed out for the auction.")},onBidWon:function(e){e.nurl&&o.triggerPixel(e.nurl)}};(0,s.a$)(z),(0,i.E)("discoveryBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return t=16855,e(e.s=t);var t}));e.O()}]);
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[47301],{16855:(e,t,r)=>{var i=r(7873),a=r(91069),o=r(70433),s=r(12938),n=r(57377),d=r(71371),p=r(86656),c=r(1530),u=r(94855),l=r(53812),m=r(67660);const g="discovery",b=(0,s.vM)({bidderCode:g});let f={},h={};const v=[d.D4,d.s6],y="__mguid_",k="__pmguid_",I="_ss_pp_utm";let w={};const _={id:"id",bidfloor:0,native:{ver:"1.2",plcmtcnt:1,assets:[{id:1,required:1,img:{type:3,w:300,wmin:300,h:174,hmin:174}},{id:2,required:1,title:{len:75}}],plcmttype:1,privacy:1,eventtrackers:[{event:1,methods:[1,2]}]},ext:{}},A=()=>{if(!b.cookiesAreEnabled())return;let e=b.getCookie(k);e||(e=a.generateUUID());try{b.setCookie(k,e,U())}catch(e){}return e};function S(e){let t=e;for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];for(let e of i){if(!t||!t[e])return"";t=t[e]}return t}const C=m.w;function U(){const e=new Date;return e.setTime(e.getTime()+31536e6),e.toUTCString()}function x(e,t){let r=[];return r=e.map(((e,r)=>{let i={},o=S(e,"mediaTypes");const s=(0,l.M)(e);let n=""+(r+1);if(o.native&&(i={..._,id:n,bidFloor:s}),o.banner){let t,r=(0,m.p)(S(e,"sizes"));for(let e of r)if(t=C.find((t=>e.width===t.w&&e.height===t.h)),t)break;if(!t){const{height:e=0,width:i=0}=r[0]||{};t={h:e,w:i}}i={id:n,bidfloor:s,banner:{h:t.h,w:t.w,pos:1,format:r},ext:{},tagid:e.params&&e.params.tagid}}try{i.ext=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{deepAccess:r}=a,{params:i={},adUnitCode:o,bidId:s}=e;return{bidId:s||"",adUnitCode:o||"",token:i.token||"",siteId:i.siteId||"",zoneId:i.zoneId||"",publisher:i.publisher||"",p_pos:i.position||"",screenSize:(0,u.Q)(),referrer:(0,c.G2)(e,t),stack:r(e,"refererInfo.stack",[]),b_pos:r(e,"mediaTypes.banner.pos","",""),ortbUser:r(e,"ortb2.user",{},{}),ortbSite:r(e,"ortb2.site",{},{}),tid:r(e,"ortb2Imp.ext.tid","",""),browsiViewability:r(e,"ortb2Imp.ext.data.browsi.browsiViewability","",""),adserverName:r(e,"ortb2Imp.ext.data.adserver.name","",""),adslot:r(e,"ortb2Imp.ext.data.adserver.adslot","",""),keywords:r(e,"ortb2Imp.ext.data.keywords","",""),gpid:r(e,"ortb2Imp.ext.gpid","",""),pbadslot:r(e,"ortb2Imp.ext.data.pbadslot","","")}}(e,t)}catch(e){}return h[n]={req:e,ret:i},i})),r}function D(e,t){const r=o.A(e[0],"userId.sharedid.id")||o.A(e[0],"userId.pubcid")||o.A(e[0],"crumbs.pubcid"),i=e[0].userIdAsEids||e[0].userId;let s=(0,u.P)()?1:0,n=e[0].params.test||0,d=S(t,"auctionId"),l=x(e,t);const m=t.timeout||2e3,g=o.A(t,"refererInfo.domain")||document.domain,h=o.A(t,"refererInfo.referer"),v=o.A(t,"refererInfo.page"),k=o.A(t,"refererInfo.ref"),_=t.ortb2,C=o.A(t,"ortb2.user.data")||void 0,D=(0,c.wS)(),E=(0,c.Wt)(),T=(0,c.iI)();let O={};try{O={eids:i,firstPartyData:_,ssppid:b.getCookie("_ss_pp_id")||void 0,pmguid:A(),ssftUid:b.getDataFromLocalStorage("fluct_ppUUIDv4")||void 0,ssimUid:b.getDataFromLocalStorage("__im_ppid")||void 0,sspbid:b.getCookie("pub_pp_tag")||void 0,tpData:C,utm:b.getCookie(I),page:{title:D?D.slice(0,150):void 0,desc:E?E.slice(0,300):void 0,keywords:T?T.slice(0,100):void 0,hLen:(0,p.GA)()},device:{nbw:(0,c.Bd)(),hc:(0,p.iz)(),dm:(0,p.qM)()}}}catch(e){}try{(e=>{if(!b.cookiesAreEnabled())return;const t=a.parseUrl(e).search||{},r={};Object.keys(t).forEach((e=>{/^utm_/.test(e)&&(r[e]=t[e])})),w=JSON.parse(b.getCookie(I)||"{}"),Object.assign(w,r),b.setCookie(I,JSON.stringify(w),U())})(v)}catch(e){}if(l&&l.length){return{id:"pp_hbjs_"+d,test:+n,at:1,bcat:f.bcat,badv:f.adv,cur:["USD"],device:{connectiontype:0,js:1,os:navigator.platform||"",ua:navigator.userAgent,language:/en/.test(navigator.language)?"en":navigator.language},ext:O,user:{buyeruid:b.getCookie(y)||void 0,id:r},tmax:m,site:{name:g,domain:g,page:v||h,ref:k,mobile:s,cat:[],publisher:{id:f.publisher}},imp:l}}return null}const E={code:g,supportedMediaTypes:v,isBidRequestValid:function(e){return e.params.token&&(f.token=e.params.token),e.params.publisher&&(f.publisher=e.params.publisher),e.params.tagid&&(f.tagid=e.params.tagid),e.params.bcat&&(f.bcat=Array.isArray(e.params.bcat)?e.params.bcat:[]),e.params.badv&&(f.badv=Array.isArray(e.params.badv)?e.params.badv:[]),!0},buildRequests:function(e,t){const r=f.token;if(!r)return;let i=D(e,t);return{method:"POST",url:`https://rtb-jp.mediago.io/api/bid?tn=${r}`,data:JSON.stringify(i)}},interpretResponse:function(e,t){const r=S(e,"body","seatbid",0,"bid"),i=S(e,"body","cur"),a=[];for(let e of r){let t=S(e,"impid");if(h[t]){let r=S(h[t],"req","bidId");const s=S(e,"w")?"banner":"native";let n={requestId:r,cpm:S(e,"price"),creativeId:S(e,"cid"),mediaType:s,currency:i,netRevenue:!0,nurl:S(e,"nurl"),ttl:500,meta:{advertiserDomains:S(e,"adomain")||[]}};if("native"===s){const t=S(e,"adm"),r=JSON.parse(t);var o={};r.assets.forEach((e=>{if(e.title)o.title=e.title.text;else if(e.data)o.data=e.data.value;else if(e.img)if(1===e.img.type)o.icon={url:e.img.url,width:e.img.w,height:e.img.h};else o.image={url:e.img.url,width:e.img.w,height:e.img.h}})),r.link&&r.link.url&&(o.clickUrl=r.link.url),Array.isArray(r.eventtrackers)&&(o.impressionTrackers=[],r.eventtrackers.forEach((e=>{if(1===e.event&&1===e.method)o.impressionTrackers.push(e.url)}))),r.purl&&(o.purl=r.purl),n.native=o}else n.width=S(e,"w"),n.height=S(e,"h"),n.ad=S(e,"adm");a.push(n)}}return a},getUserSyncs:function(e,t,r,i,a){let o=`dm=${encodeURIComponent(location.origin||`https://${location.host}`)}`;if(r&&r.consentString&&("boolean"==typeof r.gdprApplies?o+=`&gdpr=${Number(r.gdprApplies)}&gdpr_consent=${r.consentString}`:o+=`&gdpr=0&gdpr_consent=${r.consentString}`),i&&i.consentString&&(o+=`&ccpa_consent=${i.consentString}`),e.iframeEnabled)return window.addEventListener("message",(function e(t){if(!t.data||"https://asset.popin.cc"!=t.origin)return;this.removeEventListener("message",e),t.stopImmediatePropagation();const r=t.data;!r.optout&&r.mguid&&b.setCookie(y,r.mguid,U())}),!0),[{type:"iframe",url:`https://asset.popin.cc/js/cookieSync.html?${o}`}]},onTimeout:function(e){a.logError("DiscoveryDSP adapter timed out for the auction.")},onBidWon:function(e){e.nurl&&a.triggerPixel(e.nurl)}};(0,n.a$)(E),(0,i.E)("discoveryBidAdapter")}},e=>{e.O(0,[60802,18139,41225,75698,51085],(()=>{return t=16855,e(e.s=t);var t}));e.O()}]);
|
package/dist/dspxBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[63214],{85248:(e,r
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[63214],{85248:(e,t,r)=>{var n=r(7873),i=r(70433),d=r(91069),o=r(57377),s=r(71371),a=r(95789),p=r(15901);const c=["mimes","minduration","maxduration","protocols","w","h","startdelay","placement","plcmt","linearity","skip","skipmin","skipafter","sequence","battr","maxextended","minbitrate","maxbitrate","boxingallowed","playbackmethod","playbackend","delivery","pos","companionad","api","companiontype","ext"],u={code:"dspx",gvlid:602,aliases:[],supportedMediaTypes:[s.D4,s.G_],isBidRequestValid:function(e){return!!e.params.placement},buildRequests:function(e,t){let r={};return e.map((e=>{const n=e.params,o=Math.floor(99999999999*Math.random()),a=t.refererInfo.page,u=e.bidId,l=e.adUnitCode||!1,g=e.auctionId||!1,h=n.devMode||!1;let b=h?"https://dcbuyer.dspx.tv/request/":"https://buyer.dspx.tv/request/",v=n.placement;h&&n.dev&&(b=n.dev.endpoint||b,v=n.dev.placement||v,void 0!==n.dev.pfilter&&(n.pfilter=n.dev.pfilter));let x=function(e){let t={};e.mediaTypes?Object.keys(e.mediaTypes).forEach((r=>{r===s.D4&&(t[r]=m(e)),r===s.G_&&(t[r]=function(e){return y((0,i.A)(e,"mediaTypes.video.playerSize")||e.sizes)}(e))})):t[s.D4]=m(e);return t}(e);var A;let I=x["banner"===(A=e).mediaType||(0,i.A)(A,"mediaTypes.banner")||!function(e){return"video"===e.mediaType||!!(0,i.A)(e,"mediaTypes.video")}(A)?s.D4:s.G_];if(r={_f:"auto",alternative:"prebid_js",inventory_item_id:v,srw:I?I[0].width:0,srh:I?I[0].height:0,idt:100,rnd:o,ref:a,bid_id:u,pbver:"9.6.0"},r.pfilter={},void 0!==n.pfilter&&(r.pfilter=n.pfilter),t&&t.gdprConsent&&(r.pfilter.gdpr_consent||(r.pfilter.gdpr_consent=t.gdprConsent.consentString,r.pfilter.gdpr=t.gdprConsent.gdprApplies)),void 0!==n.bcat&&(r.bcat=(0,i.A)(t.ortb2Imp,"bcat")||n.bcat),void 0!==n.dvt&&(r.dvt=n.dvt),h&&(r.prebidDevMode=1),!r.pfilter.floorprice){let t=function(e){if(!(0,d.isFn)(e.getFloor))return(0,i.A)(e,"params.bidfloor",0);try{return e.getFloor({currency:"EUR",mediaType:"*",size:"*"}).floor}catch(e){return 0}}(e);t>0&&(r.pfilter.floorprice=t)}if(g&&(r.auctionId=g),l&&(r.pbcode=l),r.media_types=function(e){let t={};return Object.keys(e).forEach((r=>{t[r]=e[r].map((e=>e.width+"x"+e.height)).join(",")})),t}(x),void 0!==x[s.G_]){r.vctx=function(e){return(0,i.A)(e,"mediaTypes.video.context")||"unknown"}(e),void 0!==n.vastFormat&&(r.vf=n.vastFormat),r.vpl={};let t=(0,i.A)(e,"mediaTypes.video");Object.keys(t).filter((e=>(0,p.mK)(c,e))).forEach((e=>r.vpl[e]=t[e]))}let w=(0,i.A)(t,"ortb2.site.content");if(w){let e=function(e){if(!e)return"";let t=["id","title","series","season","artist","genre","isrc","url","keywords"],r=["episode","context","livestream"],n=[];return["cat"].forEach((t=>{let r=(0,i.A)(e,t);r&&Array.isArray(r)&&n.push(t+":"+r.join("|"))})),r.forEach((t=>{let r=(0,i.A)(e,t);r&&"number"==typeof r&&n.push(t+":"+r)})),t.forEach((t=>{let r=(0,i.A)(e,t);r&&"string"==typeof r&&n.push(t+":"+encodeURIComponent(r))})),n.join(",")}(w);e&&(r.pfilter.iab_content=e)}const E=function(e){const t=(0,i.A)(e,"ortb2.user.data")||[];for(const e of t)if(e.segment&&(0,d.isArray)(e.segment)&&e.segment.length>0){const t=e.segment.filter((e=>e.id&&!(0,d.isEmptyStr)(e.id)&&isFinite(e.id))).map((e=>Number(e.id)));if(t.length>0)return{segtax:(0,i.A)(e,"ext.segtax"),segclass:(0,i.A)(e,"ext.segclass"),segments:t.join(",")}}return}(t);return E&&function(e,t){for(const r in t)void 0!==t[r]&&(e[r]=t[r])}(r,{segtx:E.segtax,segcl:E.segclass,segs:E.segments}),e.schain&&(r.schain=e.schain),function(e,t){if(e.hasOwnProperty("userId")){let r={did_netid:"userId.netId",did_id5:"userId.id5id.uid",did_id5_linktype:"userId.id5id.ext.linkType",did_uid2:"userId.uid2",did_sharedid:"userId.sharedid",did_pubcid:"userId.pubcid",did_uqid:"userId.utiq",did_cruid:"userId.criteoid",did_euid:"userId.euid",did_tdid:"userId.tdid",did_ppuid:function(){let t="userId.pubProvidedId",r=(0,i.A)(e,t);if((0,d.isArray)(r))for(const e of r)if(e.uids&&e.uids.length>0)for(let t=0;t<e.uids.length;t++)if("id"in e.uids[t]&&"ppuid"===(0,i.A)(e.uids[t],"ext.stype"))return(e.uids[t].atype??"")+":"+e.source+":"+e.uids[t].id},did_cpubcid:"crumbs.pubcid"};for(let n in r){let o=r[n];if("function"==typeof o){let e=o(n);e&&(t[n]=e);continue}let s=(0,i.A)(e,o);"string"==typeof s||"number"==typeof s?t[n]=s:"object"==typeof s&&("string"==typeof(0,i.A)(e,o+".id")?t[n]=(0,i.A)(e,o+".id"):Object.keys(s).length>0&&((0,d.logError)(`DSPx: WARNING: fillUserIds had to use first key in user object to get value for bid.userId key: ${o}.`),t[n]=s[Object.keys(s)[0]]))}}}(e,r),{method:"GET",url:b,data:f(r)}}))},interpretResponse:function(e,t){(0,d.logMessage)("DSPx: serverResponse",e),(0,d.logMessage)("DSPx: bidRequest",t);const r=[],n=e.body,o=n.crid||0,s=n.cpm/1e6||0;if(0!==s&&0!==o){const e=n.dealid||"",p=n.currency||"EUR",c=void 0===n.netRevenue||n.netRevenue,u={requestId:n.bid_id,cpm:s,width:n.width,height:n.height,creativeId:o,dealId:e,currency:p,netRevenue:c,type:n.type,ttl:60,meta:{advertiserDomains:n.adomain||[]}};n.vastUrl&&(u.vastUrl=n.vastUrl,u.mediaType="video"),n.vastXml&&(u.vastXml=n.vastXml,u.mediaType="video"),n.renderer&&(u.renderer=function(e,t){(0,d.logMessage)("DSPx: newRenderer",e,t);const r=a.A4.install({id:t.renderer.id||t.bid_id,url:e.params&&e.params.rendererUrl||t.renderer.url,config:t.renderer.options||(0,i.A)(e,"renderer.options"),loaded:!1});try{r.setRender(h)}catch(e){(0,d.logWarn)("Prebid Error calling setRender on renderer",e)}return r}(t,n)),n.videoCacheKey&&(u.videoCacheKey=n.videoCacheKey),n.adTag&&(u.ad=n.adTag),n.bid_appendix&&Object.keys(n.bid_appendix).forEach((e=>{u[e]=n.bid_appendix[e]})),r.push(u)}return r},getUserSyncs:function(e,t,r,n){if(!t||0===t.length)return[];const i=[];let d="";return r&&(d="gdprApplies"in r&&"boolean"==typeof r.gdprApplies?`gdpr=${Number(r.gdprApplies)}&gdpr_consent=${r.consentString}`:`gdpr_consent=${r.consentString}`),t.length>0&&t[0].body.userSync&&(e.iframeEnabled&&t[0].body.userSync.iframeUrl.forEach((e=>i.push({type:"iframe",url:l(e,d)}))),e.pixelEnabled&&t[0].body.userSync.imageUrl.forEach((e=>i.push({type:"image",url:l(e,d)})))),i}};function l(e,t){return t?e+(-1!==e.indexOf("?")?"&":"?")+t:e}function f(e,t){let r,n=[];for(r in e)if(e.hasOwnProperty(r)){let i=t?t+"["+r+"]":r,d=e[r];n.push(null!==d&&"object"==typeof d?f(d,i):encodeURIComponent(i)+"="+encodeURIComponent(d))}return n.filter((e=>e)).join("&")}function m(e){return y((0,i.A)(e,"mediaTypes.banner.sizes")||e.sizes)}function g(e){let t={};return t.width=parseInt(e[0],10),t.height=parseInt(e[1],10),t}function y(e){return Array.isArray(e[0])?e.map((e=>g(e))):[g(e)]}function h(e){(0,d.logMessage)("DSPx: outstreamRender bid:",e);const t=function(e){const t=window.document.createDocumentFragment();let r=window.document.createElement("div");r.innerHTML=(0,i.A)(e,"renderer.config.code",""),t.appendChild(r);for(var n=r.getElementsByTagName("script"),d=[],o=0;o<n.length;o++)d.push(n[o]);for(var s=0;s<d.length;s++){for(var a=d[s],p=document.createElement("script"),c=0;c<a.attributes.length;c++){var u=a.attributes[c];p.setAttribute(u.name,u.value)}p.appendChild(document.createTextNode(a.innerHTML)),a.parentNode.replaceChild(p,a)}return t}(e);try{const r=(0,d.getBidIdParameter)("iframe",e.renderer.config);if(r&&"IFRAME"===window.document.getElementById(r).nodeName){const n=window.document.getElementById(r);return(n.contentDocument||n.contentWindow&&n.contentWindow.document).body.appendChild(t),void("function"==typeof window.dspxRender?window.dspxRender(e):(0,d.logError)("[dspx][renderer] Error: dspxRender function is not found"))}const n=(0,d.getBidIdParameter)("slot",e.renderer.config)||e.adUnitCode;n&&window.document.getElementById(n)?(window.document.getElementById(n).appendChild(t),"function"==typeof window.dspxRender?window.dspxRender(e):(0,d.logError)("[dspx][renderer] Error: dspxRender function is not found")):n&&(0,d.logError)("[dspx][renderer] Error: slot not found")}catch(e){(0,d.logError)("[dspx][renderer] Error:"+e.message)}}(0,o.a$)(u),(0,n.E)("dspxBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return t=85248,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[42069],{30579:(e,r,t)=>{var n=t(7873),s=t(91069),i=t(63172),a=t(70433),o=t(57377),d=t(71371),l=t(95789),u=t(89766);const p="https://cdn.dxkulture.com/players/dxOutstreamPlayer.js",c=(0,u.A)({context:{netRevenue:!0,ttl:300},imp(e,r,t){const n=e(r,t);return n.bidfloor||(n.bidfloor=r.params.bidfloor||0,n.bidfloorcur=r.params.currency||"USD"),n},request(e,r,t,n){const a=e(r,t,n);return(0,s.mergeDeep)(a,{ext:{hb:1,prebidver:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[42069],{30579:(e,r,t)=>{var n=t(7873),s=t(91069),i=t(63172),a=t(70433),o=t(57377),d=t(71371),l=t(95789),u=t(89766);const p="https://cdn.dxkulture.com/players/dxOutstreamPlayer.js",c=(0,u.A)({context:{netRevenue:!0,ttl:300},imp(e,r,t){const n=e(r,t);return n.bidfloor||(n.bidfloor=r.params.bidfloor||0,n.bidfloorcur=r.params.currency||"USD"),n},request(e,r,t,n){const a=e(r,t,n);return(0,s.mergeDeep)(a,{ext:{hb:1,prebidver:"9.6.0",adapterver:"1.0.0"}}),t.gdprConsent&&((0,i.J)(a,"user.ext.consent",t.gdprConsent.consentString),(0,i.J)(a,"regs.ext.gdpr",t.gdprConsent.gdprApplies?1:0)),t.uspConsent&&(0,i.J)(a,"regs.ext.us_privacy",t.uspConsent),a},bidResponse(e,r,t){let n;const{bidRequest:i}=t;n=r.adm?.trim().startsWith("<VAST")?d.G_:d.D4,t.mediaType=n,t.currency="USD",n===d.G_&&(t.vastXml=r.adm);const a=e(r,t);return n===d.G_&&"outstream"===i.mediaTypes.video.context&&(a.renderer=function(e){const r={width:e.width,height:e.height,vastTimeout:5e3,maxAllowedVastTagRedirects:3,allowVpaid:!1,autoPlay:!0,preload:!0,mute:!1},t=l.A4.install({id:e.adId,url:p,config:r,loaded:!1,targetId:e.adUnitCode,adUnitCode:e.adUnitCode});try{t.setRender((function(e){e.renderer.push((()=>{const{id:r,config:t}=e.renderer;window.dxOutstreamPlayer(e,r,t)}))}))}catch(e){(0,s.logWarn)("dxkulture: Prebid Error calling setRender on renderer",e)}return t}(a)),a}}),m={code:"dxkulture",VERSION:"1.0.0",supportedMediaTypes:[d.D4,d.G_],ENDPOINT:"https://ads.dxkulture.com/pbjs",isBidRequestValid:function(e){return function(e){if(!e.params)return!1;if(e.params.e2etest)return!0;if(!e.params.publisherId)return(0,s.logError)("dxkulture: Validation failed: publisherId not declared"),!1;if(!e.params.placementId)return(0,s.logError)("dxkulture: Validation failed: placementId not declared"),!1;if(!y(e)&&!f(e))return!1;return!0}(e)&&function(e){if(!f(e))return!0;const r=(0,a.A)(e,"mediaTypes.banner");if(!Array.isArray(r.sizes))return!1;return!0}(e)&&function(e){if(!y(e))return!0;const r=(0,a.A)(e,"mediaTypes.video",{}),t=(0,a.A)(e,"params.video",{}),n=(0,a.A)(e,"params",{});if(n&&n.e2etest)return!0;const i={...r,...t};if(!Array.isArray(i.mimes)||0===i.mimes.length)return(0,s.logError)("dxkulture: Validation failed: mimes are invalid"),!1;if(!Array.isArray(i.protocols)||0===i.protocols.length)return(0,s.logError)("dxkulture: Validation failed: protocols are invalid"),!1;if(!i.context)return(0,s.logError)("dxkulture: Validation failed: context id not declared"),!1;if("instream"!==i.context)return(0,s.logError)("dxkulture: Validation failed: only context instream is supported "),!1;if(void 0===i.playerSize||!Array.isArray(i.playerSize)||!Array.isArray(i.playerSize[0]))return(0,s.logError)("dxkulture: Validation failed: player size not declared or is not in format [[w,h]]"),!1;return!0}(e)},buildRequests:function(e,r){let t=d.D4;y(e)&&(t=d.G_);const n=c.toORTB({bidRequests:e,bidderRequest:r,context:{contextMediaType:t}});let i=e[0].params.publisherId,a=e[0].params.placementId;e[0].params.e2etest&&((0,s.logMessage)("dxkulture: E2E test mode enabled"),i="e2etest");let o=m.ENDPOINT+"?pid="+i;return a&&(o+="&placementId="+a),{method:"POST",url:o,data:n}},interpretResponse:function(e,r){return c.fromORTB({response:e.body,request:r.data}).bids},getUserSyncs:function(e,r,t,n){(0,s.logInfo)("dxkulture.getUserSyncs","syncOptions",e,"serverResponses",r);let i=[];return e.iframeEnabled||e.pixelEnabled?(r.forEach((r=>{const s=(0,a.A)(r,"body.ext.usersync");if(s){let r=[];Object.keys(s).forEach((e=>{const t=s[e];t.syncs&&t.syncs.length&&(r=r.concat(t.syncs))})),r.forEach((e=>{let r=[],s=e.url;"iframe"===e.type&&(t&&(r.push("gdpr="+(t.gdprApplies?1:0)),r.push("gdpr_consent="+encodeURIComponent(t.consentString||""))),n&&r.push("us_privacy="+encodeURIComponent(n)),s=`${e.url}${r.length>0?"?"+r.join("&"):""}`),i.push({type:"iframe"===e.type?"iframe":"image",url:s})})),e.iframeEnabled?i=i.filter((e=>"iframe"==e.type)):e.pixelEnabled&&(i=i.filter((e=>"image"==e.type)))}})),(0,s.logInfo)("dxkulture.getUserSyncs result=%o",i),i):i}};function f(e){return!!(0,a.A)(e,"mediaTypes.banner")}function y(e){return!!(0,a.A)(e,"mediaTypes.video")}(0,o.a$)(m),(0,n.E)("dxkultureBidAdapter")}},e=>{e.O(0,[60802,58498,51085],(()=>{return r=30579,e(e.s=r);var r}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[41976],{21302:(e,t,a)=>{var n=a(7873),r=a(91069),s=a(68044),i=a(88910),
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[41976],{21302:(e,t,a)=>{var n=a(7873),r=a(91069),s=a(68044),i=a(88910),o=a(78969),l=a(11445),c=a(45569),d=a(12938);const g="eightPod",u=`${g}AnalyticProvider`,p="https://demo.8pod.com/tracker/track",v=(0,d.vM)({moduleType:c.Tn,moduleName:g}),{BID_WON:y}=o.qY;let m=[],E={},I=Object.assign((0,i.Ay)({url:p,analyticsType:"endpoint"}),{track(e){let{eventType:t,args:a}=e;switch(t){case y:if("eightPod"===a.bidder){E[a.adUnitCode]=function(e){const t=e?.params?.[0];return{bidId:e.seatBidId,variantId:e.creativeId||"",campaignId:e.cid||"",publisherId:t.publisherId,placementId:t.placementId}}(a),I.setupPage(a);break}}},setupPage(){m=this.getEventFromLocalStorage()},eventSubscribe(){window.addEventListener("message",(async e=>{const t=e.data,a=e.source?.frameElement,n=a?.parentElement,s=n?.id;!function(e,t){if(!e.detail)return;const a={context:I.getContext()[t],eventType:e.detail.type,eventClass:"adunit",timestamp:(new Date).getTime(),eventName:e.detail.name,payload:e.detail.payload};(0,r.logMessage)(a),n=a,m.push(n),v.setDataInLocalStorage("EIGHT_POD_EVENTS",JSON.stringify(m),null);var n}(t,s)})),setInterval(b,1e4)},resetQueue(){m=[]},getContext:()=>E,resetContext(){E={}},getEventFromLocalStorage:function(){const e=v.localStorageIsEnabled()?v.getDataFromLocalStorage("EIGHT_POD_EVENTS"):null;return e?JSON.parse(e):[]}});function b(){if(I.eventsStorage=m,m.length)try{e=m,t={success:()=>{S(),I.resetQueue()},error:e=>{(0,r.logError)(u,"Cant send events",e)}},(0,s.RD)(p,t,JSON.stringify(e),{keepalive:!0})}catch(e){(0,r.logError)(u,"Cant send events",e)}var e,t}const S=()=>{v.setDataInLocalStorage("EIGHT_POD_EVENTS",JSON.stringify([]),null)};I.originEnableAnalytics=I.enableAnalytics,I.eventsStorage=[],I.enableAnalytics=function(e){I.originEnableAnalytics(e),(0,r.logInfo)(u,"init",e),I.eventSubscribe()},l.Ay.registerAnalyticsAdapter({adapter:I,code:g});(0,n.E)("eightPodAnalyticsAdapter")}},e=>{e.O(0,[2630,60802,51085],(()=>{return t=21302,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[33183],{33367:(e,n
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[33183],{33367:(e,t,n)=>{var a=n(7873),r=n(89766),c=n(57377),i=n(71371),s=n(91069),d=n(70433);const o="https://demo.8pod.com/bidder/rtb/eightpod_exchange/bid",p={code:"eightPod",supportedMediaTypes:[i.D4],isBidRequestValid:function(e){return function(e){return!!e?.params?.placementId}(e)},buildRequests:function(e,t){let n=e.filter((e=>f(e)));return n.length?function(e,t,n){const a=e.map((e=>{const a=u.toORTB({bidRequests:[e],bidderRequest:t,context:{mediaType:n}});a.adSlotPositionOnScreen="ABOVE_THE_FOLD",a.at=1;const r=d.A(e,"userId.unifiedId.id")||d.A(e,"userId.id5id.uid")||d.A(e,"userId.idl_env"),c=(i=e,i?.params?i.params:void 0);var i;a.device={...a.device,devicetype:4,geo:{country:c.country||"GRB"},language:c.language||a.device.language},a.site={...a.site,keywords:m(window),publisher:{id:c.publisherId}},a.imp=[{...a.imp?.[0],secure:1,pmp:c.dealId?{...a.pmp,deals:[{id:c.dealId}],private_auction:1}:a.pmp}],a.adSlotPlacementId=c.placementId,r&&(a.user={id:r});return{method:"POST",url:o&&c.trace?o+"?trace=true":o,options:{withCredentials:!1},data:a}}));return a}(n,t,i.D4):[]},interpretResponse:function(e,t){const n=e.body.seatbid[0].bid[0].impid,a=u.fromORTB({request:t.data,response:e.body}),r=a[0].ad,c=`<script src="https://cdn.doubleverify.com/dvtp_src.js?ctx=818052&cmp=APAC_Cert_20&sid=se_a551&plc=240411845&adsrv=0&btreg=ad-unit-container&auevent=${n}&btadsrv=&crt=01&tagtype=&dvtagver=6.1.src" type="text/javascript"><\/script>\n <script type="text/javascript">\n (function() {\n /** CONFIGURATION START **/\n var _sf_async_config = window._sf_async_config = (window._sf_async_config || {});\n _sf_async_config.uid = 67171;\n _sf_async_config.domain = 'demo.8pod.com';\n _sf_async_config.flickerControl = false;\n _sf_async_config.useCanonical = true;\n _sf_async_config.useCanonicalDomain = true;\n _sf_async_config.sections = '';\n _sf_async_config.authors = '';\n /** CONFIGURATION END **/\n function loadChartbeat() {\n var e = document.createElement('script');\n var n = document.getElementsByTagName('script')[0];\n e.type = 'text/javascript';\n e.async = true;\n e.src = '//static.chartbeat.com/js/chartbeat.js';\n n.parentNode.insertBefore(e, n);\n }\n loadChartbeat();\n })();\n <\/script>\n <script async src="//static.chartbeat.com/js/chartbeat_mab.js"><\/script>\n\n <script type="text/javascript">\n var utag_data = {\n }\n <\/script>\n <script type="text/javascript">\n (function(a,b,c,d){\n a='https://tags.tiqcdn.com/utag/sales-richard-coghlan/8pod/prod/utag.js';\n b=document;c='script';d=b.createElement(c);d.src=a;d.type='text/java'+c;d.async=true;\n a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a);\n })();\n <\/script>`;return a[0].ad=r.replace("</head>",c+"</head>"),a},isBannerBid:f,isVideoBid:function(e){return d.A(e,"mediaTypes.video")},onBidWon:function(e){e.burl&&s.triggerPixel(e.burl)}};(0,c.a$)(p);const u=(0,r.A)({context:{netRevenue:!0,ttl:300},request:(e,t,n,a)=>e(t,n,a),response:(e,t,n,a)=>e(t,n,a).bids,imp:(e,t,n)=>e(t,n),bidResponse:function(e,t,n){t.nurl=l(t.nurl,t.price);const a=e(t,n);return a.height=n?.imp?.banner?.format?.[0].h,a.width=n?.imp?.banner?.format?.[0].w,a.cid=t.cid,a.burl=l(t.burl,a.originalCpm||a.cpm),a}});function l(e,t){return e.replace(/\${AUCTION_PRICE}/,t)}function m(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;try{e=t.top.document.querySelector('meta[name="keywords"]')}catch(t){e=document.querySelector('meta[name="keywords"]')}return(e&&e.content||"").replaceAll(" ","")}function f(e){return d.A(e,"mediaTypes.banner")}(0,a.E)("eightPodBidAdapter")}},e=>{e.O(0,[60802,58498,51085],(()=>{return t=33367,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[22969],{87371:(e,t,n)=>{var r=n(7873),i=n(91069),o=n(57377),a=n(12938),s=n(71371),d=n(51252);const c="eplanning",u=(0,a.vM)({bidderCode:c}),p=Math.random(),l="i.e-planning.net",f=["ci","sv","t","ml","sn"],m="USD",g="1x1",h="pbsr_",y="pbvi_",v=window.navigator.userAgent.match(/(mobile)|(ip(hone|ad))|(android)|(blackberry)|(nokia)|(phone)|(opera\smini)/i),b=["1x1","300x50","320x50","300x250"],I=["1x1","970x90","970x250","160x600","300x600","728x90","300x250"],x="640x480",w={code:c,supportedMediaTypes:[s.D4,s.G_],isBidRequestValid:function(e){return Boolean(e.params.ci)||Boolean(e.params.t)},buildRequests:function(e,t){let n,i;const o=function(e){if(function(e){for(let t=0;t<e.length;t++)if(e[t].params.t)return!0;return!1}(e))return function(e){let t;return e.forEach((e=>t=t||e.params.isv)),{t:!0,isv:t||l}}(e.filter((e=>e.params.t)));let t={};return e.forEach((e=>{f.forEach((n=>{e.params[n]&&!t[n]&&(t[n]=e.params[n])}))})),t}(e),a=function(){try{return window.top.document.charset||window.top.document.characterSet}catch(e){return document.charset||document.characterSet}}(),d=function(e,t){let n=e.reduce(((e,t)=>t.mediaTypes&&t.mediaTypes[s.G_]?"outstream"==t.mediaTypes[s.G_].context?2|e:1|e:e),0);n&&(e=e.filter((e=>e.mediaTypes&&e.mediaTypes[s.G_]&&(1&n?!e.mediaTypes[s.G_].context||"instream"==e.mediaTypes[s.G_].context:"outstream"==e.mediaTypes[s.G_].context))));let r=function(e){let t={};return e.forEach((e=>{let n=S(e,!0);t[n]=t[n]?t[n]:[],t[n].push(e)})),t}(e),i={str:"",vs:"",map:{},impType:n};return i.str=Object.keys(r).map((e=>r[e].map(((e,r)=>{let o;if(i.vs+=function(e){let t,n="";u.hasLocalStorage()?(t=function(e){let t=u.getDataFromLocalStorage(h+e.adUnitCode)||0,n=u.getDataFromLocalStorage(y+e.adUnitCode)||0,r=t>0?n/t:0;return{render:t,ratio:window.parseInt(10*r,10)}}(e),n+=t.render>=4?t.ratio.toString(16):"F"):n+="F";return n}(e),n){let t=function(e){if(null==e||!Array.isArray(e))return;let t=Array.isArray(e[0])?e[0]:e;return Array.isArray(t)&&2==t.length?t:void 0}(e.mediaTypes[s.G_].playerSize),n=t?t.join("x"):x;return o="video_"+n+"_"+r,i.map[o]=e.bidId,o+":"+n+";1"+_(e)}return o=t?function(e){return e.replace(/_|\.|-|\//g,"").replace(/\)\(|\(|\)|:/g,"_").replace(/^_+|_+$/g,"")}(e.adUnitCode):e.params&&e.params.sn||S(e,!0)+"_"+r,i.map[o]=e.bidId,o+":"+S(e)+_(e)})).join("+"))).join("+"),i}(e,o.ml),c=t.refererInfo.page||t.refererInfo.topmostLocation,m=t.refererInfo.domain||window.location.host;if(o.t)n="https://"+o.isv+"/layers/t_pbjs_2.json",i={};else{n="https://"+(o.sv||"pbjs.e-planning.net")+"/pbjs/1/"+o.ci+"/1/"+m+"/ROS";const s=t.refererInfo.ref||t.refererInfo.topmostLocation;if(u.hasLocalStorage()&&function(e){let t=[];e.forEach((e=>{let n=U(e.adUnitCode);n?T(n,e.adUnitCode):t.push(e.adUnitCode)})),t.length&&function(e){const t=new MutationObserver((function(t,n){let r,i;t&&Array.isArray(t)&&t.forEach((t=>{t&&t.addedNodes&&Array.isArray(t.addedNodes)&&t.addedNodes.forEach((t=>{r=e.indexOf(t.id),i=t,r<0&&e.forEach((n=>{let o=U(n);o&&o.contains(t)&&o.getBoundingClientRect().width>0&&(r=e.indexOf(o.id),i=o)})),r>=0&&(T(i,e[r]),e.splice(r,1),e.length||n.disconnect())}))}))}));document.addEventListener("DOMContentLoaded",(function(e){var n={childList:!0,subtree:!0,characterData:!0};t.observe(document.body,n)}))}(t)}(e),i={rnd:p,e:d.str,ur:A(c||"file"),pbv:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[22969],{87371:(e,t,n)=>{var r=n(7873),i=n(91069),o=n(57377),a=n(12938),s=n(71371),d=n(51252);const c="eplanning",u=(0,a.vM)({bidderCode:c}),p=Math.random(),l="i.e-planning.net",f=["ci","sv","t","ml","sn"],m="USD",g="1x1",h="pbsr_",y="pbvi_",v=window.navigator.userAgent.match(/(mobile)|(ip(hone|ad))|(android)|(blackberry)|(nokia)|(phone)|(opera\smini)/i),b=["1x1","300x50","320x50","300x250"],I=["1x1","970x90","970x250","160x600","300x600","728x90","300x250"],x="640x480",w={code:c,supportedMediaTypes:[s.D4,s.G_],isBidRequestValid:function(e){return Boolean(e.params.ci)||Boolean(e.params.t)},buildRequests:function(e,t){let n,i;const o=function(e){if(function(e){for(let t=0;t<e.length;t++)if(e[t].params.t)return!0;return!1}(e))return function(e){let t;return e.forEach((e=>t=t||e.params.isv)),{t:!0,isv:t||l}}(e.filter((e=>e.params.t)));let t={};return e.forEach((e=>{f.forEach((n=>{e.params[n]&&!t[n]&&(t[n]=e.params[n])}))})),t}(e),a=function(){try{return window.top.document.charset||window.top.document.characterSet}catch(e){return document.charset||document.characterSet}}(),d=function(e,t){let n=e.reduce(((e,t)=>t.mediaTypes&&t.mediaTypes[s.G_]?"outstream"==t.mediaTypes[s.G_].context?2|e:1|e:e),0);n&&(e=e.filter((e=>e.mediaTypes&&e.mediaTypes[s.G_]&&(1&n?!e.mediaTypes[s.G_].context||"instream"==e.mediaTypes[s.G_].context:"outstream"==e.mediaTypes[s.G_].context))));let r=function(e){let t={};return e.forEach((e=>{let n=S(e,!0);t[n]=t[n]?t[n]:[],t[n].push(e)})),t}(e),i={str:"",vs:"",map:{},impType:n};return i.str=Object.keys(r).map((e=>r[e].map(((e,r)=>{let o;if(i.vs+=function(e){let t,n="";u.hasLocalStorage()?(t=function(e){let t=u.getDataFromLocalStorage(h+e.adUnitCode)||0,n=u.getDataFromLocalStorage(y+e.adUnitCode)||0,r=t>0?n/t:0;return{render:t,ratio:window.parseInt(10*r,10)}}(e),n+=t.render>=4?t.ratio.toString(16):"F"):n+="F";return n}(e),n){let t=function(e){if(null==e||!Array.isArray(e))return;let t=Array.isArray(e[0])?e[0]:e;return Array.isArray(t)&&2==t.length?t:void 0}(e.mediaTypes[s.G_].playerSize),n=t?t.join("x"):x;return o="video_"+n+"_"+r,i.map[o]=e.bidId,o+":"+n+";1"+_(e)}return o=t?function(e){return e.replace(/_|\.|-|\//g,"").replace(/\)\(|\(|\)|:/g,"_").replace(/^_+|_+$/g,"")}(e.adUnitCode):e.params&&e.params.sn||S(e,!0)+"_"+r,i.map[o]=e.bidId,o+":"+S(e)+_(e)})).join("+"))).join("+"),i}(e,o.ml),c=t.refererInfo.page||t.refererInfo.topmostLocation,m=t.refererInfo.domain||window.location.host;if(o.t)n="https://"+o.isv+"/layers/t_pbjs_2.json",i={};else{n="https://"+(o.sv||"pbjs.e-planning.net")+"/pbjs/1/"+o.ci+"/1/"+m+"/ROS";const s=t.refererInfo.ref||t.refererInfo.topmostLocation;if(u.hasLocalStorage()&&function(e){let t=[];e.forEach((e=>{let n=U(e.adUnitCode);n?T(n,e.adUnitCode):t.push(e.adUnitCode)})),t.length&&function(e){const t=new MutationObserver((function(t,n){let r,i;t&&Array.isArray(t)&&t.forEach((t=>{t&&t.addedNodes&&Array.isArray(t.addedNodes)&&t.addedNodes.forEach((t=>{r=e.indexOf(t.id),i=t,r<0&&e.forEach((n=>{let o=U(n);o&&o.contains(t)&&o.getBoundingClientRect().width>0&&(r=e.indexOf(o.id),i=o)})),r>=0&&(T(i,e[r]),e.splice(r,1),e.length||n.disconnect())}))}))}));document.addEventListener("DOMContentLoaded",(function(e){var n={childList:!0,subtree:!0,characterData:!0};t.observe(document.body,n)}))}(t)}(e),i={rnd:p,e:d.str,ur:A(c||"file"),pbv:"9.6.0",ncb:"1",vs:d.vs},a&&(i.crs=a),s&&(i.fr=A(s)),t&&t.gdprConsent&&void 0!==t.gdprConsent.gdprApplies&&(i.gdpr=t.gdprConsent.gdprApplies?"1":"0",void 0!==t.gdprConsent.consentString&&(i.gdprcs=t.gdprConsent.consentString)),t&&t.uspConsent&&(i.ccpa=t.uspConsent),(0,r.m)().getUserIds&&"function"==typeof(0,r.m)().getUserIds){const e=(0,r.m)().getUserIds();for(var g in e)i["e_"+g]="object"==typeof e[g]?encodeURIComponent(JSON.stringify(e[g])):encodeURIComponent(e[g])}d.impType&&(i.vctx=1&d.impType?1:2,i.vv=3)}return{method:"GET",url:n,data:i,adUnitToBidId:d.map}},interpretResponse:function(e,t){const n=e.body;let r=[];return n&&!(0,i.isEmpty)(n.sp)&&n.sp.forEach((e=>{(0,i.isEmpty)(e.a)||e.a.forEach((n=>{const i={requestId:t.adUnitToBidId[e.k],cpm:n.pr,width:n.w,height:n.h,ttl:120,creativeId:n.crid,netRevenue:true,currency:m};n.adom&&(i.meta={advertiserDomains:n.adom}),t&&t.data&&t.data.vv?(i.vastXml=n.adm,i.mediaType=s.G_):i.ad=n.adm,r.push(i)}))})),r},getUserSyncs:function(e,t){const n=[],r=!(0,i.isEmpty)(t)&&t[0].body;if(r&&!(0,i.isEmpty)(r.cs)){r.cs.forEach((t=>{"string"==typeof t&&e.pixelEnabled?n.push({type:"image",url:t}):"object"==typeof t&&t.ifr&&e.iframeEnabled&&n.push({type:"iframe",url:t.u})}))}return n}};function C(){return(0,i.getWindowSelf)().innerWidth<=1024||window.orientation||v}function E(e,t){var n=C()?b:I,r=n.indexOf(e),i=n.indexOf(t);return r>-1?i>-1&&r<i?1:-1:i>-1?1:0}function S(e,t){var n,r=e.sizes&&e.sizes.length?(n=e.sizes,(0,i.parseSizesInput)(n).sort(E)):[];return r.length?t?r[0]:r.join(","):g}function _(e){if("function"==typeof e.getFloor){let t=e.getFloor({currency:m,mediaType:"*",size:"*"});if(t.floor)return"|"+encodeURIComponent(t.floor)}return""}function T(e,t){var n;(n={name:t,div:e}).div&&(j(h+n.name),function(){let e,t,n=5,r=1e3,i=.5,o={};function a(e){e.forEach((function(e){var t=e.target;e.isIntersecting?e.intersectionRatio>=i&&e.boundingClientRect&&e.boundingClientRect.height>0&&e.boundingClientRect.width>0&&(o[t.id]=!0):o[t.id]=!1}))}function s(e){return o[e.id]&&document.visibilityState&&"visible"===document.visibilityState}function d(){if(!t){var e={root:null,rootMargin:"0px",threshold:[i]};t=new IntersectionObserver(a.bind(this),e)}}function c(e,t,i){let o=s(t)?e+1:0;o===n?(u(t),i()):setTimeout(c.bind(this,o,t,i),r/n)}function u(e){delete o[e.id],t.unobserve(e)}function p(e){t.observe(e)}function l(e,t){e&&(d(),p(e),c(0,e,t))}return e={onView:l.bind(this)},e}().onView(n.div,j.bind(void 0,y+n.name)))}function U(e){return document.getElementById(e)||document.getElementById(function(e){if((0,i.isGptPubadsDefined)()){const t=googletag.pubads().getSlots(),n=(0,d.mw)(e);for(let e=0;e<t.length;e++)if(n(t[e]))return t[e].getSlotElementId()}return null}(e))}function A(e){return e.length>255&&(e=e.split("?")[0]).length>255&&(e=e.slice(0,255)),e}function j(e){let t;try{t=u.getDataFromLocalStorage(e),t=t?window.parseInt(t,10)+1:1,u.setDataInLocalStorage(e,t)}catch(e){return!1}return!0}(0,o.a$)(w),(0,r.E)("eplanningBidAdapter")}},e=>{e.O(0,[33005,60802,51085],(()=>{return t=87371,e(e.s=t);var t}));e.O()}]);
|
package/dist/euidIdSystem.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[65594,56293],{31536:(e,t,s)=>{var r=s(7873),i=s(91069),n=s(70433),o=s(16833),a=s(12938),l=s(45569),d=s(84259);const u="euid",c=`PrebidJS-9.4.1-EUIDModule-${d.kz}`,p="EUID: ";function h(e,t){return function(){for(var s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];e(t+" ",...r)}}const g=h(i.logInfo,p),y=h(i.logWarn,p),f=(0,a.vM)({moduleType:l.fW,moduleName:u});const b={name:u,gvlid:21,decode(e){const t=function(e){if("string"==typeof e){g("Found server-only token. Refresh is unavailable for this token.");return{euid:{id:e}}}if("optout"===e.latestToken)return g("Found optout token. Refresh is unavailable for this token."),{euid:{optout:!0}};if(Date.now()<e.latestToken.identity_expires)return{euid:{id:e.latestToken.advertising_token}};return null}(e);return g("EUID decode returned",t),t},getId(e,t){if(!0!==t?.gdprApplies)return void(0,i.logWarn)("EUID is intended for use within the EU. The module will not run when GDPR does not apply.");if(!function(e){const t=!0===e?.gdprApplies,s=(0,n.A)(e,"vendorData.purpose.consents.1"),r=(0,n.A)(e,`vendorData.vendor.consents.${21..toString()}`);return!!(!t||s&&r)}(t))return void y("Unable to use EUID module due to insufficient consent. The EUID module requires storage permission.");const s={apiBaseUrl:e?.params?.euidApiBase??"https://prod.euid.eu",paramToken:e?.params?.euidToken,serverCookieName:e?.params?.euidCookie,storage:e?.params?.storage??"localStorage",clientId:c,internalStorage:"__euid_advertising_token"};s.cstg={serverPublicKey:e?.params?.serverPublicKey,subscriptionId:e?.params?.subscriptionId,...(0,d.E0)(e?.params??{})},g("EUID configuration loaded and mapped.",s);const r=(0,d.wq)(s,f,g,y);return g("EUID getId returned",r),r},eids:{euid:{source:"euid.eu",atype:3,getValue:function(e){return e.id}}}};(0,o.bz)("userId",b),(0,r.E)("euidIdSystem")},84259:(e,t,s)=>{s.d(t,{E0:()=>h,kz:()=>o,wq:()=>p});var r=s(7873),i=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}class l{constructor(e,t,s,r){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=s,this._logWarn=r}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:"Response didn't contain a valid status"}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,r;const n=new Promise(((e,t)=>{s=e,r=t}));return this._logInfo("Sending refresh request",e),(0,i.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const i=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:i.slice(0,12),tagLength:128},e,i.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const i=JSON.parse(t),n=this.ResponseToRefreshResult(i);"string"==typeof n?r(n):s(n)}),(e=>this._logWarn("Call to UID2 API failed",e)))}),(e=>this._logWarn("Call to UID2 API failed",e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(i):s(i)}}catch(e){r(t)}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(i):s(i)}catch(t){r(e)}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class d{constructor(e,t,s,r){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=r}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),r=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),i=t();if(i){if("string"==typeof i){const t=r();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=r();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return i}}function u(e,t,s,r,i,n){i("UID2 base url provided: ",e);return new l({baseUrl:e},s,i,n).callRefreshApi(t).then((e=>{i("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=r.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),r.storeValue(s),s}))}let c;{const e=9;c={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const r=/^(UID2|EUID)-X-[A-Z]-.+/;return r.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${r}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const r=t.normalizeEmail(e.email);return void 0===r?void s("CSTG opts.email is invalid"):{email:r}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,r){if(t){if("optout"===t.latestToken)return!0;const r=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,r))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,r,i,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(r);n("CSTG endpoint responded with:",l);const d={originalIdentity:this.encodeOriginalIdentity(r),latestToken:l.identity};return i.storeValue(d),d},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:r,domain:i}=s,n=this.isGmail(i),o=this.normalizeAddressPart(r,n,n);return o?`${o}@${i}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let r=e;return t&&(r=r.replaceAll(this.EMAIL_DOT,"")),s&&(r=this.dropExtension(r)),r}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=t,this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await r.build(this.stripPublicKeyPrefix(this._serverPublicKey)),i=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(i.encode(JSON.stringify(t)),i.encode(JSON.stringify([n]))),d=await o.exportPublicKey(s.clientPublicKey),u={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(d)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(u,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let r,n;const a=new Promise(((e,t)=>{r=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,i.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),i=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(i),l=JSON.parse(a);this.isCstgApiSuccessResponse(l)?r({status:"success",identity:l.body}):this.isCstgApiOptoutResponse(l)?r({status:"optout",identity:"optout"}):n(`API error: Response body was invalid for HTTP status 200: ${a}`)}catch(e){n(e)}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(`Client error: ${e.message}`):n(`API error: Response body was invalid for HTTP status 400: ${t.responseText}`)}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(`Forbidden: ${e.message}`):n(`API error: Response body was invalid for HTTP status 403: ${t.responseText}`)}else n(`API error: Unexpected HTTP status ${t.status}: ${e}`)}catch(t){n(e)}}},JSON.stringify(e),{method:"POST"}),a}}class r{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(r._namedCurve),s=await o.importPublicKey(e,this._namedCurve),i=await o.deriveKey(s,t.privateKey);return new r(t.publicKey,i)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function p(e,t,s,r){let i=null;const n="cookie"!==e.storage,o=new d(t,n,e.internalStorage,s);s(`Module is using ${n?"local storage":"cookies"} for internal storage.`);const a=c&&c.isCSTGOptionsValid(e.cstg,r);a?(s("Module is using client-side token generation."),i=null):e.paramToken?(i=e.paramToken,s("Read token from params",i)):e.serverCookieName&&(i=o.readProvidedCookie(e.serverCookieName),s("Read token from server-supplied cookie",i));let l=o.getStoredValueWithFallback();if(s("Loaded module-stored tokens:",l),l&&"string"==typeof l){if(!i&&!a)return s("Returning legacy cookie value."),{id:l};s("Discarding superseded legacy cookie."),l=null}if(i&&l&&l.originalToken?.advertising_token!==i.advertising_token&&(s("Server supplied new token - ignoring stored value.",l.originalToken?.advertising_token,i.advertising_token),l=null),a){const t=c.getValidIdentity(e.cstg,r);if(t&&(l&&c.isStoredTokenInvalid(t,l,s,r)&&(l=null),!l||Date.now()>l.latestToken.refresh_expires)){const i=c.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,o,s,r);return s("Generate token using CSTG"),{callback:e=>{i.then((t=>{s("Token generation responded, passing the new token on.",t),e(t)}))}}}}const p=!l?.latestToken||i&&i.identity_expires>l.latestToken.identity_expires,h=p?i:l.latestToken;if(s("UID2 module selected latest token",p,h),!h||Date.now()>h.refresh_expires)return s("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>h.identity_expires){const t=u(e.apiBaseUrl,h,e.clientId,o,s,r);return s("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{s("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>h.refresh_from&&(s("Refreshing token in background with low priority."),u(e.apiBaseUrl,h,e.clientId,o,s,r));const g={originalToken:i??l?.originalToken,latestToken:h};return a&&(g.originalIdentity=l?.originalIdentity),o.storeValue(g),{id:g}}function h(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,r.E)("uid2IdSystem_shared")}},e=>{e.O(0,[60802,51085],(()=>{return t=31536,e(e.s=t);var t}));e.O()}]);
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[65594,56293],{31536:(e,t,s)=>{var r=s(7873),i=s(91069),n=s(70433),o=s(16833),a=s(12938),l=s(45569),u=s(84259);const d="euid",c=`PrebidJS-9.6.0-EUIDModule-${u.kz}`,p="EUID: ";function h(e,t){return function(){for(var s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];e(t+" ",...r)}}const g=h(i.logInfo,p),y=h(i.logWarn,p),f=(0,a.vM)({moduleType:l.fW,moduleName:d});const b={name:d,gvlid:21,decode(e){const t=function(e){if("string"==typeof e){g("Found server-only token. Refresh is unavailable for this token.");return{euid:{id:e}}}if("optout"===e.latestToken)return g("Found optout token. Refresh is unavailable for this token."),{euid:{optout:!0}};if(Date.now()<e.latestToken.identity_expires)return{euid:{id:e.latestToken.advertising_token}};return null}(e);return g("EUID decode returned",t),t},getId(e,t){if(!0!==t?.gdprApplies)return void(0,i.logWarn)("EUID is intended for use within the EU. The module will not run when GDPR does not apply.");if(!function(e){const t=!0===e?.gdprApplies,s=(0,n.A)(e,"vendorData.purpose.consents.1"),r=(0,n.A)(e,`vendorData.vendor.consents.${21..toString()}`);return!!(!t||s&&r)}(t))return void y("Unable to use EUID module due to insufficient consent. The EUID module requires storage permission.");const s={apiBaseUrl:e?.params?.euidApiBase??"https://prod.euid.eu",paramToken:e?.params?.euidToken,serverCookieName:e?.params?.euidCookie,storage:e?.params?.storage??"localStorage",clientId:c,internalStorage:"__euid_advertising_token"};s.cstg={serverPublicKey:e?.params?.serverPublicKey,subscriptionId:e?.params?.subscriptionId,...(0,u.E0)(e?.params??{})},g("EUID configuration loaded and mapped.",s);const r=(0,u.wq)(s,f,g,y);return g("EUID getId returned",r),r},eids:{euid:{source:"euid.eu",atype:3,getValue:function(e){return e.id}}}};(0,o.bz)("userId",b),(0,r.E)("euidIdSystem")},84259:(e,t,s)=>{s.d(t,{E0:()=>y,kz:()=>o,wq:()=>g});var r=s(7873),i=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}function l(e){return`UID2 shared library - ${e}`}function u(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];e(l(s[0]),...s.slice(1))}class d{constructor(e,t,s,r){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return u(s,...t)},this._logWarn=r}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:l("Response didn't contain a valid status")}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,r;const n=new Promise(((e,t)=>{s=e,r=t}));return this._logInfo("Sending refresh request",e),(0,i.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const i=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:i.slice(0,12),tagLength:128},e,i.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const i=JSON.parse(t),n=this.ResponseToRefreshResult(i);"string"==typeof n?r(l(n)):s(n)}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}}catch(e){r(l(t))}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}catch(t){r(l(e))}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class c{constructor(e,t,s,r){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return u(r,...t)}}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),r=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),i=t();if(i){if("string"==typeof i){const t=r();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=r();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return i}}function p(e,t,s,r,i,n){i("UID2 base url provided: ",e);return new d({baseUrl:e},s,i,n).callRefreshApi(t).then((e=>{i("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=r.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),r.storeValue(s),s}))}let h;{const e=9;h={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const r=/^(UID2|EUID)-X-[A-Z]-.+/;return r.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${r}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const r=t.normalizeEmail(e.email);return void 0===r?void s("CSTG opts.email is invalid"):{email:r}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,r){if(t){if("optout"===t.latestToken)return!0;const r=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,r))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,r,i,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(r);n("CSTG endpoint responded with:",l);const u={originalIdentity:this.encodeOriginalIdentity(r),latestToken:l.identity};return i.storeValue(u),u},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:r,domain:i}=s,n=this.isGmail(i),o=this.normalizeAddressPart(r,n,n);return o?`${o}@${i}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let r=e;return t&&(r=r.replaceAll(this.EMAIL_DOT,"")),s&&(r=this.dropExtension(r)),r}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];return u(t,...s)},this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await r.build(this.stripPublicKeyPrefix(this._serverPublicKey)),i=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(i.encode(JSON.stringify(t)),i.encode(JSON.stringify([n]))),u=await o.exportPublicKey(s.clientPublicKey),d={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(u)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(d,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let r,n;const a=new Promise(((e,t)=>{r=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,i.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),i=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(i),u=JSON.parse(a);this.isCstgApiSuccessResponse(u)?r({status:"success",identity:u.body}):this.isCstgApiOptoutResponse(u)?r({status:"optout",identity:"optout"}):n(l(`API error: Response body was invalid for HTTP status 200: ${a}`))}catch(e){n(l(e))}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(l(`Client error: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 400: ${t.responseText}`))}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(l(`Forbidden: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 403: ${t.responseText}`))}else n(l(`UID2 API error: Unexpected HTTP status ${t.status}: ${e}`))}catch(t){n(l(e))}}},JSON.stringify(e),{method:"POST"}),a}}class r{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(r._namedCurve),s=await o.importPublicKey(e,this._namedCurve),i=await o.deriveKey(s,t.privateKey);return new r(t.publicKey,i)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function g(e,t,s,r){const i=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return u(s,...t)};let n=null;const o="cookie"!==e.storage,a=new c(t,o,e.internalStorage,i);i(`Module is using ${o?"local storage":"cookies"} for internal storage.`);const l=h&&h.isCSTGOptionsValid(e.cstg,r);l?(i("Module is using client-side token generation."),n=null):e.paramToken?(n=e.paramToken,i("Read token from params",n)):e.serverCookieName&&(n=a.readProvidedCookie(e.serverCookieName),i("Read token from server-supplied cookie",n));let d=a.getStoredValueWithFallback();if(i("Loaded module-stored tokens:",d),d&&"string"==typeof d){if(!n&&!l)return i("Returning legacy cookie value."),{id:d};i("Discarding superseded legacy cookie."),d=null}if(n&&d&&d.originalToken?.advertising_token!==n.advertising_token&&(i("Server supplied new token - ignoring stored value.",d.originalToken?.advertising_token,n.advertising_token),d=null),l){const t=h.getValidIdentity(e.cstg,r);if(t&&(d&&h.isStoredTokenInvalid(t,d,i,r)&&(d=null),!d||Date.now()>d.latestToken.refresh_expires)){const s=h.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,a,i,r);return i("Generate token using CSTG"),{callback:e=>{s.then((t=>{i("Token generation responded, passing the new token on.",t),e(t)}))}}}}const g=!d?.latestToken||n&&n.identity_expires>d.latestToken.identity_expires,y=g?n:d.latestToken;if(i("UID2 module selected latest token",g,y),!y||Date.now()>y.refresh_expires)return i("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>y.identity_expires){const t=p(e.apiBaseUrl,y,e.clientId,a,i,r);return i("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{i("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>y.refresh_from&&(i("Refreshing token in background with low priority."),p(e.apiBaseUrl,y,e.clientId,a,i,r));const f={originalToken:n??d?.originalToken,latestToken:y};return l&&(f.originalIdentity=d?.originalIdentity),a.storeValue(f),{id:f}}function y(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,r.E)("uid2IdSystem_shared")}},e=>{e.O(0,[60802,51085],(()=>{return t=31536,e(e.s=t);var t}));e.O()}]);
|
package/dist/exadsBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[97772],{58652:(e,a,n)=>{var r=n(7873),s=n(91069),o=n(70433),t=n(71371),i=n(57377);const d={ORTB_2_4:"ortb_2_4"},p={[d.ORTB_2_4]:{request:function(e,a,n){s.logInfo("Calling endpoint for ortb_2_4:",a);const r=function(e){const a=u(e)&&u(e.gdprConsent);if(a)return e.gdprConsent;return null}(n),i=function(){const e={lang:"",userAgent:"",osName:"",page:"",domain:"",language:""};e.domain=window.location.hostname,e.page=window.location.protocol+"//"+window.location.host+window.location.pathname,e.lang=navigator.language.indexOf("-")>-1?navigator.language.split("-")[0]:navigator.language,e.userAgent=navigator.userAgent,e.userAgent.match(/Windows/i)?e.osName="Windows":e.userAgent.match(/Mac OS|Macintosh/i)?e.osName="MacOS":e.userAgent.match(/Unix/i)?e.osName="Unix":e.userAgent.match(/Android/i)?e.osName="Android":e.userAgent.match(/iPhone|iPad|iPod/i)?e.osName="iOS":e.userAgent.match(/Linux/i)?e.osName="Linux":e.osName="Unknown";let a=(navigator.language||navigator.userLanguage).replace("_","-");return e.language=a,s.logInfo("Domain -> ",e.domain),s.logInfo("Page -> ",e.page),s.logInfo("Lang -> ",e.lang),s.logInfo("OS -> ",e.osName),s.logInfo("User Agent -> ",e.userAgent),s.logInfo("Primary Language -> ",e.language),e}();let d={id:e.bidId,at:1,imp:[],bcat:e.params.bcat,badv:e.params.badv,site:{id:e.params.siteId,name:e.params.siteName,domain:i.domain,page:i.page,keywords:e.params.keywords},device:{ua:i.userAgent,ip:e.params.userIp,geo:{country:e.params.country},language:i.lang,os:i.osName,js:0,ext:{accept_language:i.language}},user:{id:e.params.userId},ext:{sub:0,prebid:{channel:{name:"pbjs",version:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[97772],{58652:(e,a,n)=>{var r=n(7873),s=n(91069),o=n(70433),t=n(71371),i=n(57377);const d={ORTB_2_4:"ortb_2_4"},p={[d.ORTB_2_4]:{request:function(e,a,n){s.logInfo("Calling endpoint for ortb_2_4:",a);const r=function(e){const a=u(e)&&u(e.gdprConsent);if(a)return e.gdprConsent;return null}(n),i=function(){const e={lang:"",userAgent:"",osName:"",page:"",domain:"",language:""};e.domain=window.location.hostname,e.page=window.location.protocol+"//"+window.location.host+window.location.pathname,e.lang=navigator.language.indexOf("-")>-1?navigator.language.split("-")[0]:navigator.language,e.userAgent=navigator.userAgent,e.userAgent.match(/Windows/i)?e.osName="Windows":e.userAgent.match(/Mac OS|Macintosh/i)?e.osName="MacOS":e.userAgent.match(/Unix/i)?e.osName="Unix":e.userAgent.match(/Android/i)?e.osName="Android":e.userAgent.match(/iPhone|iPad|iPod/i)?e.osName="iOS":e.userAgent.match(/Linux/i)?e.osName="Linux":e.osName="Unknown";let a=(navigator.language||navigator.userLanguage).replace("_","-");return e.language=a,s.logInfo("Domain -> ",e.domain),s.logInfo("Page -> ",e.page),s.logInfo("Lang -> ",e.lang),s.logInfo("OS -> ",e.osName),s.logInfo("User Agent -> ",e.userAgent),s.logInfo("Primary Language -> ",e.language),e}();let d={id:e.bidId,at:1,imp:[],bcat:e.params.bcat,badv:e.params.badv,site:{id:e.params.siteId,name:e.params.siteName,domain:i.domain,page:i.page,keywords:e.params.keywords},device:{ua:i.userAgent,ip:e.params.userIp,geo:{country:e.params.country},language:i.lang,os:i.osName,js:0,ext:{accept_language:i.language}},user:{id:e.params.userId},ext:{sub:0,prebid:{channel:{name:"pbjs",version:"9.6.0"}}}};r&&r.gdprApplies&&(d.user.ext={consent:r.consentString});e.params.dsa&&(u(e.params.dsa.dsarequired)||u(e.params.dsa.pubrender)||u(e.params.dsa.datatopub))&&(d.regs={ext:{dsa:{dsarequired:e.params.dsa.dsarequired,pubrender:e.params.dsa.pubrender,datatopub:e.params.dsa.datatopub}}});const p=m.get(e.params.impressionId),g=o.A(e,"mediaTypes.banner");null!=g&&(p.mediaType=t.D4,d.imp=g.sizes.map((a=>({id:e.params.impressionId,bidfloor:e.params.bidfloor,bidfloorcur:e.params.bidfloorcur,banner:{w:a[0],h:a[1],mimes:e.params.mimes?e.params.mimes:void 0,ext:{image_output:"html",video_output:"html"}}}))));const c=o.A(e,"mediaTypes.native");if(null!=c){p.mediaType=t.s6;const a="1.2",n={native:{ver:a,plcmttype:4,plcmtcnt:e.params.native.plcmtcnt}};n.native.assets=d.imp=c.ortb.assets.map((e=>{const a=e;return null!=a.img&&(a.img.wmin=a.img.h,a.img.hmin=a.img.w),a}));const r=[{id:e.params.impressionId,bidfloor:e.params.bidfloor,bidfloorcur:e.params.bidfloorcur,native:{request:JSON.stringify(n),ver:a}}];d.imp=r}const f=o.A(e,"mediaTypes.video");if(null!=f){p.mediaType=t.G_;const a=[{id:e.params.impressionId,bidfloor:e.params.bidfloor,bidfloorcur:e.params.bidfloorcur,video:{mimes:f.mimes,protocols:f.protocols},ext:e.params.imp.ext}];d.imp=a}return s.logInfo("PAYLOAD",d,JSON.stringify(d)),s.logInfo("FINAL URL",a),l(a,d)},response:function(e,a,n){s.logInfo("on handleResORTB2Dot4 -> request:",a),s.logInfo("on handleResORTB2Dot4 -> request json data:",JSON.parse(a.data)),s.logInfo("on handleResORTB2Dot4 -> serverResponse:",e);let r=[];const i=JSON.parse(a.data);if(e.hasOwnProperty("body")&&e.body.hasOwnProperty("id")){s.logInfo("Ad server response",e.body.id);const a=e.body.id,n=e.body.cur;e.body.seatbid.forEach(((e,d)=>{e.bid.forEach(((e,p)=>{s.logInfo("serverResponse.body.seatbid["+d+"].bid["+p+"]",e);const l=e.adm,m=o.A(i.imp[0],"banner"),g=o.A(i.imp[0],"native"),c=o.A(i.imp[0],"video");let f,b=0,v="";const h={};if(null!=m)f=i.imp[0].banner.w,b=i.imp[0].banner.h,v=t.D4;else if(null!=g){const e=JSON.parse(l);e.native.assets.forEach((e=>{if(null!=e.img){const a=JSON.parse(i.imp[0].native.request).native.assets.filter((e=>null!=e.img)).map((e=>e.img));f=a[0].w,b=a[0].h,h.image={url:e.img.url,height:b,width:f}}else null!=e.title?h.title=e.title.text:null!=e.data?h.body=e.data.value:s.logWarn("bidResponse->","wrong asset type or null")})),e.native&&(e.native.link&&(h.clickUrl=e.native.link.url),e.native.eventtrackers&&(h.impressionTrackers=[],e.native.eventtrackers.forEach((e=>{1==e.method&&h.impressionTrackers.push(e.url)})))),v=t.s6}else null!=c&&(v=t.G_);const I={};u(e.ext.dsa)&&(I.dsa=e.ext.dsa);const y={requestId:a,currency:n,ad:e.adm,cpm:e.price,creativeId:e.crid,cid:e.cid,width:f,ttl:360,height:b,netRevenue:!0,mediaType:v,meta:I,nurl:e.nurl.replace(/^http:\/\//i,"https://")};"native"==v&&(y.native=h),"video"==v&&(y.vastXml=e.adm,y.width=e.w,y.height=e.h),s.logInfo("bidResponse->",y),r.push(y)}))}))}else m.delete(i.imp[0].id),s.logInfo("NO Ad server response ->",e.body.id);return s.logInfo("interpretResponse -> bidResponses:",r),r},validation:function(e){const a=e.mediaTypes?.banner,n=e.mediaTypes?.native,r=e.mediaTypes?.video,o=u(e.params.endpoint)&&u(e.params.userIp)&&e.params.hasOwnProperty("userIp")&&u(e.params.zoneId)&&u(e.params.partner)&&u(e.params.fid)&&u(e.params.siteId)&&u(e.params.impressionId)&&u(e.params.country)&&u(e.params.country.length>0)&&(!u(e.params.bcat)||e.params.bcat.length>0)&&(!u(e.params.badv)||e.params.badv.length>0)&&(a||n||r)&&(!n||e.params.native&&n.ortb.assets&&n.ortb.assets.some((e=>!!e.img)))&&(!r||r.mimes&&r.mimes.length>0&&r.protocols&&r.protocols.length>0);o||s.logError("Validation Error");return o}}};function l(e,a){return{method:"POST",url:e,data:JSON.stringify(a)}}const m=new Map;function u(e){return null!=e}const g={aliases:["exads"],supportedMediaTypes:[t.D4,t.s6,t.G_],isBidRequestValid:function(e){if(s.logInfo("on isBidRequestValid -> bid:",e),!e.params.partner)return s.logError("Validation Error","bid.params.partner missed"),!1;if(!Object.values(d).includes(e.params.partner))return s.logError("Validation Error","bid.params.partner is not valid"),!1;let a=e.params.partner;return!(!p[a]||!p[a].validation)&&p[a].validation(e)},buildRequests:function(e,a){return s.logInfo("on buildRequests -> validBidRequests:",e),s.logInfo("on buildRequests -> bidderRequest:",a),e.map((e=>{let n=e.params.partner;m.set(e.params.impressionId,{adPartner:n,mediaType:null});let r=function(e,a){let n={[d.ORTB_2_4]:a.params.endpoint+"?idzone="+a.params.zoneId+"&fid="+a.params.fid};return n[e]?n[e]:"defaultEndpoint"}(n,e);return p[n].request?p[n].request(e,r,a):null}))},interpretResponse:function(e,a){const n=JSON.parse(a.data),r=m.get(n.imp[0].id).adPartner;return p[r].response?p[r].response(e,a,r):null},onTimeout:function(e){s.logWarn("onTimeout -> timeoutData:",e)},onBidWon:function(e){s.logInfo("onBidWon -> bid:",e),e.nurl&&s.triggerPixel(e.nurl)},onSetTargeting:function(e){s.logInfo("onSetTargeting -> bid:",e)},onBidderError:function(e){m.delete(e.bidderRequest.bids[0].params.impressionId),s.logInfo("onBidderError -> bid:",e)}};(0,i.a$)({code:"exads",gvlid:1084,...g}),(0,r.E)("exadsBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return a=58652,e(e.s=a);var a}));e.O()}]);
|