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
|
@@ -29,3 +29,111 @@ var adUnits = [
|
|
|
29
29
|
}]
|
|
30
30
|
},
|
|
31
31
|
```
|
|
32
|
+
|
|
33
|
+
## Native only Ad Unit
|
|
34
|
+
|
|
35
|
+
The Mediakeys adapter accepts two optional params for native requests. Please see the [OpenRTB Native Ads Specification](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf) for valid values.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
var adUnits = [
|
|
39
|
+
{
|
|
40
|
+
code: 'test',
|
|
41
|
+
mediaTypes: {
|
|
42
|
+
native: {
|
|
43
|
+
type: 'image',
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
bids: [{
|
|
47
|
+
bidder: 'mediakeys',
|
|
48
|
+
params: {
|
|
49
|
+
native: {
|
|
50
|
+
context: 1, // ORTB Native Context Type IDs. Default `1`.
|
|
51
|
+
plcmttype: 1, // ORTB Native Placement Type IDs. Default `1`.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}]
|
|
55
|
+
},
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Video only Ad Unit
|
|
59
|
+
|
|
60
|
+
The Mediakeys adapter accepts any valid openRTB 2.5 video property. Properties can be defined at the adUnit `mediaTypes.video` or `bid[].params` level.
|
|
61
|
+
|
|
62
|
+
### Outstream context
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
var adUnits = [
|
|
66
|
+
{
|
|
67
|
+
code: 'test',
|
|
68
|
+
mediaTypes: {
|
|
69
|
+
video: {
|
|
70
|
+
context: 'outstream',
|
|
71
|
+
playerSize: [300, 250],
|
|
72
|
+
// additional OpenRTB video params
|
|
73
|
+
// placement: 2,
|
|
74
|
+
// api: [1],
|
|
75
|
+
// …
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
renderer: {
|
|
79
|
+
url: 'https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js',
|
|
80
|
+
render: function (bid) {
|
|
81
|
+
var bidReqConfig = pbjs.adUnits.find(bidReq => bidReq.bidId === bid.impid);
|
|
82
|
+
|
|
83
|
+
if (bidReqConfig && bidReqConfig.mediaTypes && bidReqConfig.mediaTypes.video && bidReqConfig.mediaTypes.video.context === 'outstream') {
|
|
84
|
+
var adResponse = fetch(bid.vastUrl).then(resp => resp.text()).then(text => ({
|
|
85
|
+
ad: {
|
|
86
|
+
video: {
|
|
87
|
+
content: text,
|
|
88
|
+
player_width: bid.width || bidReqConfig.mediaTypes.video.playerSize[0],
|
|
89
|
+
player_height: bid.height || bidReqConfig.mediaTypes.video.playerSize[1],
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}))
|
|
93
|
+
|
|
94
|
+
adResponse.then((ad) => {
|
|
95
|
+
bid.renderer.push(() => {
|
|
96
|
+
ANOutstreamVideo.renderAd({
|
|
97
|
+
targetId: bid.adUnitCode,
|
|
98
|
+
adResponse: ad
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
bids: [{
|
|
106
|
+
bidder: 'mediakeys',
|
|
107
|
+
params: {
|
|
108
|
+
video: {
|
|
109
|
+
// additional OpenRTB video params. Will be merged with params defined at mediaTypes level
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}]
|
|
113
|
+
},
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Instream context
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
var adUnits = [
|
|
120
|
+
{
|
|
121
|
+
code: 'test',
|
|
122
|
+
mediaTypes: {
|
|
123
|
+
video: {
|
|
124
|
+
context: 'instream',
|
|
125
|
+
playerSize: [300, 250],
|
|
126
|
+
// additional OpenRTB video params
|
|
127
|
+
// placement: 2,
|
|
128
|
+
// api: [1],
|
|
129
|
+
// …
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
bids: [{
|
|
133
|
+
bidder: 'mediakeys',
|
|
134
|
+
params: {
|
|
135
|
+
// additional OpenRTB video params. Will be merged with params defined at mediaTypes level
|
|
136
|
+
}
|
|
137
|
+
}]
|
|
138
|
+
},
|
|
139
|
+
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { triggerPixel, deepAccess, getWindowTop, uniques, groupBy, isEmpty, _map, isPlainObject, logInfo, logError } from '../src/utils.js';
|
|
1
2
|
import adapter from '../src/AnalyticsAdapter.js';
|
|
2
3
|
import adapterManager from '../src/adapterManager.js';
|
|
3
4
|
import CONSTANTS from '../src/constants.json';
|
|
4
|
-
import * as utils from '../src/utils.js';
|
|
5
5
|
import { ajax } from '../src/ajax.js';
|
|
6
6
|
import { getRefererInfo } from '../src/refererDetection.js';
|
|
7
7
|
import { AUCTION_COMPLETED, AUCTION_IN_PROGRESS, getPriceGranularity } from '../src/auction.js';
|
|
@@ -42,17 +42,10 @@ const VALID_URL_KEY = ['canonical_url', 'og_url', 'twitter_url'];
|
|
|
42
42
|
const DEFAULT_URL_KEY = 'page';
|
|
43
43
|
|
|
44
44
|
const LOG_TYPE = {
|
|
45
|
-
AP: 'AP',
|
|
46
|
-
PR: 'PR',
|
|
47
45
|
APPR: 'APPR',
|
|
48
46
|
RA: 'RA'
|
|
49
47
|
};
|
|
50
48
|
|
|
51
|
-
const BATCHING = {
|
|
52
|
-
SINGLE: 'SINGLE',
|
|
53
|
-
MULTI: 'MULTI'
|
|
54
|
-
}
|
|
55
|
-
|
|
56
49
|
let auctions = {};
|
|
57
50
|
let config;
|
|
58
51
|
let pageDetails;
|
|
@@ -66,7 +59,6 @@ class ErrorLogger {
|
|
|
66
59
|
this.project = 'prebidanalytics';
|
|
67
60
|
this.dn = pageDetails.domain || '';
|
|
68
61
|
this.requrl = pageDetails.requrl || '';
|
|
69
|
-
this.event = this.event;
|
|
70
62
|
this.pbversion = PREBID_VERSION;
|
|
71
63
|
this.cid = config.cid || '';
|
|
72
64
|
this.rd = additionalData;
|
|
@@ -74,7 +66,7 @@ class ErrorLogger {
|
|
|
74
66
|
|
|
75
67
|
send() {
|
|
76
68
|
let url = EVENT_PIXEL_URL + '?' + formatQS(this);
|
|
77
|
-
|
|
69
|
+
triggerPixel(url);
|
|
78
70
|
}
|
|
79
71
|
}
|
|
80
72
|
|
|
@@ -89,18 +81,10 @@ class Configure {
|
|
|
89
81
|
this.gdprConsent = undefined;
|
|
90
82
|
this.gdprApplies = undefined;
|
|
91
83
|
this.uspConsent = undefined;
|
|
92
|
-
this.pixelWaitTime = 0;
|
|
93
|
-
this.apLoggingPct = 0;
|
|
94
|
-
this.prLoggingPct = 0;
|
|
95
|
-
this.batching = BATCHING.SINGLE;
|
|
96
84
|
this.shouldBeLogged = {};
|
|
97
85
|
this.mnetDebugConfig = '';
|
|
98
86
|
}
|
|
99
87
|
|
|
100
|
-
set publisherLper(plper) {
|
|
101
|
-
this.pubLper = plper;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
88
|
getLoggingData() {
|
|
105
89
|
return {
|
|
106
90
|
cid: this.cid,
|
|
@@ -139,24 +123,10 @@ class Configure {
|
|
|
139
123
|
if (!isNaN(parseInt(response.percentage, 10))) {
|
|
140
124
|
this.loggingPercent = response.percentage;
|
|
141
125
|
}
|
|
142
|
-
|
|
143
|
-
if (!isNaN(parseInt(response.pixelwaittime, 10))) {
|
|
144
|
-
this.pixelWaitTime = response.pixelwaittime;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (!isNaN(parseInt(response.aplper, 10))) {
|
|
148
|
-
this.apLoggingPct = response.aplper;
|
|
149
|
-
this.batching = BATCHING.MULTI;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (!isNaN(parseInt(response.prlper, 10))) {
|
|
153
|
-
this.prLoggingPct = response.prlper;
|
|
154
|
-
this.batching = BATCHING.MULTI;
|
|
155
|
-
}
|
|
156
126
|
}
|
|
157
127
|
|
|
158
128
|
overrideDomainLevelData(response) {
|
|
159
|
-
const domain =
|
|
129
|
+
const domain = deepAccess(response, 'domain.' + pageDetails.domain);
|
|
160
130
|
if (domain) {
|
|
161
131
|
this.setDataFromResponse(domain);
|
|
162
132
|
}
|
|
@@ -179,14 +149,14 @@ class Configure {
|
|
|
179
149
|
init() {
|
|
180
150
|
// Forces Logging % to 100%
|
|
181
151
|
let urlObj = URL.parseUrl(pageDetails.page);
|
|
182
|
-
if (
|
|
152
|
+
if (deepAccess(urlObj, 'search.medianet_test') || urlObj.hostname === 'localhost') {
|
|
183
153
|
this.loggingPercent = 100;
|
|
184
154
|
this.ajaxState = CONFIG_PASS;
|
|
185
155
|
this.debug = true;
|
|
186
156
|
return;
|
|
187
157
|
}
|
|
188
|
-
if (
|
|
189
|
-
this.mnetDebugConfig =
|
|
158
|
+
if (deepAccess(urlObj, 'search.mnet_setconfig')) {
|
|
159
|
+
this.mnetDebugConfig = deepAccess(urlObj, 'search.mnet_setconfig');
|
|
190
160
|
}
|
|
191
161
|
ajax(
|
|
192
162
|
this._configURL(),
|
|
@@ -231,7 +201,7 @@ class PageDetail {
|
|
|
231
201
|
|
|
232
202
|
_getAttributeFromSelector(selector, attribute) {
|
|
233
203
|
try {
|
|
234
|
-
let doc =
|
|
204
|
+
let doc = getWindowTop().document;
|
|
235
205
|
let element = doc.querySelector(selector);
|
|
236
206
|
if (element !== null && element[attribute]) {
|
|
237
207
|
return element[attribute];
|
|
@@ -240,7 +210,7 @@ class PageDetail {
|
|
|
240
210
|
}
|
|
241
211
|
|
|
242
212
|
_getAbsoluteUrl(url) {
|
|
243
|
-
let aTag =
|
|
213
|
+
let aTag = getWindowTop().document.createElement('a');
|
|
244
214
|
aTag.href = url;
|
|
245
215
|
|
|
246
216
|
return aTag.href;
|
|
@@ -268,18 +238,14 @@ class AdSlot {
|
|
|
268
238
|
this.context = context;
|
|
269
239
|
this.adext = adext;
|
|
270
240
|
this.logged = {};
|
|
271
|
-
this.logged[LOG_TYPE.PR] = false;
|
|
272
|
-
this.logged[LOG_TYPE.AP] = false;
|
|
273
|
-
this.logged[LOG_TYPE.APPR] = false;
|
|
274
241
|
this.targeting = undefined;
|
|
275
242
|
this.medianetPresent = 0;
|
|
276
243
|
}
|
|
277
244
|
|
|
278
245
|
getShouldBeLogged(logType) {
|
|
279
246
|
if (!config.shouldBeLogged.hasOwnProperty(logType)) {
|
|
280
|
-
config.shouldBeLogged[logType] = isSampled(
|
|
247
|
+
config.shouldBeLogged[logType] = isSampled();
|
|
281
248
|
}
|
|
282
|
-
config.shouldBeLogged[logType] = isSampled(logType);
|
|
283
249
|
return config.shouldBeLogged[logType];
|
|
284
250
|
}
|
|
285
251
|
|
|
@@ -343,7 +309,7 @@ class Bid {
|
|
|
343
309
|
bdp: this.cpm,
|
|
344
310
|
cbdp: this.dfpbd,
|
|
345
311
|
dfpbd: this.dfpbd,
|
|
346
|
-
szs: this.allMediaTypeSizes.
|
|
312
|
+
szs: this.allMediaTypeSizes.join('|'),
|
|
347
313
|
size: this.size,
|
|
348
314
|
mtype: this.mediaType,
|
|
349
315
|
dId: this.dealId,
|
|
@@ -392,8 +358,8 @@ class Auction {
|
|
|
392
358
|
flrdata: this._mergeFieldsToLog({
|
|
393
359
|
ln: this.floorData.location,
|
|
394
360
|
skp: this.floorData.skipped,
|
|
395
|
-
enfj:
|
|
396
|
-
enfd:
|
|
361
|
+
enfj: deepAccess(this.floorData, 'enforcements.enforceJS'),
|
|
362
|
+
enfd: deepAccess(this.floorData, 'enforcements.floorDeals'),
|
|
397
363
|
sr: this.floorData.skipRate,
|
|
398
364
|
fs: this.floorData.fetchStatus
|
|
399
365
|
}),
|
|
@@ -445,7 +411,7 @@ function auctionInitHandler({auctionId, adUnits, timeout, timestamp, bidderReque
|
|
|
445
411
|
auctions[auctionId].auctionInitTime = timestamp;
|
|
446
412
|
}
|
|
447
413
|
addAddSlots(auctionId, adUnits, timeout);
|
|
448
|
-
const floorData =
|
|
414
|
+
const floorData = deepAccess(bidderRequests, '0.bids.0.floorData');
|
|
449
415
|
if (floorData) {
|
|
450
416
|
auctions[auctionId].floorData = {...floorData};
|
|
451
417
|
}
|
|
@@ -453,10 +419,10 @@ function auctionInitHandler({auctionId, adUnits, timeout, timestamp, bidderReque
|
|
|
453
419
|
|
|
454
420
|
function addAddSlots(auctionId, adUnits, tmax) {
|
|
455
421
|
adUnits = adUnits || [];
|
|
456
|
-
const groupedAdUnits =
|
|
422
|
+
const groupedAdUnits = groupBy(adUnits, 'code');
|
|
457
423
|
Object.keys(groupedAdUnits).forEach((adUnitCode) => {
|
|
458
424
|
const adUnits = groupedAdUnits[adUnitCode];
|
|
459
|
-
const supplyAdCode =
|
|
425
|
+
const supplyAdCode = deepAccess(adUnits, '0.adUnitCode') || adUnitCode;
|
|
460
426
|
let context = '';
|
|
461
427
|
let adext = {};
|
|
462
428
|
|
|
@@ -464,21 +430,20 @@ function addAddSlots(auctionId, adUnits, tmax) {
|
|
|
464
430
|
const oSizes = {banner: [], video: []};
|
|
465
431
|
adUnits.forEach(({mediaTypes, sizes, ext}) => {
|
|
466
432
|
mediaTypes = mediaTypes || {};
|
|
467
|
-
adext = Object.assign(adext, ext ||
|
|
468
|
-
context =
|
|
433
|
+
adext = Object.assign(adext, ext || deepAccess(mediaTypes, 'banner.ext'));
|
|
434
|
+
context = deepAccess(mediaTypes, 'video.context') || context;
|
|
469
435
|
Object.keys(mediaTypes).forEach((mediaType) => mediaTypeMap[mediaType] = 1);
|
|
470
436
|
const sizeObject = _getSizes(mediaTypes, sizes);
|
|
471
437
|
sizeObject.banner.forEach(size => oSizes.banner.push(size));
|
|
472
438
|
sizeObject.video.forEach(size => oSizes.video.push(size));
|
|
473
439
|
});
|
|
474
440
|
|
|
475
|
-
adext =
|
|
476
|
-
oSizes.banner = oSizes.banner.filter(
|
|
477
|
-
oSizes.video = oSizes.video.filter(
|
|
478
|
-
oSizes.native = mediaTypeMap.native === 1 ? [[1, 1]] : [];
|
|
441
|
+
adext = isEmpty(adext) ? undefined : adext;
|
|
442
|
+
oSizes.banner = oSizes.banner.filter(uniques);
|
|
443
|
+
oSizes.video = oSizes.video.filter(uniques);
|
|
444
|
+
oSizes.native = mediaTypeMap.native === 1 ? [[1, 1].join('x')] : [];
|
|
479
445
|
const allMediaTypeSizes = [].concat(oSizes.banner, oSizes.native, oSizes.video);
|
|
480
446
|
const mediaTypes = Object.keys(mediaTypeMap).join('|');
|
|
481
|
-
|
|
482
447
|
auctions[auctionId].addSlot({adUnitCode, supplyAdCode, mediaTypes, allMediaTypeSizes, context, tmax, adext});
|
|
483
448
|
});
|
|
484
449
|
}
|
|
@@ -503,22 +468,26 @@ function bidRequestedHandler({ auctionId, auctionStart, bids, start, uspConsent,
|
|
|
503
468
|
const bidObj = new Bid(bidId, bidder, src, start, adUnitCode, mediaTypes && Object.keys(mediaTypes).join('|'), requestSizes);
|
|
504
469
|
auctions[auctionId].addBid(bidObj);
|
|
505
470
|
if (bidder === MEDIANET_BIDDER_CODE) {
|
|
506
|
-
bidObj.crid =
|
|
507
|
-
bidObj.pubcrid =
|
|
471
|
+
bidObj.crid = deepAccess(bid, 'params.crid');
|
|
472
|
+
bidObj.pubcrid = deepAccess(bid, 'params.crid');
|
|
508
473
|
auctions[auctionId].adSlots[adUnitCode].medianetPresent = 1;
|
|
509
474
|
}
|
|
510
475
|
});
|
|
511
476
|
}
|
|
512
477
|
|
|
513
478
|
function _getSizes(mediaTypes, sizes) {
|
|
514
|
-
const banner =
|
|
515
|
-
const native =
|
|
516
|
-
const playerSize =
|
|
479
|
+
const banner = deepAccess(mediaTypes, 'banner.sizes') || sizes || [];
|
|
480
|
+
const native = deepAccess(mediaTypes, 'native') ? [[1, 1]] : [];
|
|
481
|
+
const playerSize = deepAccess(mediaTypes, 'video.playerSize') || [];
|
|
517
482
|
let video = [];
|
|
518
483
|
if (playerSize.length === 2) {
|
|
519
484
|
video = [playerSize]
|
|
520
485
|
}
|
|
521
|
-
return {
|
|
486
|
+
return {
|
|
487
|
+
banner: banner.map(size => size.join('x')),
|
|
488
|
+
native: native.map(size => size.join('x')),
|
|
489
|
+
video: video.map(size => size.join('x'))
|
|
490
|
+
}
|
|
522
491
|
}
|
|
523
492
|
|
|
524
493
|
function bidResponseHandler(bid) {
|
|
@@ -537,10 +506,10 @@ function bidResponseHandler(bid) {
|
|
|
537
506
|
{ cpm, width, height, mediaType, timeToRespond, dealId, creativeId },
|
|
538
507
|
{ adId, currency }
|
|
539
508
|
);
|
|
540
|
-
bidObj.floorPrice =
|
|
541
|
-
bidObj.floorRule =
|
|
509
|
+
bidObj.floorPrice = deepAccess(bid, 'floorData.floorValue');
|
|
510
|
+
bidObj.floorRule = deepAccess(bid, 'floorData.floorRule');
|
|
542
511
|
bidObj.originalCpm = originalCpm || cpm;
|
|
543
|
-
let dfpbd =
|
|
512
|
+
let dfpbd = deepAccess(bid, 'adserverTargeting.hb_pb');
|
|
544
513
|
if (!dfpbd) {
|
|
545
514
|
let priceGranularity = getPriceGranularity(mediaType, bid);
|
|
546
515
|
let priceGranularityKey = PRICE_GRANULARITY[priceGranularity];
|
|
@@ -593,18 +562,12 @@ function bidTimeoutHandler(timedOutBids) {
|
|
|
593
562
|
})
|
|
594
563
|
}
|
|
595
564
|
|
|
596
|
-
function auctionEndHandler({auctionId, auctionEnd
|
|
565
|
+
function auctionEndHandler({auctionId, auctionEnd}) {
|
|
597
566
|
if (!(auctions[auctionId] instanceof Auction)) {
|
|
598
567
|
return;
|
|
599
568
|
}
|
|
600
569
|
auctions[auctionId].status = AUCTION_COMPLETED;
|
|
601
570
|
auctions[auctionId].auctionEndTime = auctionEnd;
|
|
602
|
-
|
|
603
|
-
if (config.batching === BATCHING.MULTI) {
|
|
604
|
-
adUnitCodes.forEach(function (adUnitCode) {
|
|
605
|
-
sendEvent(auctionId, adUnitCode, LOG_TYPE.PR);
|
|
606
|
-
});
|
|
607
|
-
}
|
|
608
571
|
}
|
|
609
572
|
|
|
610
573
|
function setTargetingHandler(params) {
|
|
@@ -635,34 +598,15 @@ function setTargetingHandler(params) {
|
|
|
635
598
|
auctionObj.bids.forEach(bid => {
|
|
636
599
|
if (bid.bidder === DUMMY_BIDDER && bid.adUnitCode === adunit) {
|
|
637
600
|
bid.iwb = bidAdIds.length === 0 ? 0 : 1;
|
|
638
|
-
bid.width =
|
|
639
|
-
bid.height =
|
|
601
|
+
bid.width = deepAccess(winningBid, 'width');
|
|
602
|
+
bid.height = deepAccess(winningBid, 'height');
|
|
640
603
|
}
|
|
641
604
|
});
|
|
642
|
-
sendEvent(auctionId, adunit,
|
|
605
|
+
sendEvent(auctionId, adunit, LOG_TYPE.APPR);
|
|
643
606
|
}
|
|
644
607
|
}
|
|
645
608
|
}
|
|
646
609
|
|
|
647
|
-
function getLogType() {
|
|
648
|
-
if (config.batching === BATCHING.SINGLE) {
|
|
649
|
-
return LOG_TYPE.APPR;
|
|
650
|
-
}
|
|
651
|
-
return LOG_TYPE.AP;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
function setBidderDone(params) {
|
|
655
|
-
if (config.pixelWaitTime != null && config.pixelWaitTime > 0) {
|
|
656
|
-
setTimeout(fireApAfterWait, config.pixelWaitTime, params)
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
function fireApAfterWait(params) {
|
|
661
|
-
params.bids.forEach(function (adUnit) {
|
|
662
|
-
sendEvent(params.auctionId, adUnit.adUnitCode, LOG_TYPE.AP);
|
|
663
|
-
});
|
|
664
|
-
}
|
|
665
|
-
|
|
666
610
|
function bidWonHandler(bid) {
|
|
667
611
|
const { requestId, auctionId, adUnitCode } = bid;
|
|
668
612
|
if (!(auctions[auctionId] instanceof Auction)) {
|
|
@@ -677,20 +621,8 @@ function bidWonHandler(bid) {
|
|
|
677
621
|
sendEvent(auctionId, adUnitCode, LOG_TYPE.RA);
|
|
678
622
|
}
|
|
679
623
|
|
|
680
|
-
function isSampled(
|
|
681
|
-
return Math.random() * 100 < parseFloat(
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
function getLogPercentage(logType) {
|
|
685
|
-
let logPercentage = config.loggingPercent;
|
|
686
|
-
if (config.batching === BATCHING.MULTI) {
|
|
687
|
-
if (logType === LOG_TYPE.AP) {
|
|
688
|
-
logPercentage = config.apLoggingPct;
|
|
689
|
-
} else if (logType === LOG_TYPE.PR) {
|
|
690
|
-
logPercentage = config.prLoggingPct;
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
return logPercentage;
|
|
624
|
+
function isSampled() {
|
|
625
|
+
return Math.random() * 100 < parseFloat(config.loggingPercent);
|
|
694
626
|
}
|
|
695
627
|
|
|
696
628
|
function isValidAuctionAdSlot(acid, adtag) {
|
|
@@ -711,13 +643,8 @@ function sendEvent(id, adunit, logType) {
|
|
|
711
643
|
function fireApPrLog(auctionId, adUnitName, logType) {
|
|
712
644
|
const adSlot = auctions[auctionId].adSlots[adUnitName];
|
|
713
645
|
if (adSlot.getShouldBeLogged(logType) && !adSlot.logged[logType]) {
|
|
714
|
-
if (config.batching === BATCHING.SINGLE) {
|
|
715
|
-
adSlot.logged[LOG_TYPE.AP] = true;
|
|
716
|
-
adSlot.logged[LOG_TYPE.PR] = true;
|
|
717
|
-
} else {
|
|
718
|
-
adSlot.logged[logType] = true;
|
|
719
|
-
}
|
|
720
646
|
fireAuctionLog(auctionId, adUnitName, logType);
|
|
647
|
+
adSlot.logged[logType] = true;
|
|
721
648
|
}
|
|
722
649
|
}
|
|
723
650
|
|
|
@@ -731,7 +658,7 @@ function getCommonLoggingData(acid, adtag) {
|
|
|
731
658
|
function fireAuctionLog(acid, adtag, logType) {
|
|
732
659
|
let commonParams = getCommonLoggingData(acid, adtag);
|
|
733
660
|
commonParams.lgtp = logType;
|
|
734
|
-
let targeting =
|
|
661
|
+
let targeting = deepAccess(commonParams, 'targ');
|
|
735
662
|
|
|
736
663
|
Object.keys(commonParams).forEach((key) => (commonParams[key] == null) && delete commonParams[key]);
|
|
737
664
|
delete commonParams.targ;
|
|
@@ -759,11 +686,11 @@ function fireAuctionLog(acid, adtag, logType) {
|
|
|
759
686
|
}
|
|
760
687
|
|
|
761
688
|
function formatQS(data) {
|
|
762
|
-
return
|
|
689
|
+
return _map(data, (value, key) => {
|
|
763
690
|
if (value === undefined) {
|
|
764
691
|
return key + '=';
|
|
765
692
|
}
|
|
766
|
-
if (
|
|
693
|
+
if (isPlainObject(value)) {
|
|
767
694
|
value = JSON.stringify(value);
|
|
768
695
|
}
|
|
769
696
|
return key + '=' + encodeURIComponent(value);
|
|
@@ -772,7 +699,7 @@ function formatQS(data) {
|
|
|
772
699
|
|
|
773
700
|
function firePixel(qs) {
|
|
774
701
|
logsQueue.push(ENDPOINT + '&' + qs);
|
|
775
|
-
|
|
702
|
+
triggerPixel(ENDPOINT + '&' + qs);
|
|
776
703
|
}
|
|
777
704
|
|
|
778
705
|
class URL {
|
|
@@ -813,7 +740,7 @@ let medianetAnalytics = Object.assign(adapter({URL, analyticsType}), {
|
|
|
813
740
|
},
|
|
814
741
|
track({ eventType, args }) {
|
|
815
742
|
if (config.debug) {
|
|
816
|
-
|
|
743
|
+
logInfo(eventType, args);
|
|
817
744
|
}
|
|
818
745
|
switch (eventType) {
|
|
819
746
|
case CONSTANTS.EVENTS.AUCTION_INIT: {
|
|
@@ -844,10 +771,6 @@ let medianetAnalytics = Object.assign(adapter({URL, analyticsType}), {
|
|
|
844
771
|
setTargetingHandler(args);
|
|
845
772
|
break;
|
|
846
773
|
}
|
|
847
|
-
case CONSTANTS.EVENTS.BIDDER_DONE : {
|
|
848
|
-
setBidderDone(args);
|
|
849
|
-
break;
|
|
850
|
-
}
|
|
851
774
|
case CONSTANTS.EVENTS.BID_WON: {
|
|
852
775
|
bidWonHandler(args);
|
|
853
776
|
break;
|
|
@@ -859,7 +782,7 @@ medianetAnalytics.originEnableAnalytics = medianetAnalytics.enableAnalytics;
|
|
|
859
782
|
|
|
860
783
|
medianetAnalytics.enableAnalytics = function (configuration) {
|
|
861
784
|
if (!configuration || !configuration.options || !configuration.options.cid) {
|
|
862
|
-
|
|
785
|
+
logError('Media.net Analytics adapter: cid is required.');
|
|
863
786
|
return;
|
|
864
787
|
}
|
|
865
788
|
$$PREBID_GLOBAL$$.medianetGlobals = $$PREBID_GLOBAL$$.medianetGlobals || {};
|
|
@@ -868,7 +791,7 @@ medianetAnalytics.enableAnalytics = function (configuration) {
|
|
|
868
791
|
pageDetails = new PageDetail();
|
|
869
792
|
|
|
870
793
|
config = new Configure(configuration.options.cid);
|
|
871
|
-
config.
|
|
794
|
+
config.pubLper = configuration.options.sampling || '';
|
|
872
795
|
config.init();
|
|
873
796
|
configuration.options.sampling = 1;
|
|
874
797
|
medianetAnalytics.originEnableAnalytics(configuration);
|