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
@@ -0,0 +1,231 @@
1
+ // jshint esversion: 6, es3: false, node: true
2
+ 'use strict';
3
+
4
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
5
+ import { NATIVE } from '../src/mediaTypes.js';
6
+ import { _map, deepSetValue, isEmpty, deepAccess } from '../src/utils.js';
7
+ import { config } from '../src/config.js';
8
+
9
+ const BIDDER_CODE = 'seedingAlliance';
10
+ const DEFAULT_CUR = 'EUR';
11
+ const ENDPOINT_URL = 'https://b.nativendo.de/cds/rtb/bid?format=openrtb2.5&ssp=nativendo';
12
+
13
+ const NATIVE_ASSET_IDS = {0: 'title', 1: 'body', 2: 'sponsoredBy', 3: 'image', 4: 'cta', 5: 'icon'};
14
+
15
+ const NATIVE_PARAMS = {
16
+ title: {
17
+ id: 0,
18
+ name: 'title'
19
+ },
20
+
21
+ body: {
22
+ id: 1,
23
+ name: 'data',
24
+ type: 2
25
+ },
26
+
27
+ sponsoredBy: {
28
+ id: 2,
29
+ name: 'data',
30
+ type: 1
31
+ },
32
+
33
+ image: {
34
+ id: 3,
35
+ type: 3,
36
+ name: 'img'
37
+ },
38
+
39
+ cta: {
40
+ id: 4,
41
+ type: 12,
42
+ name: 'data'
43
+ },
44
+
45
+ icon: {
46
+ id: 5,
47
+ type: 1,
48
+ name: 'img'
49
+ }
50
+ };
51
+
52
+ export const spec = {
53
+ code: BIDDER_CODE,
54
+
55
+ supportedMediaTypes: [NATIVE],
56
+
57
+ isBidRequestValid: function(bid) {
58
+ return !!bid.params.adUnitId;
59
+ },
60
+
61
+ buildRequests: (validBidRequests, bidderRequest) => {
62
+ const pt = setOnAny(validBidRequests, 'params.pt') || setOnAny(validBidRequests, 'params.priceType') || 'net';
63
+ const tid = validBidRequests[0].transactionId;
64
+ const cur = [config.getConfig('currency.adServerCurrency') || DEFAULT_CUR];
65
+ let url = bidderRequest.refererInfo.referer;
66
+
67
+ const imp = validBidRequests.map((bid, id) => {
68
+ const assets = _map(bid.nativeParams, (bidParams, key) => {
69
+ const props = NATIVE_PARAMS[key];
70
+
71
+ const asset = {
72
+ required: bidParams.required & 1
73
+ };
74
+
75
+ if (props) {
76
+ asset.id = props.id;
77
+
78
+ let w, h;
79
+
80
+ if (bidParams.sizes) {
81
+ w = bidParams.sizes[0];
82
+ h = bidParams.sizes[1];
83
+ }
84
+
85
+ asset[props.name] = {
86
+ len: bidParams.len,
87
+ type: props.type,
88
+ w,
89
+ h
90
+ };
91
+
92
+ return asset;
93
+ }
94
+ })
95
+ .filter(Boolean);
96
+
97
+ if (bid.params.url) {
98
+ url = bid.params.url;
99
+ }
100
+
101
+ return {
102
+ id: String(id + 1),
103
+ tagid: bid.params.adUnitId,
104
+ tid: tid,
105
+ pt: pt,
106
+ native: {
107
+ request: {
108
+ assets
109
+ }
110
+ }
111
+ };
112
+ });
113
+
114
+ const request = {
115
+ id: bidderRequest.auctionId,
116
+ site: {
117
+ page: url
118
+ },
119
+ device: {
120
+ ua: navigator.userAgent
121
+ },
122
+ cur,
123
+ imp,
124
+ user: {},
125
+ regs: {
126
+ ext: {
127
+ gdpr: 0
128
+ }
129
+ }
130
+ };
131
+
132
+ if (bidderRequest && bidderRequest.gdprConsent) {
133
+ deepSetValue(request, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
134
+ deepSetValue(request, 'regs.ext.gdpr', (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean' && bidderRequest.gdprConsent.gdprApplies) ? 1 : 0);
135
+ }
136
+
137
+ return {
138
+ method: 'POST',
139
+ url: ENDPOINT_URL,
140
+ data: JSON.stringify(request),
141
+ options: {
142
+ contentType: 'application/json'
143
+ },
144
+ bids: validBidRequests
145
+ };
146
+ },
147
+
148
+ interpretResponse: function(serverResponse, { bids }) {
149
+ if (isEmpty(serverResponse.body)) {
150
+ return [];
151
+ }
152
+
153
+ const { seatbid, cur } = serverResponse.body;
154
+
155
+ const bidResponses = flatten(seatbid.map(seat => seat.bid)).reduce((result, bid) => {
156
+ result[bid.impid - 1] = bid;
157
+ return result;
158
+ }, []);
159
+
160
+ return bids
161
+ .map((bid, id) => {
162
+ const bidResponse = bidResponses[id];
163
+
164
+ if (bidResponse) {
165
+ return {
166
+ requestId: bid.bidId,
167
+ cpm: bidResponse.price,
168
+ creativeId: bidResponse.crid,
169
+ ttl: 1000,
170
+ netRevenue: bid.netRevenue === 'net',
171
+ currency: cur,
172
+ mediaType: NATIVE,
173
+ bidderCode: BIDDER_CODE,
174
+ native: parseNative(bidResponse),
175
+ meta: {
176
+ advertiserDomains: bidResponse.adomain && bidResponse.adomain.length > 0 ? bidResponse.adomain : []
177
+ }
178
+ };
179
+ }
180
+ })
181
+ .filter(Boolean);
182
+ }
183
+ };
184
+
185
+ registerBidder(spec);
186
+
187
+ function parseNative(bid) {
188
+ const {assets, link, imptrackers} = bid.adm.native;
189
+
190
+ if (link.clicktrackers) {
191
+ link.clicktrackers.forEach(function (clicktracker, index) {
192
+ link.clicktrackers[index] = clicktracker.replace(/\$\{AUCTION_PRICE\}/, bid.price);
193
+ });
194
+ }
195
+ if (imptrackers) {
196
+ imptrackers.forEach(function (imptracker, index) {
197
+ imptrackers[index] = imptracker.replace(/\$\{AUCTION_PRICE\}/, bid.price);
198
+ });
199
+ }
200
+
201
+ const result = {
202
+ url: link.url,
203
+ clickUrl: link.url,
204
+ clickTrackers: link.clicktrackers || undefined,
205
+ impressionTrackers: imptrackers || undefined
206
+ };
207
+
208
+ assets.forEach(asset => {
209
+ const kind = NATIVE_ASSET_IDS[asset.id];
210
+ const content = kind && asset[NATIVE_PARAMS[kind].name];
211
+
212
+ if (content) {
213
+ result[kind] = content.text || content.value || { url: content.url, width: content.w, height: content.h };
214
+ }
215
+ });
216
+
217
+ return result;
218
+ }
219
+
220
+ function setOnAny(collection, key) {
221
+ for (let i = 0, result; i < collection.length; i++) {
222
+ result = deepAccess(collection[i], key);
223
+ if (result) {
224
+ return result;
225
+ }
226
+ }
227
+ }
228
+
229
+ function flatten(arr) {
230
+ return [].concat(...arr);
231
+ }
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js'
1
+ import { isArray, _map, triggerPixel } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js'
3
3
  import { VIDEO, BANNER } from '../src/mediaTypes.js'
4
4
 
@@ -62,13 +62,13 @@ function hasMandatoryVideoParams(bid) {
62
62
  const videoParams = getVideoParams(bid)
63
63
 
64
64
  return hasVideoMediaType(bid) && !!videoParams.playerSize &&
65
- utils.isArray(videoParams.playerSize) &&
65
+ isArray(videoParams.playerSize) &&
66
66
  videoParams.playerSize.length > 0;
67
67
  }
68
68
 
69
69
  function buildBidRequest(validBidRequest) {
70
70
  const params = validBidRequest.params;
71
- const mediaTypes = utils._map(
71
+ const mediaTypes = _map(
72
72
  Object.keys(validBidRequest.mediaTypes),
73
73
  function (pbjsType) {
74
74
  return mediaTypesMap[pbjsType];
@@ -145,8 +145,8 @@ function buildBidResponse(seedtagBid) {
145
145
  export function getTimeoutUrl (data) {
146
146
  let queryParams = '';
147
147
  if (
148
- utils.isArray(data) && data[0] &&
149
- utils.isArray(data[0].params) && data[0].params[0]
148
+ isArray(data) && data[0] &&
149
+ isArray(data[0].params) && data[0].params[0]
150
150
  ) {
151
151
  const params = data[0].params[0];
152
152
  queryParams =
@@ -186,7 +186,7 @@ export const spec = {
186
186
  timeout: bidderRequest.timeout,
187
187
  version: '$prebid.version$',
188
188
  connectionType: getConnectionType(),
189
- bidRequests: utils._map(validBidRequests, buildBidRequest)
189
+ bidRequests: _map(validBidRequests, buildBidRequest)
190
190
  };
191
191
 
192
192
  if (payload.cmp) {
@@ -211,8 +211,8 @@ export const spec = {
211
211
  */
212
212
  interpretResponse: function(serverResponse) {
213
213
  const serverBody = serverResponse.body;
214
- if (serverBody && serverBody.bids && utils.isArray(serverBody.bids)) {
215
- return utils._map(serverBody.bids, function(bid) {
214
+ if (serverBody && serverBody.bids && isArray(serverBody.bids)) {
215
+ return _map(serverBody.bids, function(bid) {
216
216
  return buildBidResponse(bid);
217
217
  });
218
218
  } else {
@@ -243,7 +243,7 @@ export const spec = {
243
243
  */
244
244
  onTimeout(data) {
245
245
  const url = getTimeoutUrl(data);
246
- utils.triggerPixel(url);
246
+ triggerPixel(url);
247
247
  },
248
248
 
249
249
  /**
@@ -252,7 +252,7 @@ export const spec = {
252
252
  */
253
253
  onBidWon: function (bid) {
254
254
  if (bid && bid.nurl) {
255
- utils.triggerPixel(bid.nurl);
255
+ triggerPixel(bid.nurl);
256
256
  }
257
257
  }
258
258
  }
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import * as utils from '../src/utils.js';
8
+ import { parseUrl, buildUrl, triggerPixel, logInfo, hasDeviceAccess, generateUUID } from '../src/utils.js';
9
9
  import {submodule} from '../src/hook.js';
10
10
  import { coppaDataHandler } from '../src/adapterManager.js';
11
11
  import {getStorageManager} from '../src/storageManager.js';
@@ -53,12 +53,12 @@ function queuePixelCallback(pixelUrl, id = '', callback) {
53
53
  }
54
54
 
55
55
  // Use pubcid as a cache buster
56
- const urlInfo = utils.parseUrl(pixelUrl);
56
+ const urlInfo = parseUrl(pixelUrl);
57
57
  urlInfo.search.id = encodeURIComponent('pubcid:' + id);
58
- const targetUrl = utils.buildUrl(urlInfo);
58
+ const targetUrl = buildUrl(urlInfo);
59
59
 
60
60
  return function () {
61
- utils.triggerPixel(targetUrl);
61
+ triggerPixel(targetUrl);
62
62
  };
63
63
  }
64
64
 
@@ -89,10 +89,10 @@ export const sharedIdSystemSubmodule = {
89
89
  */
90
90
  decode(value, config) {
91
91
  if (hasOptedOut()) {
92
- utils.logInfo('PubCommonId decode: Has opted-out');
92
+ logInfo('PubCommonId decode: Has opted-out');
93
93
  return undefined;
94
94
  }
95
- utils.logInfo(' Decoded value PubCommonId ' + value);
95
+ logInfo(' Decoded value PubCommonId ' + value);
96
96
  const idObj = {'pubcid': value};
97
97
  return idObj;
98
98
  },
@@ -106,13 +106,13 @@ export const sharedIdSystemSubmodule = {
106
106
  */
107
107
  getId: function (config = {}, consentData, storedId) {
108
108
  if (hasOptedOut()) {
109
- utils.logInfo('PubCommonId: Has opted-out');
109
+ logInfo('PubCommonId: Has opted-out');
110
110
  return;
111
111
  }
112
112
  const coppa = coppaDataHandler.getCoppa();
113
113
 
114
114
  if (coppa) {
115
- utils.logInfo('PubCommonId: IDs not provided for coppa requests, exiting PubCommonId');
115
+ logInfo('PubCommonId: IDs not provided for coppa requests, exiting PubCommonId');
116
116
  return;
117
117
  }
118
118
  const {params: {create = true, pixelUrl} = {}} = config;
@@ -126,7 +126,7 @@ export const sharedIdSystemSubmodule = {
126
126
  } catch (e) {
127
127
  }
128
128
 
129
- if (!newId) newId = (create && utils.hasDeviceAccess()) ? utils.generateUUID() : undefined;
129
+ if (!newId) newId = (create && hasDeviceAccess()) ? generateUUID() : undefined;
130
130
  }
131
131
 
132
132
  const pixelCallback = queuePixelCallback(pixelUrl, newId);
@@ -153,12 +153,12 @@ export const sharedIdSystemSubmodule = {
153
153
  */
154
154
  extendId: function(config = {}, consentData, storedId) {
155
155
  if (hasOptedOut()) {
156
- utils.logInfo('PubCommonId: Has opted-out');
156
+ logInfo('PubCommonId: Has opted-out');
157
157
  return {id: undefined};
158
158
  }
159
159
  const coppa = coppaDataHandler.getCoppa();
160
160
  if (coppa) {
161
- utils.logInfo('PubCommonId: IDs not provided for coppa requests, exiting PubCommonId');
161
+ logInfo('PubCommonId: IDs not provided for coppa requests, exiting PubCommonId');
162
162
  return;
163
163
  }
164
164
  const {params: {extend = false, pixelUrl} = {}} = config;
@@ -1,6 +1,6 @@
1
+ import { tryAppendQueryString } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js';
2
3
  import adapterManager from '../src/adapterManager.js';
3
- const utils = require('../src/utils.js');
4
4
 
5
5
  const emptyUrl = '';
6
6
  const analyticsType = 'endpoint';
@@ -42,18 +42,18 @@ var sharethroughAdapter = Object.assign(adapter(
42
42
 
43
43
  fireLoseBeacon(winningBidderCode, winningCPM, arid, type) {
44
44
  let loseBeaconUrl = this.STR_BEACON_HOST;
45
- loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'winnerBidderCode', winningBidderCode);
46
- loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'winnerCpm', winningCPM);
47
- loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'arid', arid);
48
- loseBeaconUrl = utils.tryAppendQueryString(loseBeaconUrl, 'type', type);
45
+ loseBeaconUrl = tryAppendQueryString(loseBeaconUrl, 'winnerBidderCode', winningBidderCode);
46
+ loseBeaconUrl = tryAppendQueryString(loseBeaconUrl, 'winnerCpm', winningCPM);
47
+ loseBeaconUrl = tryAppendQueryString(loseBeaconUrl, 'arid', arid);
48
+ loseBeaconUrl = tryAppendQueryString(loseBeaconUrl, 'type', type);
49
49
  loseBeaconUrl = this.appendEnvFields(loseBeaconUrl);
50
50
 
51
51
  this.fireBeacon(loseBeaconUrl);
52
52
  },
53
53
  appendEnvFields(url) {
54
- url = utils.tryAppendQueryString(url, 'hbVersion', '$prebid.version$');
55
- url = utils.tryAppendQueryString(url, 'strVersion', STR_VERSION);
56
- url = utils.tryAppendQueryString(url, 'hbSource', 'prebid');
54
+ url = tryAppendQueryString(url, 'hbVersion', '$prebid.version$');
55
+ url = tryAppendQueryString(url, 'strVersion', STR_VERSION);
56
+ url = tryAppendQueryString(url, 'hbSource', 'prebid');
57
57
 
58
58
  return url;
59
59
  },
@@ -1,11 +1,10 @@
1
+ import { generateUUID, deepAccess, inIframe } from '../src/utils.js';
1
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
2
- import * as utils from '../src/utils.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
5
5
  import { createEidsArray } from './userId/eids.js';
6
- import find from 'core-js-pure/features/array/find.js';
7
6
 
8
- const VERSION = '4.0.0';
7
+ const VERSION = '4.0.1';
9
8
  const BIDDER_CODE = 'sharethrough';
10
9
  const SUPPLY_ID = 'WYu2BXv1';
11
10
 
@@ -29,7 +28,7 @@ export const sharethroughAdapterSpec = {
29
28
  const secure = nonHttp || (sharethroughInternal.getProtocol().indexOf('https') > -1);
30
29
 
31
30
  const req = {
32
- id: utils.generateUUID(),
31
+ id: generateUUID(),
33
32
  at: 1,
34
33
  cur: ['USD'],
35
34
  tmax: timeout,
@@ -82,7 +81,7 @@ export const sharethroughAdapterSpec = {
82
81
  const imps = bidRequests.map(bidReq => {
83
82
  const impression = {};
84
83
 
85
- const gpid = utils.deepAccess(bidReq, 'ortb2Imp.ext.data.pbadslot');
84
+ const gpid = deepAccess(bidReq, 'ortb2Imp.ext.data.pbadslot');
86
85
  if (gpid) {
87
86
  impression.ext = { gpid: gpid };
88
87
  }
@@ -104,7 +103,7 @@ export const sharethroughAdapterSpec = {
104
103
 
105
104
  impression.video = {
106
105
  pos: nullish(videoRequest.pos, 0),
107
- topframe: utils.inIframe() ? 0 : 1,
106
+ topframe: inIframe() ? 0 : 1,
108
107
  skip: nullish(videoRequest.skip, 0),
109
108
  linearity: nullish(videoRequest.linearity, 1),
110
109
  minduration: nullish(videoRequest.minduration, 5),
@@ -126,8 +125,8 @@ export const sharethroughAdapterSpec = {
126
125
  if (videoRequest.companionad) impression.video.companionad = videoRequest.companionad;
127
126
  } else {
128
127
  impression.banner = {
129
- pos: utils.deepAccess(bidReq, 'mediaTypes.banner.pos', 0),
130
- topframe: utils.inIframe() ? 0 : 1,
128
+ pos: deepAccess(bidReq, 'mediaTypes.banner.pos', 0),
129
+ topframe: inIframe() ? 0 : 1,
131
130
  format: bidReq.sizes.map(size => ({ w: +size[0], h: +size[1] })),
132
131
  };
133
132
  }
@@ -141,16 +140,16 @@ export const sharethroughAdapterSpec = {
141
140
  };
142
141
  }).filter(imp => !!imp);
143
142
 
144
- return {
145
- method: 'POST',
146
- url: STR_ENDPOINT,
147
- data: {
148
- ...req,
149
- imp: imps,
150
- },
151
- bidRequests,
152
- bidderRequest,
153
- };
143
+ return imps.map(impression => {
144
+ return {
145
+ method: 'POST',
146
+ url: STR_ENDPOINT,
147
+ data: {
148
+ ...req,
149
+ imp: [impression],
150
+ },
151
+ };
152
+ });
154
153
  },
155
154
 
156
155
  interpretResponse: ({ body }, req) => {
@@ -159,8 +158,6 @@ export const sharethroughAdapterSpec = {
159
158
  }
160
159
 
161
160
  return body.seatbid[0].bid.map(bid => {
162
- const request = matchRequest(bid.impid, req);
163
-
164
161
  const response = {
165
162
  requestId: bid.impid,
166
163
  width: +bid.w,
@@ -168,7 +165,7 @@ export const sharethroughAdapterSpec = {
168
165
  cpm: +bid.price,
169
166
  creativeId: bid.crid,
170
167
  dealId: bid.dealid || null,
171
- mediaType: request.mediaTypes && request.mediaTypes.video ? VIDEO : BANNER,
168
+ mediaType: req.data.imp[0].video ? VIDEO : BANNER,
172
169
  currency: body.cur || 'USD',
173
170
  netRevenue: true,
174
171
  ttl: 360,
@@ -252,9 +249,9 @@ function getBidRequestFloor(bid) {
252
249
  }
253
250
 
254
251
  function userIdAsEids(bidRequest) {
255
- const eids = createEidsArray(utils.deepAccess(bidRequest, 'userId')) || [];
252
+ const eids = createEidsArray(deepAccess(bidRequest, 'userId')) || [];
256
253
 
257
- const flocData = utils.deepAccess(bidRequest, 'userId.flocId');
254
+ const flocData = deepAccess(bidRequest, 'userId.flocId');
258
255
  const isFlocIdValid = flocData && flocData.id && flocData.version;
259
256
  if (isFlocIdValid) {
260
257
  eids.push({
@@ -270,10 +267,6 @@ function getProtocol() {
270
267
  return window.location.protocol;
271
268
  }
272
269
 
273
- function matchRequest(id, request) {
274
- return find(request.bidRequests, bid => bid.bidId === id);
275
- }
276
-
277
270
  // stub for ?? operator
278
271
  function nullish(input, def) {
279
272
  return input === null || input === undefined ? def : input;
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess, getBidIdParameter, getWindowTop, logError } from '../src/utils.js';
2
2
  import { config } from '../src/config.js';
3
3
  import { Renderer } from '../src/Renderer.js';
4
4
  import { registerBidder } from '../src/adapters/bidderFactory.js';
@@ -32,18 +32,18 @@ export const spec = {
32
32
  let adUnits = [];
33
33
  const pageURL = validBidRequests[0].params.contentPageUrl || bidderRequest.refererInfo.referer;
34
34
  const isStage = !!validBidRequests[0].params.stage;
35
- const isOutstream = utils.deepAccess(validBidRequests[0], 'mediaTypes.video.context') === 'outstream';
36
- const isCustomRender = utils.deepAccess(validBidRequests[0], 'params.outstreamOptions.customRender');
37
- const isNodeRender = utils.deepAccess(validBidRequests[0], 'params.outstreamOptions.slot') || utils.deepAccess(validBidRequests[0], 'params.outstreamOptions.iframe');
38
- const isNativeRender = utils.deepAccess(validBidRequests[0], 'renderer');
39
- const outstreamOptions = utils.deepAccess(validBidRequests[0], 'params.outstreamOptions');
35
+ const isOutstream = deepAccess(validBidRequests[0], 'mediaTypes.video.context') === 'outstream';
36
+ const isCustomRender = deepAccess(validBidRequests[0], 'params.outstreamOptions.customRender');
37
+ const isNodeRender = deepAccess(validBidRequests[0], 'params.outstreamOptions.slot') || deepAccess(validBidRequests[0], 'params.outstreamOptions.iframe');
38
+ const isNativeRender = deepAccess(validBidRequests[0], 'renderer');
39
+ const outstreamOptions = deepAccess(validBidRequests[0], 'params.outstreamOptions');
40
40
  const isBanner = !!validBidRequests[0].mediaTypes.banner || (isOutstream && !(isCustomRender || isNativeRender || isNodeRender));
41
41
  const defaultSchain = validBidRequests[0].schain || {};
42
42
 
43
43
  validBidRequests.forEach((bid) => {
44
44
  const videoSizes = getVideoSizes(bid);
45
45
  const bannerSizes = getBannerSizes(bid);
46
- const vpaidMode = utils.getBidIdParameter('vpaidMode', bid.params);
46
+ const vpaidMode = getBidIdParameter('vpaidMode', bid.params);
47
47
 
48
48
  const makeBids = (type, size) => {
49
49
  let context = '';
@@ -52,7 +52,7 @@ export const spec = {
52
52
  if (type === BANNER) {
53
53
  streamType = 5;
54
54
  } else {
55
- context = utils.deepAccess(bid, 'mediaTypes.video.context');
55
+ context = deepAccess(bid, 'mediaTypes.video.context');
56
56
  if (vpaidMode && context === 'instream') {
57
57
  streamType = 1;
58
58
  }
@@ -66,7 +66,7 @@ export const spec = {
66
66
  bidId: bid.bidId,
67
67
  mediaType: type,
68
68
  context: context,
69
- playerId: utils.getBidIdParameter('playerId', bid.params),
69
+ playerId: getBidIdParameter('playerId', bid.params),
70
70
  auctionId: bidderRequest.auctionId,
71
71
  bidderCode: BIDDER_CODE,
72
72
  gdprConsent: bidderRequest.gdprConsent,
@@ -100,7 +100,7 @@ export const spec = {
100
100
  'adapterVersion': 2,
101
101
  'pageURL': encodeURIComponent(pageURL),
102
102
  'vastCacheEnabled': (!!config.getConfig('cache') && !isBanner && !outstreamOptions) || false,
103
- 'isDesktop': utils.getWindowTop().document.documentElement.clientWidth > 700,
103
+ 'isDesktop': getWindowTop().document.documentElement.clientWidth > 700,
104
104
  'xmlAndTag': !!(isOutstream && isCustomRender) || false,
105
105
  'stage': isStage || undefined
106
106
  },
@@ -192,9 +192,9 @@ function createBids(bidRes, reqData) {
192
192
  vastXml: bid.vastXml,
193
193
  debug: reqData.debug,
194
194
  isStage: !!reqData.meta.stage,
195
- customRender: utils.getBidIdParameter('customRender', currentBidParams.outstreamOptions),
196
- slot: utils.getBidIdParameter('slot', currentBidParams.outstreamOptions),
197
- iframe: utils.getBidIdParameter('iframe', currentBidParams.outstreamOptions),
195
+ customRender: getBidIdParameter('customRender', currentBidParams.outstreamOptions),
196
+ slot: getBidIdParameter('slot', currentBidParams.outstreamOptions),
197
+ iframe: getBidIdParameter('iframe', currentBidParams.outstreamOptions),
198
198
  }
199
199
  });
200
200
  renderer.setRender(outstreamRender);
@@ -212,7 +212,7 @@ function outstreamRender(bid) {
212
212
  bid.renderer.config.customRender(bid, embedCode);
213
213
  } else {
214
214
  try {
215
- const inIframe = utils.getBidIdParameter('iframe', bid.renderer.config);
215
+ const inIframe = getBidIdParameter('iframe', bid.renderer.config);
216
216
  if (inIframe && window.document.getElementById(inIframe).nodeName === 'IFRAME') {
217
217
  const iframe = window.document.getElementById(inIframe);
218
218
  let framedoc = iframe.contentDocument || (iframe.contentWindow && iframe.contentWindow.document);
@@ -220,20 +220,20 @@ function outstreamRender(bid) {
220
220
  return;
221
221
  }
222
222
 
223
- const slot = utils.getBidIdParameter('slot', bid.renderer.config) || bid.adUnitCode;
223
+ const slot = getBidIdParameter('slot', bid.renderer.config) || bid.adUnitCode;
224
224
  if (slot && window.document.getElementById(slot)) {
225
225
  window.document.getElementById(slot).appendChild(embedCode);
226
226
  } else if (slot) {
227
- utils.logError('[ShowHeroes][renderer] Error: spot not found');
227
+ logError('[ShowHeroes][renderer] Error: spot not found');
228
228
  }
229
229
  } catch (err) {
230
- utils.logError('[ShowHeroes][renderer] Error:' + err.message)
230
+ logError('[ShowHeroes][renderer] Error:' + err.message)
231
231
  }
232
232
  }
233
233
  }
234
234
 
235
235
  function createOutstreamEmbedCode(bid) {
236
- const isStage = utils.getBidIdParameter('isStage', bid.renderer.config);
236
+ const isStage = getBidIdParameter('isStage', bid.renderer.config);
237
237
  const urls = getEnvURLs(isStage);
238
238
 
239
239
  const fragment = window.document.createDocumentFragment();
@@ -245,9 +245,9 @@ function createOutstreamEmbedCode(bid) {
245
245
 
246
246
  const spot = window.document.createElement('div');
247
247
  spot.setAttribute('class', 'showheroes-spot');
248
- spot.setAttribute('data-player', utils.getBidIdParameter('playerId', bid.renderer.config));
249
- spot.setAttribute('data-debug', utils.getBidIdParameter('debug', bid.renderer.config));
250
- spot.setAttribute('data-ad-vast-tag', utils.getBidIdParameter('vastUrl', bid.renderer.config));
248
+ spot.setAttribute('data-player', getBidIdParameter('playerId', bid.renderer.config));
249
+ spot.setAttribute('data-debug', getBidIdParameter('debug', bid.renderer.config));
250
+ spot.setAttribute('data-ad-vast-tag', getBidIdParameter('vastUrl', bid.renderer.config));
251
251
  spot.setAttribute('data-stream-type', 'outstream');
252
252
 
253
253
  fragment.appendChild(spot);
@@ -275,11 +275,11 @@ function getBannerHtml (bid, reqBid, reqData) {
275
275
  }
276
276
 
277
277
  function getVideoSizes(bidRequest) {
278
- return formatSizes(utils.deepAccess(bidRequest, 'mediaTypes.video.playerSize') || []);
278
+ return formatSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize') || []);
279
279
  }
280
280
 
281
281
  function getBannerSizes(bidRequest) {
282
- return formatSizes(utils.deepAccess(bidRequest, 'mediaTypes.banner.sizes') || []);
282
+ return formatSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes') || []);
283
283
  }
284
284
 
285
285
  function formatSizes(sizes) {