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.
Files changed (397) hide show
  1. package/.devcontainer/Dockerfile +11 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/postCreate.sh +6 -0
  4. package/allowedModules.js +2 -1
  5. package/integrationExamples/gpt/afpExample.html +242 -0
  6. package/integrationExamples/gpt/afpGamExample.html +152 -0
  7. package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
  8. package/modules/.submodules.json +29 -27
  9. package/modules/33acrossBidAdapter.js +23 -20
  10. package/modules/a4gBidAdapter.js +3 -3
  11. package/modules/ablidaBidAdapter.js +2 -2
  12. package/modules/adWMGBidAdapter.js +4 -4
  13. package/modules/adagioAnalyticsAdapter.js +4 -4
  14. package/modules/adagioBidAdapter.js +85 -82
  15. package/modules/adbookpspBidAdapter.js +56 -54
  16. package/modules/adfBidAdapter.js +24 -16
  17. package/modules/adgenerationBidAdapter.js +42 -18
  18. package/modules/adhashBidAdapter.js +105 -0
  19. package/modules/adhashBidAdapter.md +1 -1
  20. package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
  21. package/modules/adkernelAdnBidAdapter.js +23 -23
  22. package/modules/adkernelBidAdapter.js +49 -44
  23. package/modules/adlooxAdServerVideo.js +26 -26
  24. package/modules/adlooxAnalyticsAdapter.js +38 -35
  25. package/modules/adlooxRtdProvider.js +49 -46
  26. package/modules/admanBidAdapter.js +4 -4
  27. package/modules/admixerBidAdapter.js +13 -2
  28. package/modules/admixerIdSystem.js +4 -4
  29. package/modules/adnowBidAdapter.js +4 -4
  30. package/modules/adnuntiusBidAdapter.js +6 -5
  31. package/modules/adoceanBidAdapter.js +10 -10
  32. package/modules/adpartnerBidAdapter.js +3 -3
  33. package/modules/adpod.js +45 -42
  34. package/modules/adprimeBidAdapter.js +4 -4
  35. package/modules/adqueryBidAdapter.js +204 -0
  36. package/modules/adqueryBidAdapter.md +32 -0
  37. package/modules/adrelevantisBidAdapter.js +30 -27
  38. package/modules/adriverBidAdapter.js +13 -13
  39. package/modules/adtargetBidAdapter.js +24 -24
  40. package/modules/adtelligentBidAdapter.js +29 -29
  41. package/modules/adtrueBidAdapter.js +35 -35
  42. package/modules/aduptechBidAdapter.js +10 -10
  43. package/modules/advangelistsBidAdapter.js +14 -14
  44. package/modules/adxcgAnalyticsAdapter.js +5 -5
  45. package/modules/adxcgBidAdapter.js +56 -56
  46. package/modules/adxpremiumAnalyticsAdapter.js +17 -17
  47. package/modules/adyoulikeBidAdapter.js +11 -11
  48. package/modules/afpBidAdapter.js +166 -0
  49. package/modules/afpBidAdapter.md +348 -0
  50. package/modules/ajaBidAdapter.js +12 -12
  51. package/modules/akamaiDAPIdSystem.js +9 -9
  52. package/modules/aniviewBidAdapter.js +2 -2
  53. package/modules/aolBidAdapter.js +15 -14
  54. package/modules/apacdexBidAdapter.js +16 -16
  55. package/modules/appnexusBidAdapter.js +59 -59
  56. package/modules/apstreamBidAdapter.js +5 -5
  57. package/modules/asoBidAdapter.js +30 -30
  58. package/modules/astraoneBidAdapter.js +2 -2
  59. package/modules/atsAnalyticsAdapter.js +35 -30
  60. package/modules/audiencerunBidAdapter.js +15 -15
  61. package/modules/automatadBidAdapter.js +2 -2
  62. package/modules/axonixBidAdapter.js +7 -7
  63. package/modules/beachfrontBidAdapter.js +23 -23
  64. package/modules/beopBidAdapter.js +22 -22
  65. package/modules/bidViewabilityIO.js +7 -7
  66. package/modules/bidglassBidAdapter.js +8 -8
  67. package/modules/bidscubeBidAdapter.js +3 -3
  68. package/modules/bizzclickBidAdapter.js +10 -10
  69. package/modules/bliinkBidAdapter.js +58 -32
  70. package/modules/bliinkBidAdapter.md +29 -6
  71. package/modules/bluebillywigBidAdapter.js +30 -30
  72. package/modules/boldwinBidAdapter.js +4 -4
  73. package/modules/braveBidAdapter.js +5 -5
  74. package/modules/bridgewellBidAdapter.js +5 -5
  75. package/modules/brightMountainMediaBidAdapter.js +10 -10
  76. package/modules/brightcomBidAdapter.js +18 -18
  77. package/modules/britepoolIdSystem.js +7 -7
  78. package/modules/browsiRtdProvider.js +8 -8
  79. package/modules/bucksenseBidAdapter.js +9 -9
  80. package/modules/buzzoolaBidAdapter.js +4 -4
  81. package/modules/byDataAnalyticsAdapter.js +12 -12
  82. package/modules/ccxBidAdapter.js +38 -38
  83. package/modules/cleanmedianetBidAdapter.js +9 -9
  84. package/modules/clickforceBidAdapter.js +4 -4
  85. package/modules/cointrafficBidAdapter.js +4 -4
  86. package/modules/coinzillaBidAdapter.js +2 -2
  87. package/modules/colossussspBidAdapter.js +7 -3
  88. package/modules/concertAnalyticsAdapter.js +3 -3
  89. package/modules/concertBidAdapter.js +16 -17
  90. package/modules/connectadBidAdapter.js +13 -13
  91. package/modules/consentManagement.js +29 -28
  92. package/modules/consentManagementUsp.js +14 -14
  93. package/modules/consumableBidAdapter.js +3 -3
  94. package/modules/contentexchangeBidAdapter.js +5 -5
  95. package/modules/conversantBidAdapter.js +32 -31
  96. package/modules/cpmstarBidAdapter.js +8 -9
  97. package/modules/craftBidAdapter.js +10 -10
  98. package/modules/criteoBidAdapter.js +16 -16
  99. package/modules/criteoIdSystem.js +5 -5
  100. package/modules/currency.js +18 -18
  101. package/modules/cwireBidAdapter.js +272 -0
  102. package/modules/cwireBidAdapter.md +43 -0
  103. package/modules/datablocksBidAdapter.js +12 -12
  104. package/modules/deepintentBidAdapter.js +13 -13
  105. package/modules/dgkeywordRtdProvider.js +10 -11
  106. package/modules/districtmDMXBidAdapter.js +15 -15
  107. package/modules/dmdIdSystem.js +5 -5
  108. package/modules/docereeBidAdapter.js +9 -9
  109. package/modules/dspxBidAdapter.js +5 -5
  110. package/modules/ebdrBidAdapter.js +9 -9
  111. package/modules/emx_digitalBidAdapter.js +23 -23
  112. package/modules/enrichmentFpdModule.js +10 -9
  113. package/modules/eplanningAnalyticsAdapter.js +2 -2
  114. package/modules/eplanningBidAdapter.js +10 -10
  115. package/modules/etargetBidAdapter.js +4 -4
  116. package/modules/express.js +9 -10
  117. package/modules/fabrickIdSystem.js +6 -6
  118. package/modules/feedadBidAdapter.js +5 -5
  119. package/modules/fintezaAnalyticsAdapter.js +4 -4
  120. package/modules/flocIdSystem.js +5 -5
  121. package/modules/fluctBidAdapter.js +6 -5
  122. package/modules/freewheel-sspBidAdapter.js +6 -6
  123. package/modules/gamoshiBidAdapter.js +22 -22
  124. package/modules/gdprEnforcement.js +13 -14
  125. package/modules/getintentBidAdapter.js +3 -4
  126. package/modules/glimpseBidAdapter.js +160 -48
  127. package/modules/glimpseBidAdapter.md +11 -74
  128. package/modules/gmosspBidAdapter.js +17 -17
  129. package/modules/gnetBidAdapter.js +5 -5
  130. package/modules/googleAnalyticsAdapter.js +6 -6
  131. package/modules/gothamadsBidAdapter.js +9 -9
  132. package/modules/gptPreAuction.js +7 -7
  133. package/modules/gridBidAdapter.js +15 -16
  134. package/modules/gridNMBidAdapter.js +214 -63
  135. package/modules/growadvertisingBidAdapter.js +7 -8
  136. package/modules/gumgumBidAdapter.js +19 -13
  137. package/modules/h12mediaBidAdapter.js +12 -12
  138. package/modules/haloIdSystem.js +8 -8
  139. package/modules/hybridBidAdapter.js +7 -7
  140. package/modules/iasRtdProvider.js +79 -63
  141. package/modules/id5IdSystem.js +24 -24
  142. package/modules/idImportLibrary.js +35 -35
  143. package/modules/idxIdSystem.js +3 -3
  144. package/modules/impactifyBidAdapter.js +10 -10
  145. package/modules/improvedigitalBidAdapter.js +36 -36
  146. package/modules/imuIdSystem.js +6 -6
  147. package/modules/inmarBidAdapter.js +2 -2
  148. package/modules/innityBidAdapter.js +3 -3
  149. package/modules/inskinBidAdapter.js +14 -2
  150. package/modules/inskinBidAdapter.md +5 -4
  151. package/modules/instreamTracking.js +5 -5
  152. package/modules/integr8BidAdapter.js +4 -4
  153. package/modules/intentIqIdSystem.js +7 -7
  154. package/modules/interactiveOffersBidAdapter.js +5 -5
  155. package/modules/invibesBidAdapter.js +53 -19
  156. package/modules/invisiblyAnalyticsAdapter.js +5 -5
  157. package/modules/iqmBidAdapter.js +19 -19
  158. package/modules/iqzoneBidAdapter.js +5 -5
  159. package/modules/ixBidAdapter.js +73 -73
  160. package/modules/jixieBidAdapter.js +6 -6
  161. package/modules/justpremiumBidAdapter.js +5 -1
  162. package/modules/kargoBidAdapter.js +16 -9
  163. package/modules/kargoBidAdapter.md +20 -0
  164. package/modules/kinessoIdSystem.js +8 -8
  165. package/modules/koblerBidAdapter.js +12 -12
  166. package/modules/konduitAnalyticsAdapter.js +4 -4
  167. package/modules/konduitWrapper.js +14 -14
  168. package/modules/krushmediaBidAdapter.js +4 -4
  169. package/modules/kubientBidAdapter.js +5 -5
  170. package/modules/limelightDigitalBidAdapter.js +4 -4
  171. package/modules/liveIntentIdSystem.js +4 -5
  172. package/modules/livewrappedAnalyticsAdapter.js +27 -15
  173. package/modules/livewrappedBidAdapter.js +7 -7
  174. package/modules/liveyieldAnalyticsAdapter.js +13 -13
  175. package/modules/lockerdomeBidAdapter.js +2 -2
  176. package/modules/loganBidAdapter.js +4 -4
  177. package/modules/lotamePanoramaIdSystem.js +13 -13
  178. package/modules/lunamediahbBidAdapter.js +2 -2
  179. package/modules/madvertiseBidAdapter.js +3 -3
  180. package/modules/marsmediaBidAdapter.js +26 -26
  181. package/modules/mathildeadsBidAdapter.js +5 -5
  182. package/modules/mediaforceBidAdapter.js +11 -11
  183. package/modules/mediakeysBidAdapter.js +444 -53
  184. package/modules/mediakeysBidAdapter.md +108 -0
  185. package/modules/medianetAnalyticsAdapter.js +48 -125
  186. package/modules/medianetBidAdapter.js +38 -33
  187. package/modules/medianetRtdProvider.js +7 -7
  188. package/modules/merkleIdSystem.js +19 -19
  189. package/modules/mgidBidAdapter.js +50 -50
  190. package/modules/microadBidAdapter.js +3 -3
  191. package/modules/multibid/index.js +15 -13
  192. package/modules/mwOpenLinkIdSystem.js +7 -7
  193. package/modules/mytargetBidAdapter.js +112 -0
  194. package/modules/nativoBidAdapter.js +46 -31
  195. package/modules/nativoBidAdapter.md +0 -1
  196. package/modules/naveggIdSystem.js +3 -3
  197. package/modules/nextMillenniumBidAdapter.js +6 -6
  198. package/modules/nextrollBidAdapter.js +375 -0
  199. package/modules/nobidBidAdapter.js +12 -11
  200. package/modules/novatiqIdSystem.js +8 -8
  201. package/modules/oguryBidAdapter.js +22 -6
  202. package/modules/oneVideoBidAdapter.js +20 -20
  203. package/modules/onomagicBidAdapter.js +16 -16
  204. package/modules/ooloAnalyticsAdapter.js +13 -13
  205. package/modules/openwebBidAdapter.js +26 -26
  206. package/modules/openxAnalyticsAdapter.js +33 -33
  207. package/modules/openxBidAdapter.js +29 -29
  208. package/modules/operaadsBidAdapter.js +53 -53
  209. package/modules/optimeraRtdProvider.js +9 -9
  210. package/modules/optoutBidAdapter.js +3 -3
  211. package/modules/orbidderBidAdapter.js +3 -3
  212. package/modules/outbrainBidAdapter.js +13 -13
  213. package/modules/ozoneBidAdapter.js +131 -131
  214. package/modules/padsquadBidAdapter.js +4 -4
  215. package/modules/parrableIdSystem.js +17 -17
  216. package/modules/pixfutureBidAdapter.js +45 -25
  217. package/modules/pixfutureBidAdapter.md +127 -0
  218. package/modules/prebidServerBidAdapter/index.js +109 -105
  219. package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
  220. package/modules/priceFloors.js +47 -47
  221. package/modules/proxistoreBidAdapter.js +6 -8
  222. package/modules/pubCommonId.js +11 -11
  223. package/modules/pubProvidedIdSystem.js +3 -3
  224. package/modules/publinkIdSystem.js +23 -7
  225. package/modules/publinkIdSystem.md +7 -2
  226. package/modules/pubmaticAnalyticsAdapter.js +16 -16
  227. package/modules/pubmaticBidAdapter.js +109 -93
  228. package/modules/pubmaticBidAdapter.md +1 -1
  229. package/modules/pubperfAnalyticsAdapter.js +3 -3
  230. package/modules/pubwiseAnalyticsAdapter.js +6 -6
  231. package/modules/pubwiseBidAdapter.js +23 -23
  232. package/modules/pubxBidAdapter.js +2 -2
  233. package/modules/pubxaiAnalyticsAdapter.js +7 -7
  234. package/modules/pulsepointBidAdapter.js +13 -13
  235. package/modules/pxyzBidAdapter.js +7 -7
  236. package/modules/quantcastBidAdapter.js +16 -16
  237. package/modules/radsBidAdapter.js +5 -5
  238. package/modules/realvuAnalyticsAdapter.js +5 -7
  239. package/modules/reconciliationRtdProvider.js +6 -6
  240. package/modules/relaidoBidAdapter.js +44 -38
  241. package/modules/resetdigitalBidAdapter.js +3 -4
  242. package/modules/revcontentBidAdapter.js +9 -9
  243. package/modules/rhythmoneBidAdapter.js +17 -16
  244. package/modules/richaudienceBidAdapter.js +9 -9
  245. package/modules/riseBidAdapter.js +26 -26
  246. package/modules/riseBidAdapter.md +1 -3
  247. package/modules/roxotAnalyticsAdapter.js +14 -14
  248. package/modules/rtbhouseBidAdapter.js +7 -7
  249. package/modules/rtbsapeBidAdapter.js +3 -4
  250. package/modules/rtdModule/index.js +3 -3
  251. package/modules/rubiconAnalyticsAdapter.js +82 -82
  252. package/modules/rubiconBidAdapter.js +72 -68
  253. package/modules/scaleableAnalyticsAdapter.js +2 -2
  254. package/modules/seedingAllianceBidAdapter.js +231 -0
  255. package/modules/seedtagBidAdapter.js +10 -10
  256. package/modules/sharedIdSystem.js +11 -11
  257. package/modules/sharethroughAnalyticsAdapter.js +8 -8
  258. package/modules/sharethroughBidAdapter.js +20 -27
  259. package/modules/showheroes-bsBidAdapter.js +23 -23
  260. package/modules/sigmoidAnalyticsAdapter.js +4 -5
  261. package/modules/sirdataRtdProvider.js +34 -34
  262. package/modules/sizeMappingV2.js +39 -39
  263. package/modules/slimcutBidAdapter.js +121 -0
  264. package/modules/smaatoBidAdapter.js +44 -44
  265. package/modules/smartadserverBidAdapter.js +7 -7
  266. package/modules/smartxBidAdapter.js +72 -72
  267. package/modules/smartyadsBidAdapter.js +2 -2
  268. package/modules/smilewantedBidAdapter.js +6 -6
  269. package/modules/sonobiAnalyticsAdapter.js +23 -23
  270. package/modules/sortableAnalyticsAdapter.js +5 -5
  271. package/modules/sortableBidAdapter.js +28 -28
  272. package/modules/sovrnAnalyticsAdapter.js +5 -5
  273. package/modules/sovrnBidAdapter.js +22 -22
  274. package/modules/spotxBidAdapter.js +97 -83
  275. package/modules/sspBCBidAdapter.js +216 -21
  276. package/modules/sspBCBidAdapter.md +1 -1
  277. package/modules/staqAnalyticsAdapter.js +9 -9
  278. package/modules/stroeerCoreBidAdapter.js +16 -16
  279. package/modules/sublimeBidAdapter.js +6 -6
  280. package/modules/talkadsBidAdapter.js +129 -0
  281. package/modules/talkadsBidAdapter.md +60 -0
  282. package/modules/tapadIdSystem.js +3 -3
  283. package/modules/tappxBidAdapter.js +63 -64
  284. package/modules/teadsBidAdapter.js +20 -20
  285. package/modules/telariaBidAdapter.js +17 -17
  286. package/modules/temedyaBidAdapter.js +4 -4
  287. package/modules/terceptAnalyticsAdapter.js +4 -4
  288. package/modules/theAdxBidAdapter.js +16 -16
  289. package/modules/timeoutRtdProvider.js +15 -15
  290. package/modules/tpmnBidAdapter.js +3 -3
  291. package/modules/trionBidAdapter.js +15 -15
  292. package/modules/tripleliftBidAdapter.js +27 -24
  293. package/modules/truereachBidAdapter.js +4 -4
  294. package/modules/trustxBidAdapter.js +22 -18
  295. package/modules/ucfunnelBidAdapter.js +3 -3
  296. package/modules/uid2IdSystem.js +6 -6
  297. package/modules/underdogmediaBidAdapter.js +4 -4
  298. package/modules/unicornBidAdapter.js +15 -15
  299. package/modules/unifiedIdSystem.js +4 -4
  300. package/modules/unrulyBidAdapter.js +16 -16
  301. package/modules/userId/eids.js +9 -9
  302. package/modules/userId/index.js +37 -35
  303. package/modules/validationFpdModule/index.js +15 -15
  304. package/modules/vdoaiBidAdapter.js +2 -2
  305. package/modules/verizonMediaIdSystem.js +5 -5
  306. package/modules/vidazooBidAdapter.js +5 -5
  307. package/modules/videobyteBidAdapter.js +24 -24
  308. package/modules/videoreachBidAdapter.js +7 -7
  309. package/modules/vidoomyBidAdapter.js +105 -22
  310. package/modules/viewdeosDXBidAdapter.js +17 -17
  311. package/modules/visxBidAdapter.js +21 -29
  312. package/modules/voxBidAdapter.js +7 -7
  313. package/modules/vuukleBidAdapter.js +2 -2
  314. package/modules/waardexBidAdapter.js +26 -26
  315. package/modules/weboramaRtdProvider.js +174 -0
  316. package/modules/weboramaRtdProvider.md +70 -0
  317. package/modules/winrBidAdapter.js +27 -27
  318. package/modules/wipesBidAdapter.js +2 -2
  319. package/modules/yahoosspBidAdapter.js +637 -0
  320. package/modules/yahoosspBidAdapter.md +795 -0
  321. package/modules/yieldlabBidAdapter.js +57 -12
  322. package/modules/yieldlabBidAdapter.md +16 -1
  323. package/modules/yieldliftBidAdapter.js +9 -9
  324. package/modules/yieldmoBidAdapter.js +64 -50
  325. package/modules/yieldoneAnalyticsAdapter.js +6 -6
  326. package/modules/yieldoneBidAdapter.js +11 -11
  327. package/modules/yuktamediaAnalyticsAdapter.js +15 -15
  328. package/modules/zeotapIdPlusIdSystem.js +2 -2
  329. package/modules/zetaBidAdapter.js +6 -6
  330. package/modules/zeta_global_sspBidAdapter.js +14 -14
  331. package/package.json +1 -1
  332. package/src/AnalyticsAdapter.js +6 -6
  333. package/src/Renderer.js +10 -8
  334. package/src/adapterManager.js +45 -42
  335. package/src/adloader.js +6 -6
  336. package/src/ajax.js +8 -9
  337. package/src/auction.js +26 -23
  338. package/src/bidfactory.js +2 -2
  339. package/src/config.js +52 -50
  340. package/src/cpmBucketManager.js +2 -2
  341. package/src/prebid.js +85 -81
  342. package/src/storageManager.js +5 -5
  343. package/src/targeting.js +25 -26
  344. package/src/userSync.js +35 -22
  345. package/src/videoCache.js +2 -2
  346. package/test/.eslintrc.js +2 -1
  347. package/test/spec/modules/adfBidAdapter_spec.js +55 -0
  348. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  349. package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
  350. package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
  351. package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
  352. package/test/spec/modules/afpBidAdapter_spec.js +306 -0
  353. package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
  354. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  355. package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
  356. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  357. package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
  358. package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
  359. package/test/spec/modules/gridBidAdapter_spec.js +38 -2
  360. package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
  361. package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
  362. package/test/spec/modules/iasRtdProvider_spec.js +71 -6
  363. package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
  364. package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
  365. package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
  366. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
  367. package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
  368. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
  369. package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
  370. package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
  371. package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
  372. package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
  373. package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
  374. package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
  375. package/test/spec/modules/publinkIdSystem_spec.js +42 -12
  376. package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
  377. package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
  378. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
  379. package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
  380. package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
  381. package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
  382. package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
  383. package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
  384. package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
  385. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  386. package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
  387. package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
  388. package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
  389. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  390. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  391. package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
  392. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  393. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  394. package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
  395. package/test/spec/unit/pbjs_api_spec.js +4 -0
  396. package/test/spec/userSync_spec.js +30 -2
  397. package/modules/turktelekomBidAdapter.md +0 -49
@@ -1,10 +1,10 @@
1
+ import { logInfo, logError, getWindowLocation, parseQS, logMessage, _each, deepAccess, logWarn, _map, flatten, uniques, isEmpty, parseSizesInput } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js';
2
3
  import CONSTANTS from '../src/constants.json';
3
4
  import adapterManager from '../src/adapterManager.js';
4
5
  import { ajax } from '../src/ajax.js';
5
6
  import find from 'core-js-pure/features/array/find.js';
6
7
  import includes from 'core-js-pure/features/array/includes.js';
7
- const utils = require('../src/utils.js');
8
8
 
9
9
  export const AUCTION_STATES = {
10
10
  INIT: 'initialized', // auction has initialized
@@ -92,7 +92,7 @@ openxAdapter.enableAnalytics = function(adapterConfig = {options: {}}) {
92
92
  // campaign properties defined by config will override utm query parameters
93
93
  analyticsConfig.campaign = {...buildCampaignFromUtmCodes(), ...analyticsConfig.campaign};
94
94
 
95
- utils.logInfo('OpenX Analytics enabled with config', analyticsConfig);
95
+ logInfo('OpenX Analytics enabled with config', analyticsConfig);
96
96
 
97
97
  // override track method with v2 handlers
98
98
  openxAdapter.track = prebidAnalyticsEventHandler;
@@ -103,7 +103,7 @@ openxAdapter.enableAnalytics = function(adapterConfig = {options: {}}) {
103
103
  if (pubads.addEventListener) {
104
104
  pubads.addEventListener(SLOT_LOADED, args => {
105
105
  openxAdapter.track({eventType: SLOT_LOADED, args});
106
- utils.logInfo('OX: SlotOnLoad event triggered');
106
+ logInfo('OX: SlotOnLoad event triggered');
107
107
  });
108
108
  }
109
109
  });
@@ -160,9 +160,9 @@ function isValidConfig({options: analyticsOptions}) {
160
160
  let [property, type, required] = failedValidation;
161
161
 
162
162
  if (required) {
163
- utils.logError(`OpenXAnalyticsAdapter: Expected '${property}' to exist and of type '${type}'`);
163
+ logError(`OpenXAnalyticsAdapter: Expected '${property}' to exist and of type '${type}'`);
164
164
  } else {
165
- utils.logError(`OpenXAnalyticsAdapter: Expected '${property}' to be type '${type}'`);
165
+ logError(`OpenXAnalyticsAdapter: Expected '${property}' to be type '${type}'`);
166
166
  }
167
167
  }
168
168
 
@@ -170,8 +170,8 @@ function isValidConfig({options: analyticsOptions}) {
170
170
  }
171
171
 
172
172
  function buildCampaignFromUtmCodes() {
173
- const location = utils.getWindowLocation();
174
- const queryParams = utils.parseQS(location && location.search);
173
+ const location = getWindowLocation();
174
+ const queryParams = parseQS(location && location.search);
175
175
  let campaign = {};
176
176
 
177
177
  UTM_TAGS.forEach(function(utmKey) {
@@ -231,7 +231,7 @@ function detectBrowser() {
231
231
  }
232
232
 
233
233
  function prebidAnalyticsEventHandler({eventType, args}) {
234
- utils.logMessage(eventType, Object.assign({}, args));
234
+ logMessage(eventType, Object.assign({}, args));
235
235
  switch (eventType) {
236
236
  case AUCTION_INIT:
237
237
  onAuctionInit(args);
@@ -401,8 +401,8 @@ function onBidResponse(bidResponse) {
401
401
  }
402
402
 
403
403
  function onBidTimeout(args) {
404
- utils._each(args, ({auctionId, adUnitCode, bidId: requestId}) => {
405
- let timedOutRequest = utils.deepAccess(auctionMap,
404
+ _each(args, ({auctionId, adUnitCode, bidId: requestId}) => {
405
+ let timedOutRequest = deepAccess(auctionMap,
406
406
  `${auctionId}.adUnitCodeToAdUnitMap.${adUnitCode}.bidRequestsMap.${requestId}`);
407
407
 
408
408
  if (timedOutRequest) {
@@ -433,7 +433,7 @@ function onAuctionEnd(endedAuction) {
433
433
  */
434
434
  function onBidWon(bidResponse) {
435
435
  const { auctionId, adUnitCode, requestId, adId } = bidResponse;
436
- let winningBid = utils.deepAccess(auctionMap,
436
+ let winningBid = deepAccess(auctionMap,
437
437
  `${auctionId}.adUnitCodeToAdUnitMap.${adUnitCode}.bidRequestsMap.${requestId}.bids.${adId}`);
438
438
 
439
439
  if (winningBid) {
@@ -444,10 +444,10 @@ function onBidWon(bidResponse) {
444
444
  const bidder = auction.adUnitCodeToAdUnitMap[adUnitCode].bidRequestsMap[requestId].bidder;
445
445
  ajax(`${endpoint}?t=win&b=${adId}&a=${analyticsConfig.orgId}&bidder=${bidder}&ts=${auction.startTime}`,
446
446
  () => {
447
- utils.logInfo(`Openx Analytics - Sending complete impression event for ${adId} at ${Date.now()}`)
447
+ logInfo(`Openx Analytics - Sending complete impression event for ${adId} at ${Date.now()}`)
448
448
  });
449
449
  } else {
450
- utils.logInfo(`Openx Analytics - impression event for ${adId} will be sent with auction data`)
450
+ logInfo(`Openx Analytics - impression event for ${adId} will be sent with auction data`)
451
451
  }
452
452
  }
453
453
  }
@@ -522,7 +522,7 @@ function isAtf(elementId, scrollLeft = 0, scrollTop = 0) {
522
522
  }
523
523
  }
524
524
  } else {
525
- utils.logWarn('OX: DOM element not for id ' + elementId);
525
+ logWarn('OX: DOM element not for id ' + elementId);
526
526
  }
527
527
  return isAtf;
528
528
  }
@@ -552,7 +552,7 @@ function delayedSend(auction) {
552
552
  let payload = JSON.stringify([buildAuctionPayload(auction)]);
553
553
 
554
554
  ajax(analyticsConfig.endpoint || ENDPOINT, () => {
555
- utils.logInfo(`OpenX Analytics - Sending complete auction at ${Date.now()}`);
555
+ logInfo(`OpenX Analytics - Sending complete auction at ${Date.now()}`);
556
556
  }, payload, { contentType: 'application/json' });
557
557
  }, delayTime);
558
558
  }
@@ -579,15 +579,15 @@ function getPathToBidResponseByBidId(bidId) {
579
579
  return [];
580
580
  }
581
581
 
582
- utils._each(auctionMap, currentAuction => {
582
+ _each(auctionMap, currentAuction => {
583
583
  // skip completed auctions
584
584
  if (currentAuction.state === AUCTION_STATES.COMPLETED) {
585
585
  return;
586
586
  }
587
587
 
588
- utils._each(currentAuction.adUnitCodeToAdUnitMap, (currentAdunit) => {
589
- utils._each(currentAdunit.bidRequestsMap, currentBiddRequest => {
590
- utils._each(currentBiddRequest.bids, (currentBidResponse, bidResponseId) => {
588
+ _each(currentAuction.adUnitCodeToAdUnitMap, (currentAdunit) => {
589
+ _each(currentAdunit.bidRequestsMap, currentBiddRequest => {
590
+ _each(currentBiddRequest.bids, (currentBidResponse, bidResponseId) => {
591
591
  if (bidId === bidResponseId) {
592
592
  auction = currentAuction;
593
593
  adUnit = currentAdunit;
@@ -604,12 +604,12 @@ function getAuctionByGoogleTagSLot(slot) {
604
604
  let slotAdunitCodes = [slot.getSlotElementId(), slot.getAdUnitPath()];
605
605
  let slotAuction;
606
606
 
607
- utils._each(auctionMap, auction => {
607
+ _each(auctionMap, auction => {
608
608
  if (auction.state === AUCTION_STATES.COMPLETED) {
609
609
  return;
610
610
  }
611
611
 
612
- utils._each(auction.adUnitCodeToAdUnitMap, (bidderRequestIdMap, adUnitCode) => {
612
+ _each(auction.adUnitCodeToAdUnitMap, (bidderRequestIdMap, adUnitCode) => {
613
613
  if (includes(slotAdunitCodes, adUnitCode)) {
614
614
  slotAuction = auction;
615
615
  }
@@ -649,7 +649,7 @@ function buildAuctionPayload(auction) {
649
649
  };
650
650
 
651
651
  function buildAdUnitsPayload(adUnitCodeToAdUnitMap) {
652
- return utils._map(adUnitCodeToAdUnitMap, (adUnit) => {
652
+ return _map(adUnitCodeToAdUnitMap, (adUnit) => {
653
653
  let {code, adPosition} = adUnit;
654
654
 
655
655
  return {
@@ -659,7 +659,7 @@ function buildAuctionPayload(auction) {
659
659
  };
660
660
 
661
661
  function buildBidRequestPayload(bidRequestsMap) {
662
- return utils._map(bidRequestsMap, (bidRequest) => {
662
+ return _map(bidRequestsMap, (bidRequest) => {
663
663
  let {bidder, source, bids, mediaTypes, timeLimit, timedOut} = bidRequest;
664
664
  return {
665
665
  bidder,
@@ -669,7 +669,7 @@ function buildAuctionPayload(auction) {
669
669
  availableMediaTypes: getMediaTypes(mediaTypes),
670
670
  timeLimit,
671
671
  timedOut,
672
- bidResponses: utils._map(bidRequest.bids, (bidderBidResponse) => {
672
+ bidResponses: _map(bidRequest.bids, (bidderBidResponse) => {
673
673
  let {
674
674
  adId,
675
675
  cpm,
@@ -716,11 +716,11 @@ function buildAuctionPayload(auction) {
716
716
  }
717
717
 
718
718
  function buildUserIdProviders(userIds) {
719
- return utils._map(userIds, (userId) => {
720
- return utils._map(userId, (id, module) => {
719
+ return _map(userIds, (userId) => {
720
+ return _map(userId, (id, module) => {
721
721
  return hasUserData(module, id) ? module : false
722
722
  }).filter(module => module);
723
- }).reduce(utils.flatten, []).filter(utils.uniques).sort();
723
+ }).reduce(flatten, []).filter(uniques).sort();
724
724
  }
725
725
 
726
726
  function hasUserData(module, idOrIdObject) {
@@ -728,7 +728,7 @@ function buildAuctionPayload(auction) {
728
728
 
729
729
  switch (module) {
730
730
  case 'digitrustid':
731
- normalizedId = utils.deepAccess(idOrIdObject, 'data.id');
731
+ normalizedId = deepAccess(idOrIdObject, 'data.id');
732
732
  break;
733
733
  case 'lipb':
734
734
  normalizedId = idOrIdObject.lipbid;
@@ -737,17 +737,17 @@ function buildAuctionPayload(auction) {
737
737
  normalizedId = idOrIdObject;
738
738
  }
739
739
 
740
- return !utils.isEmpty(normalizedId);
740
+ return !isEmpty(normalizedId);
741
741
  }
742
742
 
743
743
  function getMediaTypeSizes(mediaTypes) {
744
- return utils._map(mediaTypes, (mediaTypeConfig, mediaType) => {
745
- return utils.parseSizesInput(mediaTypeConfig.sizes)
744
+ return _map(mediaTypes, (mediaTypeConfig, mediaType) => {
745
+ return parseSizesInput(mediaTypeConfig.sizes)
746
746
  .map(size => `${mediaType}_${size}`);
747
- }).reduce(utils.flatten, []);
747
+ }).reduce(flatten, []);
748
748
  }
749
749
 
750
750
  function getMediaTypes(mediaTypes) {
751
- return utils._map(mediaTypes, (mediaTypeConfig, mediaType) => mediaType);
751
+ return _map(mediaTypes, (mediaTypeConfig, mediaType) => mediaType);
752
752
  }
753
753
  }
@@ -1,6 +1,6 @@
1
+ import { deepAccess, convertTypes, isArray, inIframe, _map, deepSetValue, _each, parseSizesInput, parseUrl } from '../src/utils.js';
1
2
  import {config} from '../src/config.js';
2
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
- import * as utils from '../src/utils.js';
4
4
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
5
5
  import includes from 'core-js-pure/features/array/includes.js'
6
6
 
@@ -51,8 +51,8 @@ export const spec = {
51
51
  supportedMediaTypes: SUPPORTED_AD_TYPES,
52
52
  isBidRequestValid: function (bidRequest) {
53
53
  const hasDelDomainOrPlatform = bidRequest.params.delDomain || bidRequest.params.platform;
54
- if (utils.deepAccess(bidRequest, 'mediaTypes.banner') && hasDelDomainOrPlatform) {
55
- return !!bidRequest.params.unit || utils.deepAccess(bidRequest, 'mediaTypes.banner.sizes.length') > 0;
54
+ if (deepAccess(bidRequest, 'mediaTypes.banner') && hasDelDomainOrPlatform) {
55
+ return !!bidRequest.params.unit || deepAccess(bidRequest, 'mediaTypes.banner.sizes.length') > 0;
56
56
  }
57
57
 
58
58
  return !!(bidRequest.params.unit && hasDelDomainOrPlatform);
@@ -87,8 +87,8 @@ export const spec = {
87
87
  getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent) {
88
88
  if (syncOptions.iframeEnabled || syncOptions.pixelEnabled) {
89
89
  let pixelType = syncOptions.iframeEnabled ? 'iframe' : 'image';
90
- let url = utils.deepAccess(responses, '0.body.ads.pixels') ||
91
- utils.deepAccess(responses, '0.body.pixels') ||
90
+ let url = deepAccess(responses, '0.body.ads.pixels') ||
91
+ deepAccess(responses, '0.body.pixels') ||
92
92
  generateDefaultSyncUrl(gdprConsent, uspConsent);
93
93
 
94
94
  return [{
@@ -98,7 +98,7 @@ export const spec = {
98
98
  }
99
99
  },
100
100
  transformBidParams: function(params, isOpenRtb) {
101
- return utils.convertTypes({
101
+ return convertTypes({
102
102
  'unit': 'string',
103
103
  'customFloor': 'number'
104
104
  }, params);
@@ -123,7 +123,7 @@ function generateDefaultSyncUrl(gdprConsent, uspConsent) {
123
123
  }
124
124
 
125
125
  function isVideoRequest(bidRequest) {
126
- return (utils.deepAccess(bidRequest, 'mediaTypes.video') && !utils.deepAccess(bidRequest, 'mediaTypes.banner')) || bidRequest.mediaType === VIDEO;
126
+ return (deepAccess(bidRequest, 'mediaTypes.video') && !deepAccess(bidRequest, 'mediaTypes.banner')) || bidRequest.mediaType === VIDEO;
127
127
  }
128
128
 
129
129
  function createBannerBidResponses(oxResponseObj, {bids, startTime}) {
@@ -215,7 +215,7 @@ function getViewportDimensions(isIfr) {
215
215
 
216
216
  function formatCustomParms(customKey, customParams) {
217
217
  let value = customParams[customKey];
218
- if (utils.isArray(value)) {
218
+ if (isArray(value)) {
219
219
  // if value is an array, join them with commas first
220
220
  value = value.join(',');
221
221
  }
@@ -240,7 +240,7 @@ function getMediaTypeFromRequest(serverRequest) {
240
240
  }
241
241
 
242
242
  function buildCommonQueryParamsFromBids(bids, bidderRequest) {
243
- const isInIframe = utils.inIframe();
243
+ const isInIframe = inIframe();
244
244
  let defaultParams;
245
245
 
246
246
  defaultParams = {
@@ -252,7 +252,7 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
252
252
  tws: getViewportDimensions(isInIframe),
253
253
  be: 1,
254
254
  bc: bids[0].params.bc || `${BIDDER_CONFIG}_${BIDDER_VERSION}`,
255
- dddid: utils._map(bids, bid => bid.transactionId).join(','),
255
+ dddid: _map(bids, bid => bid.transactionId).join(','),
256
256
  nocache: new Date().getTime()
257
257
  };
258
258
 
@@ -304,8 +304,8 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
304
304
  }
305
305
 
306
306
  // normalize publisher common id
307
- if (utils.deepAccess(bids[0], 'crumbs.pubcid')) {
308
- utils.deepSetValue(bids[0], 'userId.pubcid', utils.deepAccess(bids[0], 'crumbs.pubcid'));
307
+ if (deepAccess(bids[0], 'crumbs.pubcid')) {
308
+ deepSetValue(bids[0], 'userId.pubcid', deepAccess(bids[0], 'crumbs.pubcid'));
309
309
  }
310
310
  defaultParams = appendUserIdsToQueryParams(defaultParams, bids[0].userId);
311
311
 
@@ -318,7 +318,7 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
318
318
  }
319
319
 
320
320
  function appendUserIdsToQueryParams(queryParams, userIds) {
321
- utils._each(userIds, (userIdObjectOrValue, userIdProviderKey) => {
321
+ _each(userIds, (userIdObjectOrValue, userIdProviderKey) => {
322
322
  const key = USER_ID_CODE_TO_QUERY_ARG[userIdProviderKey];
323
323
 
324
324
  if (USER_ID_CODE_TO_QUERY_ARG.hasOwnProperty(userIdProviderKey)) {
@@ -371,13 +371,13 @@ function buildOXBannerRequest(bids, bidderRequest) {
371
371
  let customParamsForAllBids = [];
372
372
  let hasCustomParam = false;
373
373
  let queryParams = buildCommonQueryParamsFromBids(bids, bidderRequest);
374
- let auids = utils._map(bids, bid => bid.params.unit);
374
+ let auids = _map(bids, bid => bid.params.unit);
375
375
 
376
- queryParams.aus = utils._map(bids, bid => utils.parseSizesInput(bid.mediaTypes.banner.sizes).join(',')).join('|');
377
- queryParams.divids = utils._map(bids, bid => encodeURIComponent(bid.adUnitCode)).join(',');
376
+ queryParams.aus = _map(bids, bid => parseSizesInput(bid.mediaTypes.banner.sizes).join(',')).join('|');
377
+ queryParams.divids = _map(bids, bid => encodeURIComponent(bid.adUnitCode)).join(',');
378
378
  // gpid
379
- queryParams.aucs = utils._map(bids, function (bid) {
380
- let gpid = utils.deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
379
+ queryParams.aucs = _map(bids, function (bid) {
380
+ let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
381
381
  return encodeURIComponent(gpid || '')
382
382
  }).join(',');
383
383
 
@@ -395,7 +395,7 @@ function buildOXBannerRequest(bids, bidderRequest) {
395
395
 
396
396
  bids.forEach(function (bid) {
397
397
  if (bid.params.customParams) {
398
- let customParamsForBid = utils._map(Object.keys(bid.params.customParams), customKey => formatCustomParms(customKey, bid.params.customParams));
398
+ let customParamsForBid = _map(Object.keys(bid.params.customParams), customKey => formatCustomParms(customKey, bid.params.customParams));
399
399
  let formattedCustomParams = window.btoa(customParamsForBid.join('&'));
400
400
  hasCustomParam = true;
401
401
  customParamsForAllBids.push(formattedCustomParams);
@@ -435,22 +435,22 @@ function buildOXVideoRequest(bid, bidderRequest) {
435
435
  }
436
436
 
437
437
  function generateVideoParameters(bid, bidderRequest) {
438
- const videoMediaType = utils.deepAccess(bid, `mediaTypes.video`);
438
+ const videoMediaType = deepAccess(bid, `mediaTypes.video`);
439
439
  let queryParams = buildCommonQueryParamsFromBids([bid], bidderRequest);
440
- let oxVideoConfig = utils.deepAccess(bid, 'params.video') || {};
441
- let context = utils.deepAccess(bid, 'mediaTypes.video.context');
442
- let playerSize = utils.deepAccess(bid, 'mediaTypes.video.playerSize');
440
+ let oxVideoConfig = deepAccess(bid, 'params.video') || {};
441
+ let context = deepAccess(bid, 'mediaTypes.video.context');
442
+ let playerSize = deepAccess(bid, 'mediaTypes.video.playerSize');
443
443
  let width;
444
444
  let height;
445
445
 
446
446
  // normalize config for video size
447
- if (utils.isArray(bid.sizes) && bid.sizes.length === 2 && !utils.isArray(bid.sizes[0])) {
447
+ if (isArray(bid.sizes) && bid.sizes.length === 2 && !isArray(bid.sizes[0])) {
448
448
  width = parseInt(bid.sizes[0], 10);
449
449
  height = parseInt(bid.sizes[1], 10);
450
- } else if (utils.isArray(bid.sizes) && utils.isArray(bid.sizes[0]) && bid.sizes[0].length === 2) {
450
+ } else if (isArray(bid.sizes) && isArray(bid.sizes[0]) && bid.sizes[0].length === 2) {
451
451
  width = parseInt(bid.sizes[0][0], 10);
452
452
  height = parseInt(bid.sizes[0][1], 10);
453
- } else if (utils.isArray(playerSize) && playerSize.length === 2) {
453
+ } else if (isArray(playerSize) && playerSize.length === 2) {
454
454
  width = parseInt(playerSize[0], 10);
455
455
  height = parseInt(playerSize[1], 10);
456
456
  }
@@ -463,7 +463,7 @@ function generateVideoParameters(bid, bidderRequest) {
463
463
  legacyParams = legacyParams.openrtb;
464
464
  }
465
465
  // support for video object or full openrtb object
466
- if (utils.isArray(legacyParams.imp)) {
466
+ if (isArray(legacyParams.imp)) {
467
467
  legacyParams = legacyParams.imp[0].video;
468
468
  }
469
469
  Object.keys(legacyParams)
@@ -502,7 +502,7 @@ function generateVideoParameters(bid, bidderRequest) {
502
502
  queryParams.vtest = 1;
503
503
  }
504
504
 
505
- let gpid = utils.deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
505
+ let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
506
506
  if (gpid) {
507
507
  queryParams.aucs = encodeURIComponent(gpid)
508
508
  }
@@ -517,7 +517,7 @@ function createVideoBidResponses(response, {bid, startTime}) {
517
517
  let bidResponses = [];
518
518
 
519
519
  if (response !== undefined && response.vastUrl !== '' && response.pub_rev > 0) {
520
- let vastQueryParams = utils.parseUrl(response.vastUrl).search || {};
520
+ let vastQueryParams = parseUrl(response.vastUrl).search || {};
521
521
  let bidResponse = {};
522
522
  bidResponse.requestId = bid.bidId;
523
523
  if (response.deal_id) {