prebid.js 5.14.0 → 5.18.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/.devcontainer/Dockerfile +11 -0
- package/.devcontainer/devcontainer.json +27 -0
- package/.devcontainer/postCreate.sh +6 -0
- package/allowedModules.js +2 -1
- package/integrationExamples/gpt/afpExample.html +242 -0
- package/integrationExamples/gpt/afpGamExample.html +152 -0
- package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
- package/modules/.submodules.json +29 -27
- package/modules/33acrossBidAdapter.js +23 -20
- package/modules/a4gBidAdapter.js +3 -3
- package/modules/ablidaBidAdapter.js +2 -2
- package/modules/adWMGBidAdapter.js +4 -4
- package/modules/adagioAnalyticsAdapter.js +4 -4
- package/modules/adagioBidAdapter.js +85 -82
- package/modules/adbookpspBidAdapter.js +56 -54
- package/modules/adfBidAdapter.js +24 -16
- package/modules/adgenerationBidAdapter.js +42 -18
- package/modules/adhashBidAdapter.js +105 -0
- package/modules/adhashBidAdapter.md +1 -1
- package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
- package/modules/adkernelAdnBidAdapter.js +23 -23
- package/modules/adkernelBidAdapter.js +49 -44
- package/modules/adlooxAdServerVideo.js +26 -26
- package/modules/adlooxAnalyticsAdapter.js +38 -35
- package/modules/adlooxRtdProvider.js +49 -46
- package/modules/admanBidAdapter.js +4 -4
- package/modules/admixerBidAdapter.js +13 -2
- package/modules/admixerIdSystem.js +4 -4
- package/modules/adnowBidAdapter.js +4 -4
- package/modules/adnuntiusBidAdapter.js +6 -5
- package/modules/adoceanBidAdapter.js +10 -10
- package/modules/adpartnerBidAdapter.js +3 -3
- package/modules/adpod.js +45 -42
- package/modules/adprimeBidAdapter.js +4 -4
- package/modules/adqueryBidAdapter.js +204 -0
- package/modules/adqueryBidAdapter.md +32 -0
- package/modules/adrelevantisBidAdapter.js +30 -27
- package/modules/adriverBidAdapter.js +13 -13
- package/modules/adtargetBidAdapter.js +24 -24
- package/modules/adtelligentBidAdapter.js +29 -29
- package/modules/adtrueBidAdapter.js +35 -35
- package/modules/aduptechBidAdapter.js +10 -10
- package/modules/advangelistsBidAdapter.js +14 -14
- package/modules/adxcgAnalyticsAdapter.js +5 -5
- package/modules/adxcgBidAdapter.js +56 -56
- package/modules/adxpremiumAnalyticsAdapter.js +17 -17
- package/modules/adyoulikeBidAdapter.js +11 -11
- package/modules/afpBidAdapter.js +166 -0
- package/modules/afpBidAdapter.md +348 -0
- package/modules/ajaBidAdapter.js +12 -12
- package/modules/akamaiDAPIdSystem.js +9 -9
- package/modules/aniviewBidAdapter.js +2 -2
- package/modules/aolBidAdapter.js +15 -14
- package/modules/apacdexBidAdapter.js +16 -16
- package/modules/appnexusBidAdapter.js +59 -59
- package/modules/apstreamBidAdapter.js +5 -5
- package/modules/asoBidAdapter.js +30 -30
- package/modules/astraoneBidAdapter.js +2 -2
- package/modules/atsAnalyticsAdapter.js +35 -30
- package/modules/audiencerunBidAdapter.js +15 -15
- package/modules/automatadBidAdapter.js +2 -2
- package/modules/axonixBidAdapter.js +7 -7
- package/modules/beachfrontBidAdapter.js +23 -23
- package/modules/beopBidAdapter.js +22 -22
- package/modules/bidViewabilityIO.js +7 -7
- package/modules/bidglassBidAdapter.js +8 -8
- package/modules/bidscubeBidAdapter.js +3 -3
- package/modules/bizzclickBidAdapter.js +10 -10
- package/modules/bliinkBidAdapter.js +58 -32
- package/modules/bliinkBidAdapter.md +29 -6
- package/modules/bluebillywigBidAdapter.js +30 -30
- package/modules/boldwinBidAdapter.js +4 -4
- package/modules/braveBidAdapter.js +5 -5
- package/modules/bridgewellBidAdapter.js +5 -5
- package/modules/brightMountainMediaBidAdapter.js +10 -10
- package/modules/brightcomBidAdapter.js +18 -18
- package/modules/britepoolIdSystem.js +7 -7
- package/modules/browsiRtdProvider.js +8 -8
- package/modules/bucksenseBidAdapter.js +9 -9
- package/modules/buzzoolaBidAdapter.js +4 -4
- package/modules/byDataAnalyticsAdapter.js +12 -12
- package/modules/ccxBidAdapter.js +38 -38
- package/modules/cleanmedianetBidAdapter.js +9 -9
- package/modules/clickforceBidAdapter.js +4 -4
- package/modules/cointrafficBidAdapter.js +4 -4
- package/modules/coinzillaBidAdapter.js +2 -2
- package/modules/colossussspBidAdapter.js +7 -3
- package/modules/concertAnalyticsAdapter.js +3 -3
- package/modules/concertBidAdapter.js +16 -17
- package/modules/connectadBidAdapter.js +13 -13
- package/modules/consentManagement.js +29 -28
- package/modules/consentManagementUsp.js +14 -14
- package/modules/consumableBidAdapter.js +3 -3
- package/modules/contentexchangeBidAdapter.js +5 -5
- package/modules/conversantBidAdapter.js +32 -31
- package/modules/cpmstarBidAdapter.js +8 -9
- package/modules/craftBidAdapter.js +10 -10
- package/modules/criteoBidAdapter.js +16 -16
- package/modules/criteoIdSystem.js +5 -5
- package/modules/currency.js +18 -18
- package/modules/cwireBidAdapter.js +272 -0
- package/modules/cwireBidAdapter.md +43 -0
- package/modules/datablocksBidAdapter.js +12 -12
- package/modules/deepintentBidAdapter.js +13 -13
- package/modules/dgkeywordRtdProvider.js +10 -11
- package/modules/districtmDMXBidAdapter.js +15 -15
- package/modules/dmdIdSystem.js +5 -5
- package/modules/docereeBidAdapter.js +9 -9
- package/modules/dspxBidAdapter.js +5 -5
- package/modules/ebdrBidAdapter.js +9 -9
- package/modules/emx_digitalBidAdapter.js +23 -23
- package/modules/enrichmentFpdModule.js +10 -9
- package/modules/eplanningAnalyticsAdapter.js +2 -2
- package/modules/eplanningBidAdapter.js +10 -10
- package/modules/etargetBidAdapter.js +4 -4
- package/modules/express.js +9 -10
- package/modules/fabrickIdSystem.js +6 -6
- package/modules/feedadBidAdapter.js +5 -5
- package/modules/fintezaAnalyticsAdapter.js +4 -4
- package/modules/flocIdSystem.js +5 -5
- package/modules/fluctBidAdapter.js +6 -5
- package/modules/freewheel-sspBidAdapter.js +6 -6
- package/modules/gamoshiBidAdapter.js +22 -22
- package/modules/gdprEnforcement.js +13 -14
- package/modules/getintentBidAdapter.js +3 -4
- package/modules/glimpseBidAdapter.js +160 -48
- package/modules/glimpseBidAdapter.md +11 -74
- package/modules/gmosspBidAdapter.js +17 -17
- package/modules/gnetBidAdapter.js +5 -5
- package/modules/googleAnalyticsAdapter.js +6 -6
- package/modules/gothamadsBidAdapter.js +9 -9
- package/modules/gptPreAuction.js +7 -7
- package/modules/gridBidAdapter.js +15 -16
- package/modules/gridNMBidAdapter.js +214 -63
- package/modules/growadvertisingBidAdapter.js +7 -8
- package/modules/gumgumBidAdapter.js +19 -13
- package/modules/h12mediaBidAdapter.js +12 -12
- package/modules/haloIdSystem.js +8 -8
- package/modules/hybridBidAdapter.js +7 -7
- package/modules/iasRtdProvider.js +79 -63
- package/modules/id5IdSystem.js +24 -24
- package/modules/idImportLibrary.js +35 -35
- package/modules/idxIdSystem.js +3 -3
- package/modules/impactifyBidAdapter.js +10 -10
- package/modules/improvedigitalBidAdapter.js +36 -36
- package/modules/imuIdSystem.js +6 -6
- package/modules/inmarBidAdapter.js +2 -2
- package/modules/innityBidAdapter.js +3 -3
- package/modules/inskinBidAdapter.js +14 -2
- package/modules/inskinBidAdapter.md +5 -4
- package/modules/instreamTracking.js +5 -5
- package/modules/integr8BidAdapter.js +4 -4
- package/modules/intentIqIdSystem.js +7 -7
- package/modules/interactiveOffersBidAdapter.js +5 -5
- package/modules/invibesBidAdapter.js +53 -19
- package/modules/invisiblyAnalyticsAdapter.js +5 -5
- package/modules/iqmBidAdapter.js +19 -19
- package/modules/iqzoneBidAdapter.js +5 -5
- package/modules/ixBidAdapter.js +73 -73
- package/modules/jixieBidAdapter.js +6 -6
- package/modules/justpremiumBidAdapter.js +5 -1
- package/modules/kargoBidAdapter.js +16 -9
- package/modules/kargoBidAdapter.md +20 -0
- package/modules/kinessoIdSystem.js +8 -8
- package/modules/koblerBidAdapter.js +12 -12
- package/modules/konduitAnalyticsAdapter.js +4 -4
- package/modules/konduitWrapper.js +14 -14
- package/modules/krushmediaBidAdapter.js +4 -4
- package/modules/kubientBidAdapter.js +5 -5
- package/modules/limelightDigitalBidAdapter.js +4 -4
- package/modules/liveIntentIdSystem.js +4 -5
- package/modules/livewrappedAnalyticsAdapter.js +27 -15
- package/modules/livewrappedBidAdapter.js +7 -7
- package/modules/liveyieldAnalyticsAdapter.js +13 -13
- package/modules/lockerdomeBidAdapter.js +2 -2
- package/modules/loganBidAdapter.js +4 -4
- package/modules/lotamePanoramaIdSystem.js +13 -13
- package/modules/lunamediahbBidAdapter.js +2 -2
- package/modules/madvertiseBidAdapter.js +3 -3
- package/modules/marsmediaBidAdapter.js +26 -26
- package/modules/mathildeadsBidAdapter.js +5 -5
- package/modules/mediaforceBidAdapter.js +11 -11
- package/modules/mediakeysBidAdapter.js +444 -53
- package/modules/mediakeysBidAdapter.md +108 -0
- package/modules/medianetAnalyticsAdapter.js +48 -125
- package/modules/medianetBidAdapter.js +38 -33
- package/modules/medianetRtdProvider.js +7 -7
- package/modules/merkleIdSystem.js +19 -19
- package/modules/mgidBidAdapter.js +50 -50
- package/modules/microadBidAdapter.js +3 -3
- package/modules/multibid/index.js +15 -13
- package/modules/mwOpenLinkIdSystem.js +7 -7
- package/modules/mytargetBidAdapter.js +112 -0
- package/modules/nativoBidAdapter.js +46 -31
- package/modules/nativoBidAdapter.md +0 -1
- package/modules/naveggIdSystem.js +3 -3
- package/modules/nextMillenniumBidAdapter.js +6 -6
- package/modules/nextrollBidAdapter.js +375 -0
- package/modules/nobidBidAdapter.js +12 -11
- package/modules/novatiqIdSystem.js +8 -8
- package/modules/oguryBidAdapter.js +22 -6
- package/modules/oneVideoBidAdapter.js +20 -20
- package/modules/onomagicBidAdapter.js +16 -16
- package/modules/ooloAnalyticsAdapter.js +13 -13
- package/modules/openwebBidAdapter.js +26 -26
- package/modules/openxAnalyticsAdapter.js +33 -33
- package/modules/openxBidAdapter.js +29 -29
- package/modules/operaadsBidAdapter.js +53 -53
- package/modules/optimeraRtdProvider.js +9 -9
- package/modules/optoutBidAdapter.js +3 -3
- package/modules/orbidderBidAdapter.js +3 -3
- package/modules/outbrainBidAdapter.js +13 -13
- package/modules/ozoneBidAdapter.js +131 -131
- package/modules/padsquadBidAdapter.js +4 -4
- package/modules/parrableIdSystem.js +17 -17
- package/modules/pixfutureBidAdapter.js +45 -25
- package/modules/pixfutureBidAdapter.md +127 -0
- package/modules/prebidServerBidAdapter/index.js +109 -105
- package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
- package/modules/priceFloors.js +47 -47
- package/modules/proxistoreBidAdapter.js +6 -8
- package/modules/pubCommonId.js +11 -11
- package/modules/pubProvidedIdSystem.js +3 -3
- package/modules/publinkIdSystem.js +23 -7
- package/modules/publinkIdSystem.md +7 -2
- package/modules/pubmaticAnalyticsAdapter.js +16 -16
- package/modules/pubmaticBidAdapter.js +109 -93
- package/modules/pubmaticBidAdapter.md +1 -1
- package/modules/pubperfAnalyticsAdapter.js +3 -3
- package/modules/pubwiseAnalyticsAdapter.js +6 -6
- package/modules/pubwiseBidAdapter.js +23 -23
- package/modules/pubxBidAdapter.js +2 -2
- package/modules/pubxaiAnalyticsAdapter.js +7 -7
- package/modules/pulsepointBidAdapter.js +13 -13
- package/modules/pxyzBidAdapter.js +7 -7
- package/modules/quantcastBidAdapter.js +16 -16
- package/modules/radsBidAdapter.js +5 -5
- package/modules/realvuAnalyticsAdapter.js +5 -7
- package/modules/reconciliationRtdProvider.js +6 -6
- package/modules/relaidoBidAdapter.js +44 -38
- package/modules/resetdigitalBidAdapter.js +3 -4
- package/modules/revcontentBidAdapter.js +9 -9
- package/modules/rhythmoneBidAdapter.js +17 -16
- package/modules/richaudienceBidAdapter.js +9 -9
- package/modules/riseBidAdapter.js +26 -26
- package/modules/riseBidAdapter.md +1 -3
- package/modules/roxotAnalyticsAdapter.js +14 -14
- package/modules/rtbhouseBidAdapter.js +7 -7
- package/modules/rtbsapeBidAdapter.js +3 -4
- package/modules/rtdModule/index.js +3 -3
- package/modules/rubiconAnalyticsAdapter.js +82 -82
- package/modules/rubiconBidAdapter.js +72 -68
- package/modules/scaleableAnalyticsAdapter.js +2 -2
- package/modules/seedingAllianceBidAdapter.js +231 -0
- package/modules/seedtagBidAdapter.js +10 -10
- package/modules/sharedIdSystem.js +11 -11
- package/modules/sharethroughAnalyticsAdapter.js +8 -8
- package/modules/sharethroughBidAdapter.js +20 -27
- package/modules/showheroes-bsBidAdapter.js +23 -23
- package/modules/sigmoidAnalyticsAdapter.js +4 -5
- package/modules/sirdataRtdProvider.js +34 -34
- package/modules/sizeMappingV2.js +39 -39
- package/modules/slimcutBidAdapter.js +121 -0
- package/modules/smaatoBidAdapter.js +44 -44
- package/modules/smartadserverBidAdapter.js +7 -7
- package/modules/smartxBidAdapter.js +72 -72
- package/modules/smartyadsBidAdapter.js +2 -2
- package/modules/smilewantedBidAdapter.js +6 -6
- package/modules/sonobiAnalyticsAdapter.js +23 -23
- package/modules/sortableAnalyticsAdapter.js +5 -5
- package/modules/sortableBidAdapter.js +28 -28
- package/modules/sovrnAnalyticsAdapter.js +5 -5
- package/modules/sovrnBidAdapter.js +22 -22
- package/modules/spotxBidAdapter.js +97 -83
- package/modules/sspBCBidAdapter.js +216 -21
- package/modules/sspBCBidAdapter.md +1 -1
- package/modules/staqAnalyticsAdapter.js +9 -9
- package/modules/stroeerCoreBidAdapter.js +16 -16
- package/modules/sublimeBidAdapter.js +6 -6
- package/modules/talkadsBidAdapter.js +129 -0
- package/modules/talkadsBidAdapter.md +60 -0
- package/modules/tapadIdSystem.js +3 -3
- package/modules/tappxBidAdapter.js +63 -64
- package/modules/teadsBidAdapter.js +20 -20
- package/modules/telariaBidAdapter.js +17 -17
- package/modules/temedyaBidAdapter.js +4 -4
- package/modules/terceptAnalyticsAdapter.js +4 -4
- package/modules/theAdxBidAdapter.js +16 -16
- package/modules/timeoutRtdProvider.js +15 -15
- package/modules/tpmnBidAdapter.js +3 -3
- package/modules/trionBidAdapter.js +15 -15
- package/modules/tripleliftBidAdapter.js +27 -24
- package/modules/truereachBidAdapter.js +4 -4
- package/modules/trustxBidAdapter.js +22 -18
- package/modules/ucfunnelBidAdapter.js +3 -3
- package/modules/uid2IdSystem.js +6 -6
- package/modules/underdogmediaBidAdapter.js +4 -4
- package/modules/unicornBidAdapter.js +15 -15
- package/modules/unifiedIdSystem.js +4 -4
- package/modules/unrulyBidAdapter.js +16 -16
- package/modules/userId/eids.js +9 -9
- package/modules/userId/index.js +37 -35
- package/modules/validationFpdModule/index.js +15 -15
- package/modules/vdoaiBidAdapter.js +2 -2
- package/modules/verizonMediaIdSystem.js +5 -5
- package/modules/vidazooBidAdapter.js +5 -5
- package/modules/videobyteBidAdapter.js +24 -24
- package/modules/videoreachBidAdapter.js +7 -7
- package/modules/vidoomyBidAdapter.js +105 -22
- package/modules/viewdeosDXBidAdapter.js +17 -17
- package/modules/visxBidAdapter.js +21 -29
- package/modules/voxBidAdapter.js +7 -7
- package/modules/vuukleBidAdapter.js +2 -2
- package/modules/waardexBidAdapter.js +26 -26
- package/modules/weboramaRtdProvider.js +174 -0
- package/modules/weboramaRtdProvider.md +70 -0
- package/modules/winrBidAdapter.js +27 -27
- package/modules/wipesBidAdapter.js +2 -2
- package/modules/yahoosspBidAdapter.js +637 -0
- package/modules/yahoosspBidAdapter.md +795 -0
- package/modules/yieldlabBidAdapter.js +57 -12
- package/modules/yieldlabBidAdapter.md +16 -1
- package/modules/yieldliftBidAdapter.js +9 -9
- package/modules/yieldmoBidAdapter.js +64 -50
- package/modules/yieldoneAnalyticsAdapter.js +6 -6
- package/modules/yieldoneBidAdapter.js +11 -11
- package/modules/yuktamediaAnalyticsAdapter.js +15 -15
- package/modules/zeotapIdPlusIdSystem.js +2 -2
- package/modules/zetaBidAdapter.js +6 -6
- package/modules/zeta_global_sspBidAdapter.js +14 -14
- package/package.json +1 -1
- package/src/AnalyticsAdapter.js +6 -6
- package/src/Renderer.js +10 -8
- package/src/adapterManager.js +45 -42
- package/src/adloader.js +6 -6
- package/src/ajax.js +8 -9
- package/src/auction.js +26 -23
- package/src/bidfactory.js +2 -2
- package/src/config.js +52 -50
- package/src/cpmBucketManager.js +2 -2
- package/src/prebid.js +85 -81
- package/src/storageManager.js +5 -5
- package/src/targeting.js +25 -26
- package/src/userSync.js +35 -22
- package/src/videoCache.js +2 -2
- package/test/.eslintrc.js +2 -1
- package/test/spec/modules/adfBidAdapter_spec.js +55 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
- package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
- package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
- package/test/spec/modules/afpBidAdapter_spec.js +306 -0
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
- package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
- package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
- package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
- package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
- package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
- package/test/spec/modules/gridBidAdapter_spec.js +38 -2
- package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
- package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
- package/test/spec/modules/iasRtdProvider_spec.js +71 -6
- package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
- package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
- package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
- package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
- package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
- package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
- package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
- package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
- package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
- package/test/spec/modules/publinkIdSystem_spec.js +42 -12
- package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
- package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
- package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
- package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
- package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
- package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
- package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
- package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
- package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
- package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
- package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
- package/test/spec/modules/visxBidAdapter_spec.js +48 -4
- package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
- package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
- package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
- package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
- package/test/spec/unit/pbjs_api_spec.js +4 -0
- package/test/spec/userSync_spec.js +30 -2
- package/modules/turktelekomBidAdapter.md +0 -49
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
import { submodule } from '../src/hook.js';
|
|
20
20
|
import { ajaxBuilder } from '../src/ajax.js';
|
|
21
|
-
import
|
|
21
|
+
import { isGptPubadsDefined, timestamp, generateUUID, logError } from '../src/utils.js';
|
|
22
22
|
import find from 'core-js-pure/features/array/find.js';
|
|
23
23
|
|
|
24
24
|
/** @type {Object} */
|
|
@@ -52,7 +52,7 @@ function handleAdMessage(e) {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
if (data.type === MessageType.IMPRESSION_REQUEST) {
|
|
55
|
-
if (
|
|
55
|
+
if (isGptPubadsDefined()) {
|
|
56
56
|
// 1. Find the last iframed window before window.top where the tracker was injected
|
|
57
57
|
// (the tracker could be injected in nested iframes)
|
|
58
58
|
const adWin = getTopIFrameWin(e.source);
|
|
@@ -65,7 +65,7 @@ function handleAdMessage(e) {
|
|
|
65
65
|
adDeliveryId = adSlot.getTargeting('RSDK_ADID');
|
|
66
66
|
adDeliveryId = adDeliveryId.length
|
|
67
67
|
? adDeliveryId[0]
|
|
68
|
-
: `${
|
|
68
|
+
: `${timestamp()}-${generateUUID()}`;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -136,7 +136,7 @@ export function getTopIFrameWin(win, topWin) {
|
|
|
136
136
|
* @return {Object[]} slot GoogleTag slots
|
|
137
137
|
*/
|
|
138
138
|
function getAllSlots() {
|
|
139
|
-
return
|
|
139
|
+
return isGptPubadsDefined() && window.googletag.pubads().getSlots();
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
/**
|
|
@@ -246,7 +246,7 @@ function getReconciliationData(adUnitsCodes) {
|
|
|
246
246
|
|
|
247
247
|
const adSlot = getSlotByCode(adUnitCode);
|
|
248
248
|
const adUnitId = adSlot ? adSlot.getAdUnitPath() : adUnitCode;
|
|
249
|
-
const adDeliveryId = `${
|
|
249
|
+
const adDeliveryId = `${timestamp()}-${generateUUID()}`;
|
|
250
250
|
|
|
251
251
|
dataToReturn[adUnitCode] = {
|
|
252
252
|
RSDK_AUID: adUnitId,
|
|
@@ -287,7 +287,7 @@ function init(moduleConfig) {
|
|
|
287
287
|
_moduleParams = Object.assign({}, DEFAULT_PARAMS, params);
|
|
288
288
|
initListeners();
|
|
289
289
|
} else {
|
|
290
|
-
|
|
290
|
+
logError('missing params for Reconciliation provider');
|
|
291
291
|
}
|
|
292
292
|
return true;
|
|
293
293
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { deepAccess, logWarn, getBidIdParameter, parseQueryStringParameters, triggerPixel, generateUUID, isArray } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
4
4
|
import { Renderer } from '../src/Renderer.js';
|
|
@@ -6,26 +6,26 @@ import { getStorageManager } from '../src/storageManager.js';
|
|
|
6
6
|
|
|
7
7
|
const BIDDER_CODE = 'relaido';
|
|
8
8
|
const BIDDER_DOMAIN = 'api.relaido.jp';
|
|
9
|
-
const ADAPTER_VERSION = '1.0.
|
|
9
|
+
const ADAPTER_VERSION = '1.0.6';
|
|
10
10
|
const DEFAULT_TTL = 300;
|
|
11
11
|
const UUID_KEY = 'relaido_uuid';
|
|
12
12
|
|
|
13
13
|
const storage = getStorageManager();
|
|
14
14
|
|
|
15
15
|
function isBidRequestValid(bid) {
|
|
16
|
-
if (!
|
|
17
|
-
|
|
16
|
+
if (!deepAccess(bid, 'params.placementId')) {
|
|
17
|
+
logWarn('placementId param is reqeuired.');
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
if (hasVideoMediaType(bid) && isVideoValid(bid)) {
|
|
21
21
|
return true;
|
|
22
22
|
} else {
|
|
23
|
-
|
|
23
|
+
logWarn('Invalid mediaType video.');
|
|
24
24
|
}
|
|
25
25
|
if (hasBannerMediaType(bid) && isBannerValid(bid)) {
|
|
26
26
|
return true;
|
|
27
27
|
} else {
|
|
28
|
-
|
|
28
|
+
logWarn('Invalid mediaType banner.');
|
|
29
29
|
}
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
@@ -35,7 +35,7 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
35
35
|
|
|
36
36
|
for (let i = 0; i < validBidRequests.length; i++) {
|
|
37
37
|
const bidRequest = validBidRequests[i];
|
|
38
|
-
const placementId =
|
|
38
|
+
const placementId = getBidIdParameter('placementId', bidRequest.params);
|
|
39
39
|
const bidDomain = bidRequest.params.domain || BIDDER_DOMAIN;
|
|
40
40
|
const bidUrl = `https://${bidDomain}/bid/v1/prebid/${placementId}`;
|
|
41
41
|
const uuid = getUuid();
|
|
@@ -44,12 +44,12 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
44
44
|
let height = 0;
|
|
45
45
|
|
|
46
46
|
if (hasVideoMediaType(bidRequest) && isVideoValid(bidRequest)) {
|
|
47
|
-
const playerSize = getValidSizes(
|
|
47
|
+
const playerSize = getValidSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize'));
|
|
48
48
|
width = playerSize[0][0];
|
|
49
49
|
height = playerSize[0][1];
|
|
50
50
|
mediaType = VIDEO;
|
|
51
51
|
} else if (hasBannerMediaType(bidRequest) && isBannerValid(bidRequest)) {
|
|
52
|
-
const sizes = getValidSizes(
|
|
52
|
+
const sizes = getValidSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'));
|
|
53
53
|
width = sizes[0][0];
|
|
54
54
|
height = sizes[0][1];
|
|
55
55
|
mediaType = BANNER;
|
|
@@ -68,9 +68,15 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
68
68
|
media_type: mediaType,
|
|
69
69
|
uuid: uuid,
|
|
70
70
|
width: width,
|
|
71
|
-
height: height
|
|
71
|
+
height: height,
|
|
72
|
+
pv: '$prebid.version$'
|
|
72
73
|
};
|
|
73
74
|
|
|
75
|
+
const imuid = deepAccess(bidRequest, 'userId.imuid');
|
|
76
|
+
if (imuid) {
|
|
77
|
+
payload.imuid = imuid;
|
|
78
|
+
}
|
|
79
|
+
|
|
74
80
|
// It may not be encoded, so add it at the end of the payload
|
|
75
81
|
payload.ref = bidderRequest.refererInfo.referer;
|
|
76
82
|
|
|
@@ -136,7 +142,7 @@ function getUserSyncs(syncOptions, serverResponses) {
|
|
|
136
142
|
}
|
|
137
143
|
let syncUrl = `https://${BIDDER_DOMAIN}/tr/v1/prebid/sync.html`;
|
|
138
144
|
if (serverResponses.length > 0) {
|
|
139
|
-
syncUrl =
|
|
145
|
+
syncUrl = deepAccess(serverResponses, '0.body.syncUrl') || syncUrl;
|
|
140
146
|
}
|
|
141
147
|
return [{
|
|
142
148
|
type: 'iframe',
|
|
@@ -145,34 +151,34 @@ function getUserSyncs(syncOptions, serverResponses) {
|
|
|
145
151
|
}
|
|
146
152
|
|
|
147
153
|
function onBidWon(bid) {
|
|
148
|
-
let query =
|
|
149
|
-
placement_id:
|
|
150
|
-
creative_id:
|
|
151
|
-
price:
|
|
152
|
-
auction_id:
|
|
153
|
-
bid_id:
|
|
154
|
-
ad_id:
|
|
155
|
-
ad_unit_code:
|
|
154
|
+
let query = parseQueryStringParameters({
|
|
155
|
+
placement_id: deepAccess(bid, 'params.0.placementId'),
|
|
156
|
+
creative_id: deepAccess(bid, 'creativeId'),
|
|
157
|
+
price: deepAccess(bid, 'cpm'),
|
|
158
|
+
auction_id: deepAccess(bid, 'auctionId'),
|
|
159
|
+
bid_id: deepAccess(bid, 'requestId'),
|
|
160
|
+
ad_id: deepAccess(bid, 'adId'),
|
|
161
|
+
ad_unit_code: deepAccess(bid, 'adUnitCode'),
|
|
156
162
|
ref: window.location.href,
|
|
157
163
|
}).replace(/\&$/, '');
|
|
158
|
-
const bidDomain =
|
|
164
|
+
const bidDomain = deepAccess(bid, 'params.0.domain') || BIDDER_DOMAIN;
|
|
159
165
|
const burl = `https://${bidDomain}/tr/v1/prebid/win.gif?${query}`;
|
|
160
|
-
|
|
166
|
+
triggerPixel(burl);
|
|
161
167
|
}
|
|
162
168
|
|
|
163
169
|
function onTimeout(data) {
|
|
164
|
-
let query =
|
|
165
|
-
placement_id:
|
|
166
|
-
timeout:
|
|
167
|
-
auction_id:
|
|
168
|
-
bid_id:
|
|
169
|
-
ad_unit_code:
|
|
170
|
+
let query = parseQueryStringParameters({
|
|
171
|
+
placement_id: deepAccess(data, '0.params.0.placementId'),
|
|
172
|
+
timeout: deepAccess(data, '0.timeout'),
|
|
173
|
+
auction_id: deepAccess(data, '0.auctionId'),
|
|
174
|
+
bid_id: deepAccess(data, '0.bidId'),
|
|
175
|
+
ad_unit_code: deepAccess(data, '0.adUnitCode'),
|
|
170
176
|
version: ADAPTER_VERSION,
|
|
171
177
|
ref: window.location.href,
|
|
172
178
|
}).replace(/\&$/, '');
|
|
173
|
-
const bidDomain =
|
|
179
|
+
const bidDomain = deepAccess(data, '0.params.0.domain') || BIDDER_DOMAIN;
|
|
174
180
|
const timeoutUrl = `https://${bidDomain}/tr/v1/prebid/timeout.gif?${query}`;
|
|
175
|
-
|
|
181
|
+
triggerPixel(timeoutUrl);
|
|
176
182
|
}
|
|
177
183
|
|
|
178
184
|
function createPlayerTag(playerUrl) {
|
|
@@ -199,7 +205,7 @@ function newRenderer(bidId, playerUrl) {
|
|
|
199
205
|
try {
|
|
200
206
|
renderer.setRender(outstreamRender);
|
|
201
207
|
} catch (err) {
|
|
202
|
-
|
|
208
|
+
logWarn('renderer.setRender Error', err);
|
|
203
209
|
}
|
|
204
210
|
return renderer;
|
|
205
211
|
}
|
|
@@ -220,7 +226,7 @@ function isBannerValid(bid) {
|
|
|
220
226
|
if (!isMobile()) {
|
|
221
227
|
return false;
|
|
222
228
|
}
|
|
223
|
-
const sizes = getValidSizes(
|
|
229
|
+
const sizes = getValidSizes(deepAccess(bid, 'mediaTypes.banner.sizes'));
|
|
224
230
|
if (sizes.length > 0) {
|
|
225
231
|
return true;
|
|
226
232
|
}
|
|
@@ -228,9 +234,9 @@ function isBannerValid(bid) {
|
|
|
228
234
|
}
|
|
229
235
|
|
|
230
236
|
function isVideoValid(bid) {
|
|
231
|
-
const playerSize = getValidSizes(
|
|
237
|
+
const playerSize = getValidSizes(deepAccess(bid, 'mediaTypes.video.playerSize'));
|
|
232
238
|
if (playerSize.length > 0) {
|
|
233
|
-
const context =
|
|
239
|
+
const context = deepAccess(bid, 'mediaTypes.video.context');
|
|
234
240
|
if (context && context === 'outstream') {
|
|
235
241
|
return true;
|
|
236
242
|
}
|
|
@@ -241,7 +247,7 @@ function isVideoValid(bid) {
|
|
|
241
247
|
function getUuid() {
|
|
242
248
|
const id = storage.getCookie(UUID_KEY)
|
|
243
249
|
if (id) return id;
|
|
244
|
-
const newId =
|
|
250
|
+
const newId = generateUUID();
|
|
245
251
|
storage.setCookie(UUID_KEY, newId);
|
|
246
252
|
return newId;
|
|
247
253
|
}
|
|
@@ -255,18 +261,18 @@ export function isMobile() {
|
|
|
255
261
|
}
|
|
256
262
|
|
|
257
263
|
function hasBannerMediaType(bid) {
|
|
258
|
-
return !!
|
|
264
|
+
return !!deepAccess(bid, 'mediaTypes.banner');
|
|
259
265
|
}
|
|
260
266
|
|
|
261
267
|
function hasVideoMediaType(bid) {
|
|
262
|
-
return !!
|
|
268
|
+
return !!deepAccess(bid, 'mediaTypes.video');
|
|
263
269
|
}
|
|
264
270
|
|
|
265
271
|
function getValidSizes(sizes) {
|
|
266
272
|
let result = [];
|
|
267
|
-
if (sizes &&
|
|
273
|
+
if (sizes && isArray(sizes) && sizes.length > 0) {
|
|
268
274
|
for (let i = 0; i < sizes.length; i++) {
|
|
269
|
-
if (
|
|
275
|
+
if (isArray(sizes[i]) && sizes[i].length == 2) {
|
|
270
276
|
const width = sizes[i][0];
|
|
271
277
|
const height = sizes[i][1];
|
|
272
278
|
if (width == 1 && height == 1) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
import
|
|
2
|
+
import { timestamp, deepAccess, getOrigin } from '../src/utils.js';
|
|
3
3
|
import { config } from '../src/config.js';
|
|
4
4
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
|
-
import {getOrigin} from '../src/utils.js';
|
|
6
5
|
const BIDDER_CODE = 'resetdigital';
|
|
7
6
|
|
|
8
7
|
export const spec = {
|
|
@@ -20,7 +19,7 @@ export const spec = {
|
|
|
20
19
|
? config.getConfig('userSync').syncsPerBidder : 5
|
|
21
20
|
|
|
22
21
|
const payload = {
|
|
23
|
-
start_time:
|
|
22
|
+
start_time: timestamp(),
|
|
24
23
|
language: window.navigator.userLanguage || window.navigator.language,
|
|
25
24
|
site: {
|
|
26
25
|
domain: getOrigin(),
|
|
@@ -51,7 +50,7 @@ export const spec = {
|
|
|
51
50
|
imp_id: req.transactionId,
|
|
52
51
|
sizes: req.sizes,
|
|
53
52
|
force_bid: req.params.forceBid,
|
|
54
|
-
media_types:
|
|
53
|
+
media_types: deepAccess(req, 'mediaTypes')
|
|
55
54
|
});
|
|
56
55
|
}
|
|
57
56
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
5
|
import { BANNER, NATIVE } from '../src/mediaTypes.js';
|
|
6
|
-
import
|
|
6
|
+
import { triggerPixel, isFn, deepAccess, getAdUnitSizes, parseGPTSingleSizeArrayToRtbSize, _map } from '../src/utils.js';
|
|
7
7
|
|
|
8
8
|
const BIDDER_CODE = 'revcontent';
|
|
9
9
|
const NATIVE_PARAMS = {
|
|
@@ -160,7 +160,7 @@ export const spec = {
|
|
|
160
160
|
},
|
|
161
161
|
onBidWon: function (bid) {
|
|
162
162
|
if (bid.nurl) {
|
|
163
|
-
|
|
163
|
+
triggerPixel(bid.nurl);
|
|
164
164
|
}
|
|
165
165
|
return true;
|
|
166
166
|
}
|
|
@@ -215,14 +215,14 @@ function extractHostname(url) {
|
|
|
215
215
|
|
|
216
216
|
function buildImp(bid, id) {
|
|
217
217
|
let bidfloor;
|
|
218
|
-
if (
|
|
218
|
+
if (isFn(bid.getFloor)) {
|
|
219
219
|
bidfloor = bid.getFloor({
|
|
220
220
|
currency: 'USD',
|
|
221
221
|
mediaType: '*',
|
|
222
222
|
size: '*'
|
|
223
223
|
}).floor;
|
|
224
224
|
} else {
|
|
225
|
-
bidfloor =
|
|
225
|
+
bidfloor = deepAccess(bid, `params.bidfloor`) || 0.1;
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
let imp = {
|
|
@@ -236,17 +236,17 @@ function buildImp(bid, id) {
|
|
|
236
236
|
secure: '1'
|
|
237
237
|
};
|
|
238
238
|
|
|
239
|
-
let bannerReq =
|
|
240
|
-
let nativeReq =
|
|
239
|
+
let bannerReq = deepAccess(bid, `mediaTypes.banner`);
|
|
240
|
+
let nativeReq = deepAccess(bid, `mediaTypes.native`);
|
|
241
241
|
if (bannerReq) {
|
|
242
|
-
let sizes =
|
|
242
|
+
let sizes = getAdUnitSizes(bid);
|
|
243
243
|
imp.banner = {
|
|
244
244
|
w: sizes[0][0],
|
|
245
245
|
h: sizes[0][1],
|
|
246
|
-
format: sizes.map(wh =>
|
|
246
|
+
format: sizes.map(wh => parseGPTSingleSizeArrayToRtbSize(wh)),
|
|
247
247
|
}
|
|
248
248
|
} else if (nativeReq) {
|
|
249
|
-
const assets =
|
|
249
|
+
const assets = _map(bid.nativeParams, (bidParams, key) => {
|
|
250
250
|
const props = NATIVE_PARAMS[key];
|
|
251
251
|
const asset = {
|
|
252
252
|
required: bidParams.required & 1
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
|
-
import
|
|
4
|
+
import { deepAccess, getDNT, parseSizesInput, isArray } from '../src/utils.js';
|
|
4
5
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
6
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
6
7
|
|
|
@@ -41,13 +42,13 @@ function RhythmOneBidAdapter() {
|
|
|
41
42
|
impObj.bidfloor = 0;
|
|
42
43
|
impObj.secure = isSecure;
|
|
43
44
|
|
|
44
|
-
if (
|
|
45
|
+
if (deepAccess(BRs[i], 'mediaTypes.banner') || deepAccess(BRs[i], 'mediaType') === 'banner') {
|
|
45
46
|
let banner = frameBanner(BRs[i]);
|
|
46
47
|
if (banner) {
|
|
47
48
|
impObj.banner = banner;
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
|
-
if (
|
|
51
|
+
if (deepAccess(BRs[i], 'mediaTypes.video') || deepAccess(BRs[i], 'mediaType') === 'video') {
|
|
51
52
|
impObj.video = frameVideo(BRs[i]);
|
|
52
53
|
}
|
|
53
54
|
if (!(impObj.banner || impObj.video)) {
|
|
@@ -85,7 +86,7 @@ function RhythmOneBidAdapter() {
|
|
|
85
86
|
return {
|
|
86
87
|
ua: navigator.userAgent,
|
|
87
88
|
ip: '', // Empty Ip string is required, server gets the ip from HTTP header
|
|
88
|
-
dnt:
|
|
89
|
+
dnt: getDNT() ? 1 : 0,
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
|
|
@@ -105,7 +106,7 @@ function RhythmOneBidAdapter() {
|
|
|
105
106
|
if (adUnit.mediaTypes && adUnit.mediaTypes.banner) {
|
|
106
107
|
sizeList = adUnit.mediaTypes.banner.sizes;
|
|
107
108
|
}
|
|
108
|
-
var sizeStringList =
|
|
109
|
+
var sizeStringList = parseSizesInput(sizeList);
|
|
109
110
|
var format = [];
|
|
110
111
|
sizeStringList.forEach(function(size) {
|
|
111
112
|
if (size) {
|
|
@@ -129,9 +130,9 @@ function RhythmOneBidAdapter() {
|
|
|
129
130
|
|
|
130
131
|
function frameVideo(bid) {
|
|
131
132
|
var size = [];
|
|
132
|
-
if (
|
|
133
|
+
if (deepAccess(bid, 'mediaTypes.video.playerSize')) {
|
|
133
134
|
var dimensionSet = bid.mediaTypes.video.playerSize;
|
|
134
|
-
if (
|
|
135
|
+
if (isArray(bid.mediaTypes.video.playerSize[0])) {
|
|
135
136
|
dimensionSet = bid.mediaTypes.video.playerSize[0];
|
|
136
137
|
}
|
|
137
138
|
var validSize = getValidSizeSet(dimensionSet)
|
|
@@ -140,15 +141,15 @@ function RhythmOneBidAdapter() {
|
|
|
140
141
|
}
|
|
141
142
|
}
|
|
142
143
|
return {
|
|
143
|
-
mimes:
|
|
144
|
-
protocols:
|
|
144
|
+
mimes: deepAccess(bid, 'mediaTypes.video.mimes') || SUPPORTED_VIDEO_MIMES,
|
|
145
|
+
protocols: deepAccess(bid, 'mediaTypes.video.protocols') || SUPPORTED_VIDEO_PROTOCOLS,
|
|
145
146
|
w: size[0],
|
|
146
147
|
h: size[1],
|
|
147
|
-
startdelay:
|
|
148
|
-
skip:
|
|
149
|
-
playbackmethod:
|
|
150
|
-
delivery:
|
|
151
|
-
api:
|
|
148
|
+
startdelay: deepAccess(bid, 'mediaTypes.video.startdelay') || 0,
|
|
149
|
+
skip: deepAccess(bid, 'mediaTypes.video.skip') || 0,
|
|
150
|
+
playbackmethod: deepAccess(bid, 'mediaTypes.video.playbackmethod') || SUPPORTED_VIDEO_PLAYBACK_METHODS,
|
|
151
|
+
delivery: deepAccess(bid, 'mediaTypes.video.delivery') || SUPPORTED_VIDEO_DELIVERY,
|
|
152
|
+
api: deepAccess(bid, 'mediaTypes.video.api') || SUPPORTED_VIDEO_API,
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
|
|
@@ -170,14 +171,14 @@ function RhythmOneBidAdapter() {
|
|
|
170
171
|
device: frameDevice(),
|
|
171
172
|
user: {
|
|
172
173
|
ext: {
|
|
173
|
-
consent:
|
|
174
|
+
consent: deepAccess(bidderRequest, 'gdprConsent.gdprApplies') ? bidderRequest.gdprConsent.consentString : ''
|
|
174
175
|
}
|
|
175
176
|
},
|
|
176
177
|
at: 1,
|
|
177
178
|
tmax: 1000,
|
|
178
179
|
regs: {
|
|
179
180
|
ext: {
|
|
180
|
-
gdpr:
|
|
181
|
+
gdpr: deepAccess(bidderRequest, 'gdprConsent.gdprApplies') ? Boolean(bidderRequest.gdprConsent.gdprApplies & 1) : false
|
|
181
182
|
}
|
|
182
183
|
}
|
|
183
184
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { isEmpty, deepAccess, isStr } from '../src/utils.js';
|
|
1
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
3
|
import {config} from '../src/config.js';
|
|
3
4
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
4
|
-
import * as utils from '../src/utils.js';
|
|
5
5
|
import { Renderer } from '../src/Renderer.js';
|
|
6
6
|
|
|
7
7
|
const BIDDER_CODE = 'richaudience';
|
|
@@ -52,7 +52,7 @@ export const spec = {
|
|
|
52
52
|
videoData: raiGetVideoInfo(bid),
|
|
53
53
|
scr_rsl: raiGetResolution(),
|
|
54
54
|
cpuc: (typeof window.navigator != 'undefined' ? window.navigator.hardwareConcurrency : null),
|
|
55
|
-
kws: (!
|
|
55
|
+
kws: (!isEmpty(bid.params.keywords) ? bid.params.keywords : null)
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
REFERER = (typeof bidderRequest.refererInfo.referer != 'undefined' ? encodeURIComponent(bidderRequest.refererInfo.referer) : null)
|
|
@@ -220,19 +220,19 @@ function raiSetEids(bid) {
|
|
|
220
220
|
let eids = [];
|
|
221
221
|
|
|
222
222
|
if (bid && bid.userId) {
|
|
223
|
-
raiSetUserId(bid, eids, 'id5-sync.com',
|
|
224
|
-
raiSetUserId(bid, eids, 'pubcommon',
|
|
225
|
-
raiSetUserId(bid, eids, 'criteo.com',
|
|
226
|
-
raiSetUserId(bid, eids, 'liveramp.com',
|
|
227
|
-
raiSetUserId(bid, eids, 'liveintent.com',
|
|
228
|
-
raiSetUserId(bid, eids, 'adserver.org',
|
|
223
|
+
raiSetUserId(bid, eids, 'id5-sync.com', deepAccess(bid, `userId.id5id.uid`));
|
|
224
|
+
raiSetUserId(bid, eids, 'pubcommon', deepAccess(bid, `userId.pubcid`));
|
|
225
|
+
raiSetUserId(bid, eids, 'criteo.com', deepAccess(bid, `userId.criteoId`));
|
|
226
|
+
raiSetUserId(bid, eids, 'liveramp.com', deepAccess(bid, `userId.idl_env`));
|
|
227
|
+
raiSetUserId(bid, eids, 'liveintent.com', deepAccess(bid, `userId.lipb.lipbid`));
|
|
228
|
+
raiSetUserId(bid, eids, 'adserver.org', deepAccess(bid, `userId.tdid`));
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
return eids;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
function raiSetUserId(bid, eids, source, value) {
|
|
235
|
-
if (
|
|
235
|
+
if (isStr(value)) {
|
|
236
236
|
eids.push({
|
|
237
237
|
userId: value,
|
|
238
238
|
source: source
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { logWarn, isArray, isFn, deepAccess, isEmpty, contains, timestamp, getBidIdParameter } from '../src/utils.js';
|
|
1
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
|
-
import * as utils from '../src/utils.js';
|
|
3
3
|
import {VIDEO} from '../src/mediaTypes.js';
|
|
4
4
|
import {config} from '../src/config.js';
|
|
5
5
|
|
|
@@ -25,12 +25,12 @@ export const spec = {
|
|
|
25
25
|
supportedMediaTypes: SUPPORTED_AD_TYPES,
|
|
26
26
|
isBidRequestValid: function(bidRequest) {
|
|
27
27
|
if (!bidRequest.params) {
|
|
28
|
-
|
|
28
|
+
logWarn('no params have been set to Rise adapter');
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
if (!bidRequest.params.org) {
|
|
33
|
-
|
|
33
|
+
logWarn('org is a mandatory param for Rise adapter');
|
|
34
34
|
return false;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -82,7 +82,7 @@ export const spec = {
|
|
|
82
82
|
url: response.body.userSyncURL
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
if (syncOptions.pixelEnabled &&
|
|
85
|
+
if (syncOptions.pixelEnabled && isArray(response.body.userSyncPixels)) {
|
|
86
86
|
const pixels = response.body.userSyncPixels.map(pixel => {
|
|
87
87
|
return {
|
|
88
88
|
type: 'image',
|
|
@@ -104,7 +104,7 @@ registerBidder(spec);
|
|
|
104
104
|
* @returns {Number}
|
|
105
105
|
*/
|
|
106
106
|
function getFloor(bid) {
|
|
107
|
-
if (!
|
|
107
|
+
if (!isFn(bid.getFloor)) {
|
|
108
108
|
return 0;
|
|
109
109
|
}
|
|
110
110
|
let floorResult = bid.getFloor({
|
|
@@ -137,7 +137,7 @@ function buildVideoRequest(bid, bidderRequest) {
|
|
|
137
137
|
* @returns {Array}
|
|
138
138
|
*/
|
|
139
139
|
function getSizes(bid) {
|
|
140
|
-
if (
|
|
140
|
+
if (deepAccess(bid, 'mediaTypes.video.sizes')) {
|
|
141
141
|
return bid.mediaTypes.video.sizes[0];
|
|
142
142
|
} else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {
|
|
143
143
|
return bid.sizes[0];
|
|
@@ -151,7 +151,7 @@ function getSizes(bid) {
|
|
|
151
151
|
* @returns {string}
|
|
152
152
|
*/
|
|
153
153
|
function getSupplyChain(schainObject) {
|
|
154
|
-
if (
|
|
154
|
+
if (isEmpty(schainObject)) {
|
|
155
155
|
return '';
|
|
156
156
|
}
|
|
157
157
|
let scStr = `${schainObject.ver},${schainObject.complete}`;
|
|
@@ -173,7 +173,7 @@ function getSupplyChain(schainObject) {
|
|
|
173
173
|
* @returns {string}
|
|
174
174
|
*/
|
|
175
175
|
function getEncodedValIfNotEmpty(val) {
|
|
176
|
-
return !
|
|
176
|
+
return !isEmpty(val) ? encodeURIComponent(val) : '';
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
/**
|
|
@@ -203,8 +203,8 @@ function isSyncMethodAllowed(syncRule, bidderCode) {
|
|
|
203
203
|
return false;
|
|
204
204
|
}
|
|
205
205
|
const isInclude = syncRule.filter === 'include';
|
|
206
|
-
const bidders =
|
|
207
|
-
return isInclude &&
|
|
206
|
+
const bidders = isArray(syncRule.bidders) ? syncRule.bidders : [bidderCode];
|
|
207
|
+
return isInclude && contains(bidders, bidderCode);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
/**
|
|
@@ -263,25 +263,25 @@ function generateParameters(bid, bidderRequest) {
|
|
|
263
263
|
wrapper_vendor: '$$PREBID_GLOBAL$$',
|
|
264
264
|
wrapper_version: '$prebid.version$',
|
|
265
265
|
adapter_version: ADAPTER_VERSION,
|
|
266
|
-
auction_start:
|
|
267
|
-
ad_unit_code:
|
|
266
|
+
auction_start: timestamp(),
|
|
267
|
+
ad_unit_code: getBidIdParameter('adUnitCode', bid),
|
|
268
268
|
tmax: timeout,
|
|
269
269
|
width: width,
|
|
270
270
|
height: height,
|
|
271
271
|
publisher_id: params.org,
|
|
272
272
|
floor_price: Math.max(getFloor(bid), params.floorPrice),
|
|
273
273
|
ua: navigator.userAgent,
|
|
274
|
-
bid_id:
|
|
275
|
-
bidder_request_id:
|
|
276
|
-
transaction_id:
|
|
277
|
-
session_id:
|
|
274
|
+
bid_id: getBidIdParameter('bidId', bid),
|
|
275
|
+
bidder_request_id: getBidIdParameter('bidderRequestId', bid),
|
|
276
|
+
transaction_id: getBidIdParameter('transactionId', bid),
|
|
277
|
+
session_id: getBidIdParameter('auctionId', bid),
|
|
278
278
|
publisher_name: domain,
|
|
279
279
|
site_domain: domain,
|
|
280
280
|
dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,
|
|
281
281
|
device_type: getDeviceType(navigator.userAgent)
|
|
282
282
|
};
|
|
283
283
|
|
|
284
|
-
const userIdsParam =
|
|
284
|
+
const userIdsParam = getBidIdParameter('userId', bid);
|
|
285
285
|
if (userIdsParam) {
|
|
286
286
|
requestParams.userIds = JSON.stringify(userIdsParam);
|
|
287
287
|
}
|
|
@@ -294,31 +294,31 @@ function generateParameters(bid, bidderRequest) {
|
|
|
294
294
|
requestParams.user_metadata = JSON.stringify(ortb2Metadata.user);
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
const playbackMethod =
|
|
297
|
+
const playbackMethod = deepAccess(bid, 'mediaTypes.video.playbackmethod');
|
|
298
298
|
if (playbackMethod) {
|
|
299
299
|
requestParams.playback_method = playbackMethod;
|
|
300
300
|
}
|
|
301
|
-
const placement =
|
|
301
|
+
const placement = deepAccess(bid, 'mediaTypes.video.placement');
|
|
302
302
|
if (placement) {
|
|
303
303
|
requestParams.placement = placement;
|
|
304
304
|
}
|
|
305
|
-
const pos =
|
|
305
|
+
const pos = deepAccess(bid, 'mediaTypes.video.pos');
|
|
306
306
|
if (pos) {
|
|
307
307
|
requestParams.pos = pos;
|
|
308
308
|
}
|
|
309
|
-
const minduration =
|
|
309
|
+
const minduration = deepAccess(bid, 'mediaTypes.video.minduration');
|
|
310
310
|
if (minduration) {
|
|
311
311
|
requestParams.min_duration = minduration;
|
|
312
312
|
}
|
|
313
|
-
const maxduration =
|
|
313
|
+
const maxduration = deepAccess(bid, 'mediaTypes.video.maxduration');
|
|
314
314
|
if (maxduration) {
|
|
315
315
|
requestParams.max_duration = maxduration;
|
|
316
316
|
}
|
|
317
|
-
const skip =
|
|
317
|
+
const skip = deepAccess(bid, 'mediaTypes.video.skip');
|
|
318
318
|
if (skip) {
|
|
319
319
|
requestParams.skip = skip;
|
|
320
320
|
}
|
|
321
|
-
const linearity =
|
|
321
|
+
const linearity = deepAccess(bid, 'mediaTypes.video.linearity');
|
|
322
322
|
if (linearity) {
|
|
323
323
|
requestParams.linearity = linearity;
|
|
324
324
|
}
|
|
@@ -352,8 +352,8 @@ function generateParameters(bid, bidderRequest) {
|
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
if (bidderRequest && bidderRequest.refererInfo) {
|
|
355
|
-
requestParams.referrer =
|
|
356
|
-
requestParams.page_url = config.getConfig('pageUrl') ||
|
|
355
|
+
requestParams.referrer = deepAccess(bidderRequest, 'refererInfo.referer');
|
|
356
|
+
requestParams.page_url = config.getConfig('pageUrl') || deepAccess(window, 'location.href');
|
|
357
357
|
}
|
|
358
358
|
|
|
359
359
|
return requestParams;
|
|
@@ -13,7 +13,7 @@ Module that connects to Rise's demand sources.
|
|
|
13
13
|
|
|
14
14
|
The Rise adapter requires setup and approval from the Rise. Please reach out to prebid-rise-engage@risecodes.com to create an Rise account.
|
|
15
15
|
|
|
16
|
-
The adapter supports Video(instream).
|
|
16
|
+
The adapter supports Video(instream).
|
|
17
17
|
|
|
18
18
|
# Bid Parameters
|
|
19
19
|
## Video
|
|
@@ -22,7 +22,6 @@ The adapter supports Video(instream). For the integration, Rise returns content
|
|
|
22
22
|
| ---- | ----- | ---- | ----------- | -------
|
|
23
23
|
| `org` | required | String | Rise publisher Id provided by your Rise representative | "56f91cd4d3e3660002000033"
|
|
24
24
|
| `floorPrice` | optional | Number | Minimum price in USD. Misuse of this parameter can impact revenue | 2.00
|
|
25
|
-
| `ifa` | optional | String | The ID for advertisers (also referred to as "IDFA") | "XXX-XXX"
|
|
26
25
|
| `placementId` | optional | String | A unique placement identifier | "12345678"
|
|
27
26
|
| `testMode` | optional | Boolean | This activates the test mode | false
|
|
28
27
|
|
|
@@ -43,7 +42,6 @@ var adUnits = [
|
|
|
43
42
|
params: {
|
|
44
43
|
org: '56f91cd4d3e3660002000033', // Required
|
|
45
44
|
floorPrice: 2.00, // Optional
|
|
46
|
-
ifa: 'XXX-XXX', // Optional
|
|
47
45
|
placementId: '12345678', // Optional
|
|
48
46
|
testMode: false // Optional
|
|
49
47
|
}
|