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,6 +1,6 @@
1
+ import { getWindowTop, isGptPubadsDefined, deepAccess, getAdUnitSizes, isEmpty } from '../src/utils.js';
1
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
2
3
  import { config } from '../src/config.js';
3
- import * as utils from '../src/utils.js';
4
4
  import { BANNER, NATIVE } from '../src/mediaTypes.js';
5
5
  import { getStorageManager } from '../src/storageManager.js';
6
6
  import { ajax } from '../src/ajax.js';
@@ -199,7 +199,7 @@ export const spec = {
199
199
  // GET BASIC CLIENT INFORMATION
200
200
  get_client_info: function () {
201
201
  let botTest = new BotClientTests();
202
- let win = utils.getWindowTop();
202
+ let win = getWindowTop();
203
203
  return {
204
204
  'wiw': win.innerWidth,
205
205
  'wih': win.innerHeight,
@@ -226,7 +226,7 @@ export const spec = {
226
226
 
227
227
  // ADD GPT EVENT LISTENERS
228
228
  let scope = this;
229
- if (utils.isGptPubadsDefined()) {
229
+ if (isGptPubadsDefined()) {
230
230
  if (typeof window['googletag'].pubads().addEventListener == 'function') {
231
231
  window['googletag'].pubads().addEventListener('impressionViewable', function(event) {
232
232
  scope.queue_metric({type: 'slot_view', source_id: scope.db_obj.source_id, auction_id: bid.auctionId, div_id: event.slot.getSlotElementId(), slot_id: event.slot.getSlotId().getAdUnitPath()});
@@ -306,7 +306,7 @@ export const spec = {
306
306
  tagid: bidRequest.params.tagid || bidRequest.adUnitCode,
307
307
  placement_id: bidRequest.params.placement_id || 0,
308
308
  secure: window.location.protocol == 'https:',
309
- ortb2: utils.deepAccess(bidRequest, `ortb2Imp`) || {},
309
+ ortb2: deepAccess(bidRequest, `ortb2Imp`) || {},
310
310
  floor: {}
311
311
  }
312
312
 
@@ -320,8 +320,8 @@ export const spec = {
320
320
  }
321
321
 
322
322
  // BUILD THE SIZES
323
- if (utils.deepAccess(bidRequest, `mediaTypes.banner`)) {
324
- let sizes = utils.getAdUnitSizes(bidRequest);
323
+ if (deepAccess(bidRequest, `mediaTypes.banner`)) {
324
+ let sizes = getAdUnitSizes(bidRequest);
325
325
  if (sizes.length) {
326
326
  imp.banner = {
327
327
  w: sizes[0][0],
@@ -332,7 +332,7 @@ export const spec = {
332
332
  // ADD TO THE LIST OF IMP REQUESTS
333
333
  imps.push(imp);
334
334
  }
335
- } else if (utils.deepAccess(bidRequest, `mediaTypes.native`)) {
335
+ } else if (deepAccess(bidRequest, `mediaTypes.native`)) {
336
336
  // ADD TO THE LIST OF IMP REQUESTS
337
337
  imp.native = createNativeRequest(bidRequest);
338
338
  imps.push(imp);
@@ -521,15 +521,15 @@ export const spec = {
521
521
  const {id, img, data, title} = asset;
522
522
  const key = NATIVE_ID_MAP[id];
523
523
  if (key) {
524
- if (!utils.isEmpty(title)) {
524
+ if (!isEmpty(title)) {
525
525
  result.title = title.text
526
- } else if (!utils.isEmpty(img)) {
526
+ } else if (!isEmpty(img)) {
527
527
  result[key] = {
528
528
  url: img.url,
529
529
  height: img.h,
530
530
  width: img.w
531
531
  }
532
- } else if (!utils.isEmpty(data)) {
532
+ } else if (!isEmpty(data)) {
533
533
  result[key] = data.value;
534
534
  }
535
535
  }
@@ -539,11 +539,11 @@ export const spec = {
539
539
  }
540
540
 
541
541
  let bids = [];
542
- let resBids = utils.deepAccess(rtbResponse, 'body.seatbid') || [];
542
+ let resBids = deepAccess(rtbResponse, 'body.seatbid') || [];
543
543
  resBids.forEach(bid => {
544
544
  let resultItem = {requestId: bid.id, cpm: bid.price, creativeId: bid.crid, currency: bid.currency || 'USD', netRevenue: true, ttl: bid.ttl || 360, meta: {advertiserDomains: bid.adomain}};
545
545
 
546
- let mediaType = utils.deepAccess(bid, 'ext.mtype') || '';
546
+ let mediaType = deepAccess(bid, 'ext.mtype') || '';
547
547
  switch (mediaType) {
548
548
  case 'banner':
549
549
  bids.push(Object.assign({}, resultItem, {mediaType: BANNER, width: bid.w, height: bid.h, ad: bid.adm}));
@@ -1,6 +1,6 @@
1
+ import { generateUUID, deepSetValue, deepAccess, isArray } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
3
  import {BANNER} from '../src/mediaTypes.js';
3
- import * as utils from '../src/utils.js';
4
4
  const BIDDER_CODE = 'deepintent';
5
5
  const BIDDER_ENDPOINT = 'https://prebid.deepintent.com/prebid';
6
6
  const USER_SYNC_URL = 'https://cdn.deepintent.com/syncpixel.html';
@@ -32,7 +32,7 @@ export const spec = {
32
32
  var user = validBidRequests.map(bid => buildUser(bid));
33
33
  clean(user);
34
34
  const openRtbBidRequest = {
35
- id: utils.generateUUID(),
35
+ id: generateUUID(),
36
36
  at: 1,
37
37
  imp: validBidRequests.map(bid => buildImpression(bid)),
38
38
  site: buildSite(bidderRequest),
@@ -41,12 +41,12 @@ export const spec = {
41
41
  };
42
42
 
43
43
  if (bidderRequest && bidderRequest.uspConsent) {
44
- utils.deepSetValue(openRtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
44
+ deepSetValue(openRtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
45
45
  }
46
46
 
47
47
  if (bidderRequest && bidderRequest.gdprConsent) {
48
- utils.deepSetValue(openRtbBidRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
49
- utils.deepSetValue(openRtbBidRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
48
+ deepSetValue(openRtbBidRequest, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
49
+ deepSetValue(openRtbBidRequest, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
50
50
  }
51
51
 
52
52
  injectEids(openRtbBidRequest, validBidRequests);
@@ -134,19 +134,19 @@ function buildUser(bid) {
134
134
  }
135
135
 
136
136
  function injectEids(openRtbBidRequest, validBidRequests) {
137
- const bidUserIdAsEids = utils.deepAccess(validBidRequests, '0.userIdAsEids');
138
- if (utils.isArray(bidUserIdAsEids) && bidUserIdAsEids.length > 0) {
139
- utils.deepSetValue(openRtbBidRequest, 'user.eids', bidUserIdAsEids);
140
- utils.deepSetValue(openRtbBidRequest, 'user.ext.eids', bidUserIdAsEids);
137
+ const bidUserIdAsEids = deepAccess(validBidRequests, '0.userIdAsEids');
138
+ if (isArray(bidUserIdAsEids) && bidUserIdAsEids.length > 0) {
139
+ deepSetValue(openRtbBidRequest, 'user.eids', bidUserIdAsEids);
140
+ deepSetValue(openRtbBidRequest, 'user.ext.eids', bidUserIdAsEids);
141
141
  }
142
142
  }
143
143
 
144
144
  function buildBanner(bid) {
145
- if (utils.deepAccess(bid, 'mediaTypes.banner')) {
145
+ if (deepAccess(bid, 'mediaTypes.banner')) {
146
146
  // Get Sizes from MediaTypes Object, Will always take first size, will be overrided by params for exact w,h
147
- if (utils.deepAccess(bid, 'mediaTypes.banner.sizes') && !bid.params.height && !bid.params.width) {
148
- let sizes = utils.deepAccess(bid, 'mediaTypes.banner.sizes');
149
- if (utils.isArray(sizes) && sizes.length > 0) {
147
+ if (deepAccess(bid, 'mediaTypes.banner.sizes') && !bid.params.height && !bid.params.width) {
148
+ let sizes = deepAccess(bid, 'mediaTypes.banner.sizes');
149
+ if (isArray(sizes) && sizes.length > 0) {
150
150
  return {
151
151
  h: sizes[0][1],
152
152
  w: sizes[0][0],
@@ -7,7 +7,7 @@
7
7
  * @requires module:modules/realTimeData
8
8
  */
9
9
 
10
- import * as utils from '../src/utils.js';
10
+ import { logMessage, deepSetValue, logError, logInfo } from '../src/utils.js';
11
11
  import { ajax } from '../src/ajax.js';
12
12
  import { submodule } from '../src/hook.js';
13
13
  import { getGlobal } from '../src/prebidGlobal.js';
@@ -26,19 +26,19 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
26
26
  const url = (moduleConfig && moduleConfig.params && moduleConfig.params.url) ? moduleConfig.params.url : URL + encodeURIComponent(window.location.href);
27
27
  const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
28
28
  let isFinish = false;
29
- utils.logMessage('[dgkeyword sub module]', adUnits, timeout);
29
+ logMessage('[dgkeyword sub module]', adUnits, timeout);
30
30
  let setKeywordTargetBidders = getTargetBidderOfDgKeywords(adUnits);
31
31
  if (setKeywordTargetBidders.length <= 0) {
32
- utils.logMessage('[dgkeyword sub module] no dgkeyword targets.');
32
+ logMessage('[dgkeyword sub module] no dgkeyword targets.');
33
33
  callback();
34
34
  } else {
35
- utils.logMessage('[dgkeyword sub module] dgkeyword targets:', setKeywordTargetBidders);
36
- utils.logMessage('[dgkeyword sub module] get targets from profile api start.');
35
+ logMessage('[dgkeyword sub module] dgkeyword targets:', setKeywordTargetBidders);
36
+ logMessage('[dgkeyword sub module] get targets from profile api start.');
37
37
  ajax(url, {
38
38
  success: function(response) {
39
39
  const res = JSON.parse(response);
40
40
  if (!isFinish) {
41
- utils.logMessage('[dgkeyword sub module] get targets from profile api end.');
41
+ logMessage('[dgkeyword sub module] get targets from profile api end.');
42
42
  if (res) {
43
43
  let keywords = {};
44
44
  if (res['s'] != null && res['s'].length > 0) {
@@ -60,8 +60,8 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
60
60
  if (!reqBidsConfigObj._ignoreSetOrtb2) {
61
61
  // set keywrods to ortb2
62
62
  let addOrtb2 = {};
63
- utils.deepSetValue(addOrtb2, 'site.keywords', keywords);
64
- utils.deepSetValue(addOrtb2, 'user.keywords', keywords);
63
+ deepSetValue(addOrtb2, 'site.keywords', keywords);
64
+ deepSetValue(addOrtb2, 'user.keywords', keywords);
65
65
  const ortb2 = {ortb2: addOrtb2};
66
66
  reqBidsConfigObj.setBidderConfig({ bidders: Object.keys(targetBidKeys), config: ortb2 });
67
67
  }
@@ -73,17 +73,16 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
73
73
  },
74
74
  error: function(errorStatus) {
75
75
  // error occur
76
- utils.logError('[dgkeyword sub module] profile api access error.', errorStatus);
76
+ logError('[dgkeyword sub module] profile api access error.', errorStatus);
77
77
  callback();
78
78
  }
79
79
  }, null, {
80
80
  withCredentials: true,
81
- contentType: 'application/json',
82
81
  });
83
82
  setTimeout(function () {
84
83
  if (!isFinish) {
85
84
  // profile api timeout
86
- utils.logInfo('[dgkeyword sub module] profile api timeout. [timeout: ' + timeout + 'ms]');
85
+ logInfo('[dgkeyword sub module] profile api timeout. [timeout: ' + timeout + 'ms]');
87
86
  isFinish = true;
88
87
  }
89
88
  callback();
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { isArray, generateUUID, deepAccess, isStr } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
@@ -30,7 +30,7 @@ export const spec = {
30
30
  interpretResponse(response, bidRequest) {
31
31
  response = response.body || {};
32
32
  if (response.seatbid) {
33
- if (utils.isArray(response.seatbid)) {
33
+ if (isArray(response.seatbid)) {
34
34
  const { seatbid } = response;
35
35
  let winners = seatbid.reduce((bid, ads) => {
36
36
  let ad = ads.bid.reduce(function (oBid, nBid) {
@@ -89,7 +89,7 @@ export const spec = {
89
89
  let timeout = config.getConfig('bidderTimeout');
90
90
  let schain = null;
91
91
  let dmxRequest = {
92
- id: utils.generateUUID(),
92
+ id: generateUUID(),
93
93
  cur: ['USD'],
94
94
  tmax: (timeout - 300),
95
95
  test: this.test() || 0,
@@ -109,17 +109,17 @@ export const spec = {
109
109
 
110
110
  let eids = [];
111
111
  if (bidRequest[0] && bidRequest[0].userId) {
112
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.idl_env`), 'liveramp.com', 1);
113
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.id5id.uid`), 'id5-sync.com', 1);
114
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.pubcid`), 'pubcid.org', 1);
115
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.tdid`), 'adserver.org', 1);
116
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.criteoId`), 'criteo.com', 1);
117
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.britepoolid`), 'britepool.com', 1);
118
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.lipb.lipbid`), 'liveintent.com', 1);
119
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.intentiqid`), 'intentiq.com', 1);
120
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.lotamePanoramaId`), 'lotame.com', 1);
121
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.parrableId`), 'parrable.com', 1);
122
- bindUserId(eids, utils.deepAccess(bidRequest[0], `userId.netId`), 'netid.de', 1);
112
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.idl_env`), 'liveramp.com', 1);
113
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.id5id.uid`), 'id5-sync.com', 1);
114
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.pubcid`), 'pubcid.org', 1);
115
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.tdid`), 'adserver.org', 1);
116
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.criteoId`), 'criteo.com', 1);
117
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.britepoolid`), 'britepool.com', 1);
118
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.lipb.lipbid`), 'liveintent.com', 1);
119
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.intentiqid`), 'intentiq.com', 1);
120
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.lotamePanoramaId`), 'lotame.com', 1);
121
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.parrableId`), 'parrable.com', 1);
122
+ bindUserId(eids, deepAccess(bidRequest[0], `userId.netId`), 'netid.de', 1);
123
123
  dmxRequest.user = dmxRequest.user || {};
124
124
  dmxRequest.user.ext = dmxRequest.user.ext || {};
125
125
  dmxRequest.user.ext.eids = eids;
@@ -370,7 +370,7 @@ export function defaultSize(thebidObj) {
370
370
  }
371
371
 
372
372
  export function bindUserId(eids, value, source, atype) {
373
- if (utils.isStr(value) && Array.isArray(eids)) {
373
+ if (isStr(value) && Array.isArray(eids)) {
374
374
  eids.push({
375
375
  source,
376
376
  uids: [
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import * as utils from '../src/utils.js';
8
+ import { logError, getWindowLocation } from '../src/utils.js';
9
9
  import { submodule } from '../src/hook.js';
10
10
  import { ajax } from '../src/ajax.js';
11
11
 
@@ -46,7 +46,7 @@ export const dmdIdSubmodule = {
46
46
  !configParams.api_key ||
47
47
  typeof configParams.api_key !== 'string'
48
48
  ) {
49
- utils.logError('dmd submodule requires an api_key.');
49
+ logError('dmd submodule requires an api_key.');
50
50
  return;
51
51
  }
52
52
  // If cahceIdObj is null or undefined - calling AIX-API
@@ -59,7 +59,7 @@ export const dmdIdSubmodule = {
59
59
  // Setting headers
60
60
  const headers = {};
61
61
  headers['x-api-key'] = configParams.api_key;
62
- headers['x-domain'] = utils.getWindowLocation();
62
+ headers['x-domain'] = getWindowLocation();
63
63
  // Response callbacks
64
64
  const resp = function (callback) {
65
65
  const callbacks = {
@@ -72,12 +72,12 @@ export const dmdIdSubmodule = {
72
72
  responseId = responseObj.dgid;
73
73
  }
74
74
  } catch (error) {
75
- utils.logError(error);
75
+ logError(error);
76
76
  }
77
77
  callback(responseId);
78
78
  },
79
79
  error: error => {
80
- utils.logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
80
+ logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
81
81
  callback();
82
82
  }
83
83
  };
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { tryAppendQueryString } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { BANNER } from '../src/mediaTypes.js';
@@ -24,14 +24,14 @@ export const spec = {
24
24
  const { publisherUrl, placementId } = validBidRequest.params;
25
25
  const url = publisherUrl || page
26
26
  let queryString = '';
27
- queryString = utils.tryAppendQueryString(queryString, 'id', placementId);
28
- queryString = utils.tryAppendQueryString(queryString, 'publisherDomain', domain);
29
- queryString = utils.tryAppendQueryString(queryString, 'pubRequestedURL', encodeURIComponent(url));
30
- queryString = utils.tryAppendQueryString(queryString, 'loggedInUser', encodedUserInfo);
31
- queryString = utils.tryAppendQueryString(queryString, 'currentUrl', url);
32
- queryString = utils.tryAppendQueryString(queryString, 'prebidjs', true);
33
- queryString = utils.tryAppendQueryString(queryString, 'token', token);
34
- queryString = utils.tryAppendQueryString(queryString, 'requestId', validBidRequest.bidId);
27
+ queryString = tryAppendQueryString(queryString, 'id', placementId);
28
+ queryString = tryAppendQueryString(queryString, 'publisherDomain', domain);
29
+ queryString = tryAppendQueryString(queryString, 'pubRequestedURL', encodeURIComponent(url));
30
+ queryString = tryAppendQueryString(queryString, 'loggedInUser', encodedUserInfo);
31
+ queryString = tryAppendQueryString(queryString, 'currentUrl', url);
32
+ queryString = tryAppendQueryString(queryString, 'prebidjs', true);
33
+ queryString = tryAppendQueryString(queryString, 'token', token);
34
+ queryString = tryAppendQueryString(queryString, 'requestId', validBidRequest.bidId);
35
35
 
36
36
  serverRequests.push({
37
37
  method: 'GET',
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { deepAccess } from '../src/utils.js';
2
2
  import {config} from '../src/config.js';
3
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
@@ -199,7 +199,7 @@ function objectToQueryString(obj, prefix) {
199
199
  * @returns {boolean} True if it's a banner bid
200
200
  */
201
201
  function isBannerRequest(bid) {
202
- return bid.mediaType === 'banner' || !!utils.deepAccess(bid, 'mediaTypes.banner') || !isVideoRequest(bid);
202
+ return bid.mediaType === 'banner' || !!deepAccess(bid, 'mediaTypes.banner') || !isVideoRequest(bid);
203
203
  }
204
204
 
205
205
  /**
@@ -209,7 +209,7 @@ function isBannerRequest(bid) {
209
209
  * @returns {boolean} True if it's a video bid
210
210
  */
211
211
  function isVideoRequest(bid) {
212
- return bid.mediaType === 'video' || !!utils.deepAccess(bid, 'mediaTypes.video');
212
+ return bid.mediaType === 'video' || !!deepAccess(bid, 'mediaTypes.video');
213
213
  }
214
214
 
215
215
  /**
@@ -219,7 +219,7 @@ function isVideoRequest(bid) {
219
219
  * @returns {object} True if it's a video bid
220
220
  */
221
221
  function getVideoSizes(bid) {
222
- return parseSizes(utils.deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
222
+ return parseSizes(deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
223
223
  }
224
224
 
225
225
  /**
@@ -229,7 +229,7 @@ function getVideoSizes(bid) {
229
229
  * @returns {object} True if it's a video bid
230
230
  */
231
231
  function getBannerSizes(bid) {
232
- return parseSizes(utils.deepAccess(bid, 'mediaTypes.banner.sizes') || bid.sizes);
232
+ return parseSizes(deepAccess(bid, 'mediaTypes.banner.sizes') || bid.sizes);
233
233
  }
234
234
 
235
235
  /**
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { logInfo, getBidIdParameter } from '../src/utils.js';
2
2
  import { VIDEO, BANNER } from '../src/mediaTypes.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
4
  const BIDDER_CODE = 'ebdr';
@@ -18,11 +18,11 @@ export const spec = {
18
18
  let zoneid = '';
19
19
  let requestId = '';
20
20
  bids.forEach(bid => {
21
- utils.logInfo('Log bid', bid);
22
- let bidFloor = utils.getBidIdParameter('bidfloor', bid.params);
21
+ logInfo('Log bid', bid);
22
+ let bidFloor = getBidIdParameter('bidfloor', bid.params);
23
23
  let whArr = getWidthAndHeight(bid);
24
24
  let _mediaTypes = (bid.mediaTypes && bid.mediaTypes.video) ? VIDEO : BANNER;
25
- zoneid = utils.getBidIdParameter('zoneid', bid.params);
25
+ zoneid = getBidIdParameter('zoneid', bid.params);
26
26
  requestId = bid.bidderRequestId;
27
27
  ebdrImps.push({
28
28
  id: bid.bidId,
@@ -36,9 +36,9 @@ export const spec = {
36
36
  w: whArr[0],
37
37
  h: whArr[1]
38
38
  };
39
- ebdrParams['latitude'] = utils.getBidIdParameter('latitude', bid.params);
40
- ebdrParams['longitude'] = utils.getBidIdParameter('longitude', bid.params);
41
- ebdrParams['ifa'] = (utils.getBidIdParameter('IDFA', bid.params).length > utils.getBidIdParameter('ADID', bid.params).length) ? utils.getBidIdParameter('IDFA', bid.params) : utils.getBidIdParameter('ADID', bid.params);
39
+ ebdrParams['latitude'] = getBidIdParameter('latitude', bid.params);
40
+ ebdrParams['longitude'] = getBidIdParameter('longitude', bid.params);
41
+ ebdrParams['ifa'] = (getBidIdParameter('IDFA', bid.params).length > getBidIdParameter('ADID', bid.params).length) ? getBidIdParameter('IDFA', bid.params) : getBidIdParameter('ADID', bid.params);
42
42
  });
43
43
  let ebdrBidReq = {
44
44
  id: requestId,
@@ -62,8 +62,8 @@ export const spec = {
62
62
  };
63
63
  },
64
64
  interpretResponse: function(serverResponse, bidRequest) {
65
- utils.logInfo('Log serverResponse', serverResponse);
66
- utils.logInfo('Log bidRequest', bidRequest);
65
+ logInfo('Log serverResponse', serverResponse);
66
+ logInfo('Log bidRequest', bidRequest);
67
67
  let ebdrResponseImps = [];
68
68
  const ebdrResponseObj = serverResponse.body;
69
69
  if (!ebdrResponseObj || !ebdrResponseObj.seatbid || ebdrResponseObj.seatbid.length === 0 || !ebdrResponseObj.seatbid[0].bid || ebdrResponseObj.seatbid[0].bid.length === 0) {
@@ -1,4 +1,4 @@
1
- import * as utils from '../src/utils.js';
1
+ import { isArray, logWarn, logError, parseUrl, deepAccess, isStr, _each, getBidIdParameter, isFn, isPlainObject } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
4
4
  import { Renderer } from '../src/Renderer.js';
@@ -18,11 +18,11 @@ const EIDS_SUPPORTED = [
18
18
 
19
19
  export const emxAdapter = {
20
20
  validateSizes: (sizes) => {
21
- if (!utils.isArray(sizes) || typeof sizes[0] === 'undefined') {
22
- utils.logWarn(BIDDER_CODE + ': Sizes should be an array');
21
+ if (!isArray(sizes) || typeof sizes[0] === 'undefined') {
22
+ logWarn(BIDDER_CODE + ': Sizes should be an array');
23
23
  return false;
24
24
  }
25
- return sizes.every(size => utils.isArray(size) && size.length === 2);
25
+ return sizes.every(size => isArray(size) && size.length === 2);
26
26
  },
27
27
  checkVideoContext: (bid) => {
28
28
  return ((bid && bid.mediaTypes && bid.mediaTypes.video && bid.mediaTypes.video.context) && ((bid.mediaTypes.video.context === 'instream') || (bid.mediaTypes.video.context === 'outstream')));
@@ -31,7 +31,7 @@ export const emxAdapter = {
31
31
  let sizes = [];
32
32
  bid.mediaTypes && bid.mediaTypes.banner && bid.mediaTypes.banner.sizes ? sizes = bid.mediaTypes.banner.sizes : sizes = bid.sizes;
33
33
  if (!emxAdapter.validateSizes(sizes)) {
34
- utils.logWarn(BIDDER_CODE + ': could not detect mediaType banner sizes. Assigning to bid sizes instead');
34
+ logWarn(BIDDER_CODE + ': could not detect mediaType banner sizes. Assigning to bid sizes instead');
35
35
  sizes = bid.sizes
36
36
  }
37
37
  return {
@@ -78,7 +78,7 @@ export const emxAdapter = {
78
78
  cleanProtocols: (video) => {
79
79
  if (video.protocols && includes(video.protocols, 7)) {
80
80
  // not supporting VAST protocol 7 (VAST 4.0);
81
- utils.logWarn(BIDDER_CODE + ': VAST 4.0 is currently not supported. This protocol has been filtered out of the request.');
81
+ logWarn(BIDDER_CODE + ': VAST 4.0 is currently not supported. This protocol has been filtered out of the request.');
82
82
  video.protocols = video.protocols.filter(protocol => protocol !== 7);
83
83
  }
84
84
  return video;
@@ -106,7 +106,7 @@ export const emxAdapter = {
106
106
  try {
107
107
  renderer.setRender(emxAdapter.outstreamRender);
108
108
  } catch (err) {
109
- utils.logWarn('Prebid Error calling setRender on renderer', err);
109
+ logWarn('Prebid Error calling setRender on renderer', err);
110
110
  }
111
111
 
112
112
  return renderer;
@@ -114,7 +114,7 @@ export const emxAdapter = {
114
114
  buildVideo: (bid) => {
115
115
  let videoObj = Object.assign(bid.mediaTypes.video, bid.params.video);
116
116
 
117
- if (utils.isArray(bid.mediaTypes.video.playerSize[0])) {
117
+ if (isArray(bid.mediaTypes.video.playerSize[0])) {
118
118
  videoObj['w'] = bid.mediaTypes.video.playerSize[0][0];
119
119
  videoObj['h'] = bid.mediaTypes.video.playerSize[0][1];
120
120
  } else {
@@ -127,7 +127,7 @@ export const emxAdapter = {
127
127
  try {
128
128
  return decodeURIComponent(bidResponseAdm.replace(/%(?![0-9][0-9a-fA-F]+)/g, '%25'));
129
129
  } catch (err) {
130
- utils.logError('emx_digitalBidAdapter', 'error', err);
130
+ logError('emx_digitalBidAdapter', 'error', err);
131
131
  }
132
132
  },
133
133
  getReferrer: () => {
@@ -138,7 +138,7 @@ export const emxAdapter = {
138
138
  }
139
139
  },
140
140
  getSite: (refInfo) => {
141
- let url = utils.parseUrl(refInfo.referer);
141
+ let url = parseUrl(refInfo.referer);
142
142
  return {
143
143
  domain: url.hostname,
144
144
  page: refInfo.referer,
@@ -182,7 +182,7 @@ export const emxAdapter = {
182
182
  },
183
183
  getUserId(bidRequests) {
184
184
  return ({ key, source, rtiPartner }) => {
185
- let id = utils.deepAccess(bidRequests, `userId.${key}`);
185
+ let id = deepAccess(bidRequests, `userId.${key}`);
186
186
  return id ? emxAdapter.formatEid(id, source, rtiPartner) : null;
187
187
  };
188
188
  },
@@ -203,17 +203,17 @@ export const spec = {
203
203
  supportedMediaTypes: [BANNER, VIDEO],
204
204
  isBidRequestValid: function (bid) {
205
205
  if (!bid || !bid.params) {
206
- utils.logWarn(BIDDER_CODE + ': Missing bid or bid params.');
206
+ logWarn(BIDDER_CODE + ': Missing bid or bid params.');
207
207
  return false;
208
208
  }
209
209
 
210
210
  if (bid.bidder !== BIDDER_CODE) {
211
- utils.logWarn(BIDDER_CODE + ': Must use "emx_digital" as bidder code.');
211
+ logWarn(BIDDER_CODE + ': Must use "emx_digital" as bidder code.');
212
212
  return false;
213
213
  }
214
214
 
215
- if (!bid.params.tagid || !utils.isStr(bid.params.tagid)) {
216
- utils.logWarn(BIDDER_CODE + ': Missing tagid param or tagid present and not type String.');
215
+ if (!bid.params.tagid || !isStr(bid.params.tagid)) {
216
+ logWarn(BIDDER_CODE + ': Missing tagid param or tagid present and not type String.');
217
217
  return false;
218
218
  }
219
219
 
@@ -221,17 +221,17 @@ export const spec = {
221
221
  let sizes;
222
222
  bid.mediaTypes.banner.sizes ? sizes = bid.mediaTypes.banner.sizes : sizes = bid.sizes;
223
223
  if (!emxAdapter.validateSizes(sizes)) {
224
- utils.logWarn(BIDDER_CODE + ': Missing sizes in bid');
224
+ logWarn(BIDDER_CODE + ': Missing sizes in bid');
225
225
  return false;
226
226
  }
227
227
  } else if (bid.mediaTypes && bid.mediaTypes.video) {
228
228
  if (!emxAdapter.checkVideoContext(bid)) {
229
- utils.logWarn(BIDDER_CODE + ': Missing video context: instream or outstream');
229
+ logWarn(BIDDER_CODE + ': Missing video context: instream or outstream');
230
230
  return false;
231
231
  }
232
232
 
233
233
  if (!bid.mediaTypes.video.playerSize) {
234
- utils.logWarn(BIDDER_CODE + ': Missing video playerSize');
234
+ logWarn(BIDDER_CODE + ': Missing video playerSize');
235
235
  return false;
236
236
  }
237
237
  }
@@ -247,8 +247,8 @@ export const spec = {
247
247
  const device = emxAdapter.getDevice();
248
248
  const site = emxAdapter.getSite(bidderRequest.refererInfo);
249
249
 
250
- utils._each(validBidRequests, function (bid) {
251
- let tagid = utils.getBidIdParameter('tagid', bid.params);
250
+ _each(validBidRequests, function (bid) {
251
+ let tagid = getBidIdParameter('tagid', bid.params);
252
252
  let bidfloor = parseFloat(getBidFloor(bid)) || 0;
253
253
  let isVideo = !!bid.mediaTypes.video;
254
254
  let data = {
@@ -364,8 +364,8 @@ export const spec = {
364
364
 
365
365
  // support floors module in prebid 5.0
366
366
  function getBidFloor(bid) {
367
- if (!utils.isFn(bid.getFloor)) {
368
- return parseFloat(utils.getBidIdParameter('bidfloor', bid.params));
367
+ if (!isFn(bid.getFloor)) {
368
+ return parseFloat(getBidIdParameter('bidfloor', bid.params));
369
369
  }
370
370
 
371
371
  let floor = bid.getFloor({
@@ -373,7 +373,7 @@ function getBidFloor(bid) {
373
373
  mediaType: '*',
374
374
  size: '*'
375
375
  });
376
- if (utils.isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
376
+ if (isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
377
377
  return floor.floor;
378
378
  }
379
379
  return null;
@@ -1,8 +1,9 @@
1
+
1
2
  /**
2
3
  * This module sets default values and validates ortb2 first part data
3
4
  * @module modules/firstPartyData
4
5
  */
5
- import * as utils from '../src/utils.js';
6
+ import { timestamp, mergeDeep } from '../src/utils.js';
6
7
  import { submodule } from '../src/hook.js';
7
8
  import { getRefererInfo } from '../src/refererDetection.js';
8
9
  import { getCoreStorageManager } from '../src/storageManager.js';
@@ -32,7 +33,7 @@ export function findRootDomain(fullDomain = window.location.hostname) {
32
33
  const TEST_COOKIE_VALUE = 'writeable';
33
34
  do {
34
35
  rootDomain = domainParts.slice(startIndex).join('.');
35
- let expirationDate = new Date(utils.timestamp() + 10 * 1000).toUTCString();
36
+ let expirationDate = new Date(timestamp() + 10 * 1000).toUTCString();
36
37
 
37
38
  // Write a test cookie
38
39
  coreStorage.setCookie(
@@ -69,14 +70,14 @@ export function findRootDomain(fullDomain = window.location.hostname) {
69
70
  * Checks for referer and if exists merges into ortb2 global data
70
71
  */
71
72
  function setReferer() {
72
- if (getRefererInfo().referer) utils.mergeDeep(ortb2, { site: { ref: getRefererInfo().referer } });
73
+ if (getRefererInfo().referer) mergeDeep(ortb2, { site: { ref: getRefererInfo().referer } });
73
74
  }
74
75
 
75
76
  /**
76
77
  * Checks for canonical url and if exists merges into ortb2 global data
77
78
  */
78
79
  function setPage() {
79
- if (getRefererInfo().canonicalUrl) utils.mergeDeep(ortb2, { site: { page: getRefererInfo().canonicalUrl } });
80
+ if (getRefererInfo().canonicalUrl) mergeDeep(ortb2, { site: { page: getRefererInfo().canonicalUrl } });
80
81
  }
81
82
 
82
83
  /**
@@ -94,8 +95,8 @@ function setDomain() {
94
95
  let domain = parseDomain(getRefererInfo().canonicalUrl)
95
96
 
96
97
  if (domain) {
97
- utils.mergeDeep(ortb2, { site: { domain: domain } });
98
- utils.mergeDeep(ortb2, { site: { publisher: { domain: findRootDomain(domain) } } });
98
+ mergeDeep(ortb2, { site: { domain: domain } });
99
+ mergeDeep(ortb2, { site: { publisher: { domain: findRootDomain(domain) } } });
99
100
  };
100
101
  }
101
102
 
@@ -114,7 +115,7 @@ function setDimensions() {
114
115
  height = window.innerHeight || window.document.documentElement.clientHeight || window.document.body.clientHeight;
115
116
  }
116
117
 
117
- utils.mergeDeep(ortb2, { device: { w: width, h: height } });
118
+ mergeDeep(ortb2, { device: { w: width, h: height } });
118
119
  }
119
120
 
120
121
  /**
@@ -129,7 +130,7 @@ function setKeywords() {
129
130
  keywords = window.document.querySelector("meta[name='keywords']");
130
131
  }
131
132
 
132
- if (keywords && keywords.content) utils.mergeDeep(ortb2, { site: { keywords: keywords.content.replace(/\s/g, '') } });
133
+ if (keywords && keywords.content) mergeDeep(ortb2, { site: { keywords: keywords.content.replace(/\s/g, '') } });
133
134
  }
134
135
 
135
136
  /**
@@ -153,7 +154,7 @@ function runEnrichments() {
153
154
  export function initSubmodule(fpdConf, data) {
154
155
  resetOrtb2();
155
156
 
156
- return (!fpdConf.skipEnrichments) ? utils.mergeDeep(runEnrichments(), data) : data;
157
+ return (!fpdConf.skipEnrichments) ? mergeDeep(runEnrichments(), data) : data;
157
158
  }
158
159
 
159
160
  /** @type {firstPartyDataSubmodule} */