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,5 +1,5 @@
1
+ import { logInfo, deepAccess } from '../src/utils.js';
1
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
- import * as utils from '../src/utils.js';
3
3
  import {BANNER} from '../src/mediaTypes.js';
4
4
 
5
5
  const ENDPOINT_URL = 'https://x.padsquad.com/auction';
@@ -89,12 +89,12 @@ export const spec = {
89
89
  })
90
90
  })
91
91
  } else {
92
- utils.logInfo('padsquad.interpretResponse :: no valid responses to interpret');
92
+ logInfo('padsquad.interpretResponse :: no valid responses to interpret');
93
93
  }
94
94
  return bidResponses;
95
95
  },
96
96
  getUserSyncs: function (syncOptions, serverResponses) {
97
- utils.logInfo('padsquad.getUserSyncs', 'syncOptions', syncOptions, 'serverResponses', serverResponses);
97
+ logInfo('padsquad.getUserSyncs', 'syncOptions', syncOptions, 'serverResponses', serverResponses);
98
98
  let syncs = [];
99
99
 
100
100
  if (!syncOptions.iframeEnabled && !syncOptions.pixelEnabled) {
@@ -102,7 +102,7 @@ export const spec = {
102
102
  }
103
103
 
104
104
  serverResponses.forEach(resp => {
105
- const userSync = utils.deepAccess(resp, 'body.ext.usersync');
105
+ const userSync = deepAccess(resp, 'body.ext.usersync');
106
106
  if (userSync) {
107
107
  let syncDetails = [];
108
108
  Object.keys(userSync).forEach(key => {
@@ -7,7 +7,7 @@
7
7
 
8
8
  // ci trigger: 1
9
9
 
10
- import * as utils from '../src/utils.js'
10
+ import { timestamp, logError, logWarn, isEmpty, contains, inIframe, deepClone, isPlainObject } from '../src/utils.js';
11
11
  import find from 'core-js-pure/features/array/find.js';
12
12
  import { ajax } from '../src/ajax.js';
13
13
  import { submodule } from '../src/hook.js';
@@ -26,7 +26,7 @@ const EXPIRE_COOKIE_DATE = 'Thu, 01 Jan 1970 00:00:00 GMT';
26
26
  const storage = getStorageManager(PARRABLE_GVLID);
27
27
 
28
28
  function getExpirationDate() {
29
- const oneYearFromNow = new Date(utils.timestamp() + ONE_YEAR_MS);
29
+ const oneYearFromNow = new Date(timestamp() + ONE_YEAR_MS);
30
30
  return oneYearFromNow.toGMTString();
31
31
  }
32
32
 
@@ -76,15 +76,15 @@ function serializeParrableId(parrableIdAndParams) {
76
76
 
77
77
  function isValidConfig(configParams) {
78
78
  if (!configParams) {
79
- utils.logError('User ID - parrableId submodule requires configParams');
79
+ logError('User ID - parrableId submodule requires configParams');
80
80
  return false;
81
81
  }
82
82
  if (!configParams.partners && !configParams.partner) {
83
- utils.logError('User ID - parrableId submodule requires partner list');
83
+ logError('User ID - parrableId submodule requires partner list');
84
84
  return false;
85
85
  }
86
86
  if (configParams.storage) {
87
- utils.logWarn('User ID - parrableId submodule does not require a storage config');
87
+ logWarn('User ID - parrableId submodule does not require a storage config');
88
88
  }
89
89
  return true;
90
90
  }
@@ -177,28 +177,28 @@ function shouldFilterImpression(configParams, parrableId) {
177
177
  }
178
178
 
179
179
  function isAllowed() {
180
- if (utils.isEmpty(config.allowedZones) &&
181
- utils.isEmpty(config.allowedOffsets)) {
180
+ if (isEmpty(config.allowedZones) &&
181
+ isEmpty(config.allowedOffsets)) {
182
182
  return true;
183
183
  }
184
184
  if (isZoneListed(config.allowedZones, zone)) {
185
185
  return true;
186
186
  }
187
- if (utils.contains(config.allowedOffsets, offset)) {
187
+ if (contains(config.allowedOffsets, offset)) {
188
188
  return true;
189
189
  }
190
190
  return false;
191
191
  }
192
192
 
193
193
  function isBlocked() {
194
- if (utils.isEmpty(config.blockedZones) &&
195
- utils.isEmpty(config.blockedOffsets)) {
194
+ if (isEmpty(config.blockedZones) &&
195
+ isEmpty(config.blockedOffsets)) {
196
196
  return false;
197
197
  }
198
198
  if (isZoneListed(config.blockedZones, zone)) {
199
199
  return true;
200
200
  }
201
- if (utils.contains(config.blockedOffsets, offset)) {
201
+ if (contains(config.blockedOffsets, offset)) {
202
202
  return true;
203
203
  }
204
204
  return false;
@@ -246,7 +246,7 @@ function fetchId(configParams, gdprConsentData) {
246
246
  trackers,
247
247
  url: refererInfo.referer,
248
248
  prebidVersion: '$prebid.version$',
249
- isIframe: utils.inIframe(),
249
+ isIframe: inIframe(),
250
250
  tpcSupport
251
251
  };
252
252
 
@@ -276,7 +276,7 @@ function fetchId(configParams, gdprConsentData) {
276
276
  const callback = function (cb) {
277
277
  const callbacks = {
278
278
  success: response => {
279
- let newParrableId = parrableId ? utils.deepClone(parrableId) : {};
279
+ let newParrableId = parrableId ? deepClone(parrableId) : {};
280
280
  let newParams = {};
281
281
  if (response) {
282
282
  try {
@@ -301,18 +301,18 @@ function fetchId(configParams, gdprConsentData) {
301
301
  }
302
302
  }
303
303
  } catch (error) {
304
- utils.logError(error);
304
+ logError(error);
305
305
  cb();
306
306
  }
307
307
  writeCookie({ ...newParrableId, ...newParams });
308
308
  cb(newParrableId);
309
309
  } else {
310
- utils.logError('parrableId: ID fetch returned an empty result');
310
+ logError('parrableId: ID fetch returned an empty result');
311
311
  cb();
312
312
  }
313
313
  },
314
314
  error: error => {
315
- utils.logError(`parrableId: ID fetch encountered an error`, error);
315
+ logError(`parrableId: ID fetch encountered an error`, error);
316
316
  cb();
317
317
  }
318
318
  };
@@ -350,7 +350,7 @@ export const parrableIdSubmodule = {
350
350
  * @return {(Object|undefined}
351
351
  */
352
352
  decode(parrableId) {
353
- if (parrableId && utils.isPlainObject(parrableId)) {
353
+ if (parrableId && isPlainObject(parrableId)) {
354
354
  return { parrableId };
355
355
  }
356
356
  return undefined;
@@ -3,7 +3,7 @@ import { getStorageManager } from '../src/storageManager.js';
3
3
  import { BANNER } from '../src/mediaTypes.js';
4
4
  import { config } from '../src/config.js';
5
5
  import includes from 'core-js-pure/features/array/includes.js';
6
- import * as utils from '../src/utils.js';
6
+ import { convertCamelToUnderscore, isArray, isNumber, isPlainObject, deepAccess, isEmpty, transformBidderParamKeywords, isFn } from '../src/utils.js';
7
7
  import { auctionManager } from '../src/auctionManager.js';
8
8
  import find from 'core-js-pure/features/array/find.js';
9
9
 
@@ -12,7 +12,7 @@ const storageManager = getStorageManager();
12
12
  const USER_PARAMS = ['age', 'externalUid', 'segments', 'gender', 'dnt', 'language'];
13
13
  export const spec = {
14
14
  code: 'pixfuture',
15
- hostname: 'https://prebid-js.pixfuture.com',
15
+ hostname: 'https://gosrv.pixfuture.com',
16
16
 
17
17
  getHostname() {
18
18
  let ret = this.hostname;
@@ -47,13 +47,13 @@ export const spec = {
47
47
  Object.keys(userObjBid.params.user)
48
48
  .filter(param => includes(USER_PARAMS, param))
49
49
  .forEach((param) => {
50
- let uparam = utils.convertCamelToUnderscore(param);
51
- if (param === 'segments' && utils.isArray(userObjBid.params.user[param])) {
50
+ let uparam = convertCamelToUnderscore(param);
51
+ if (param === 'segments' && isArray(userObjBid.params.user[param])) {
52
52
  let segs = [];
53
53
  userObjBid.params.user[param].forEach(val => {
54
- if (utils.isNumber(val)) {
54
+ if (isNumber(val)) {
55
55
  segs.push({'id': val});
56
- } else if (utils.isPlainObject(val)) {
56
+ } else if (isPlainObject(val)) {
57
57
  segs.push(val);
58
58
  }
59
59
  });
@@ -77,7 +77,7 @@ export const spec = {
77
77
  };
78
78
 
79
79
  if (bidderRequest && bidderRequest.uspConsent) {
80
- payload.us_privacy = bidderRequest.uspConsent
80
+ payload.us_privacy = bidderRequest.uspConsent;
81
81
  }
82
82
 
83
83
  if (bidderRequest && bidderRequest.refererInfo) {
@@ -93,14 +93,14 @@ export const spec = {
93
93
  if (validBidRequests[0].userId) {
94
94
  let eids = [];
95
95
 
96
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.flocId.id`), 'chrome.com', null);
97
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.criteoId`), 'criteo.com', null);
98
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.unifiedId`), 'thetradedesk.com', null);
99
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.id5Id`), 'id5.io', null);
100
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.sharedId`), 'thetradedesk.com', null);
101
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.identityLink`), 'liveramp.com', null);
102
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.liveIntentId`), 'liveintent.com', null);
103
- addUserId(eids, utils.deepAccess(validBidRequests[0], `userId.fabrickId`), 'home.neustar', null);
96
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.flocId.id`), 'chrome.com', null);
97
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.criteoId`), 'criteo.com', null);
98
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.unifiedId`), 'thetradedesk.com', null);
99
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.id5Id`), 'id5.io', null);
100
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.sharedId`), 'thetradedesk.com', null);
101
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.identityLink`), 'liveramp.com', null);
102
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.liveIntentId`), 'liveintent.com', null);
103
+ addUserId(eids, deepAccess(validBidRequests[0], `userId.fabrickId`), 'home.neustar', null);
104
104
 
105
105
  if (eids.length) {
106
106
  payload.eids = eids;
@@ -112,7 +112,7 @@ export const spec = {
112
112
  }
113
113
 
114
114
  const ret = {
115
- url: `${hostname}/`,
115
+ url: `${hostname}/pixservices`,
116
116
  method: 'POST',
117
117
  options: {withCredentials: false},
118
118
  data: {
@@ -153,6 +153,16 @@ export const spec = {
153
153
 
154
154
  return bids;
155
155
  },
156
+ getUserSyncs: function (syncOptions, bid, gdprConsent) {
157
+ var pixid = '';
158
+ if (typeof bid[0] === 'undefined' || bid[0] === null) { pixid = '0'; } else { pixid = bid[0].body.pix_id; }
159
+ if (syncOptions.iframeEnabled && hasPurpose1Consent({gdprConsent})) {
160
+ return [{
161
+ type: 'iframe',
162
+ url: 'https://gosrv.pixfuture.com/cookiesync?adsync=' + gdprConsent.consentString + '&pixid=' + pixid + '&gdprconcent=' + gdprConsent.gdprApplies
163
+ }];
164
+ }
165
+ }
156
166
  };
157
167
 
158
168
  function newBid(serverBid, rtbBid, placementId, uuid) {
@@ -179,6 +189,16 @@ function newBid(serverBid, rtbBid, placementId, uuid) {
179
189
  return bid;
180
190
  }
181
191
 
192
+ function hasPurpose1Consent(bidderRequest) {
193
+ let result = true;
194
+ if (bidderRequest && bidderRequest.gdprConsent) {
195
+ if (bidderRequest.gdprConsent.gdprApplies && bidderRequest.gdprConsent.apiVersion === 2) {
196
+ result = !!(deepAccess(bidderRequest.gdprConsent, 'vendorData.purpose.consents.1') === true);
197
+ }
198
+ }
199
+ return result;
200
+ }
201
+
182
202
  // Functions related optional parameters
183
203
  function bidToTag(bid) {
184
204
  const tag = {};
@@ -223,8 +243,8 @@ function bidToTag(bid) {
223
243
  if (bid.params.externalImpId) {
224
244
  tag.external_imp_id = bid.params.externalImpId;
225
245
  }
226
- if (!utils.isEmpty(bid.params.keywords)) {
227
- let keywords = utils.transformBidderParamKeywords(bid.params.keywords);
246
+ if (!isEmpty(bid.params.keywords)) {
247
+ let keywords = transformBidderParamKeywords(bid.params.keywords);
228
248
 
229
249
  if (keywords.length > 0) {
230
250
  keywords.forEach(deleteValues);
@@ -232,7 +252,7 @@ function bidToTag(bid) {
232
252
  tag.keywords = keywords;
233
253
  }
234
254
 
235
- let gpid = utils.deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
255
+ let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
236
256
  if (gpid) {
237
257
  tag.gpid = gpid;
238
258
  }
@@ -241,7 +261,7 @@ function bidToTag(bid) {
241
261
  tag.video = Object.assign({}, tag.video, {custom_renderer_present: true});
242
262
  }
243
263
 
244
- if (bid.params.frameworks && utils.isArray(bid.params.frameworks)) {
264
+ if (bid.params.frameworks && isArray(bid.params.frameworks)) {
245
265
  tag['banner_frameworks'] = bid.params.frameworks;
246
266
  }
247
267
 
@@ -276,8 +296,8 @@ function transformSizes(requestSizes) {
276
296
  let sizes = [];
277
297
  let sizeObj = {};
278
298
 
279
- if (utils.isArray(requestSizes) && requestSizes.length === 2 &&
280
- !utils.isArray(requestSizes[0])) {
299
+ if (isArray(requestSizes) && requestSizes.length === 2 &&
300
+ !isArray(requestSizes[0])) {
281
301
  sizeObj.width = parseInt(requestSizes[0], 10);
282
302
  sizeObj.height = parseInt(requestSizes[1], 10);
283
303
  sizes.push(sizeObj);
@@ -295,7 +315,7 @@ function transformSizes(requestSizes) {
295
315
  }
296
316
 
297
317
  function getBidFloor(bid) {
298
- if (!utils.isFn(bid.getFloor)) {
318
+ if (!isFn(bid.getFloor)) {
299
319
  return (bid.params.reserve) ? bid.params.reserve : null;
300
320
  }
301
321
 
@@ -304,7 +324,7 @@ function getBidFloor(bid) {
304
324
  mediaType: '*',
305
325
  size: '*'
306
326
  });
307
- if (utils.isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
327
+ if (isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
308
328
  return floor.floor;
309
329
  }
310
330
  return null;
@@ -317,7 +337,7 @@ function deleteValues(keyPairObj) {
317
337
  }
318
338
 
319
339
  function isPopulatedArray(arr) {
320
- return !!(utils.isArray(arr) && arr.length > 0);
340
+ return !!(isArray(arr) && arr.length > 0);
321
341
  }
322
342
 
323
343
  registerBidder(spec);
@@ -25,3 +25,130 @@ var adUnits = [{
25
25
  "pix_id": "Abc123"
26
26
  }];
27
27
  ```
28
+
29
+ # Test Example
30
+ ...
31
+ <html>
32
+
33
+ <head>
34
+ <link rel="icon" type="image/png" href="/favicon.ico">
35
+ <script async src="//www.googletagservices.com/tag/js/gpt.js"></script>
36
+ <script async src="https://cdn.pixfuture.com/pixfuture_prebidjs/prebid.js"></script>
37
+ <script>
38
+ var div_1_sizes = [
39
+ [300, 250],
40
+ [300, 600]
41
+ ];
42
+ var div_2_sizes = [
43
+ [728, 90],
44
+ [970, 250]
45
+ ];
46
+ var PREBID_TIMEOUT = 1000;
47
+ var FAILSAFE_TIMEOUT = 3000;
48
+
49
+ var adUnits = [
50
+ {
51
+ code: '/19968336/header-bid-tag-0',
52
+ mediaTypes: {
53
+ banner: {
54
+ sizes: div_1_sizes
55
+ }
56
+ },
57
+ bids: [{
58
+ bidder: 'pixfuture',
59
+ params: {
60
+ "pix_id": "777"
61
+ }
62
+ }]
63
+ },
64
+ {
65
+ code: '/19968336/header-bid-tag-1',
66
+ mediaTypes: {
67
+ banner: {
68
+ sizes: div_2_sizes
69
+ }
70
+ },
71
+ bids: [{
72
+ bidder: 'appnexus',
73
+ params: {
74
+ placementId: 13144370
75
+ }
76
+ }]
77
+ }
78
+ ];
79
+
80
+ // ======== DO NOT EDIT BELOW THIS LINE =========== //
81
+ var googletag = googletag || {};
82
+ googletag.cmd = googletag.cmd || [];
83
+ googletag.cmd.push(function() {
84
+ googletag.pubads().disableInitialLoad();
85
+ });
86
+
87
+ var pbjs = pbjs || {};
88
+ pbjs.que = pbjs.que || [];
89
+
90
+ pbjs.que.push(function() {
91
+ pbjs.addAdUnits(adUnits);
92
+ pbjs.requestBids({
93
+ bidsBackHandler: initAdserver,
94
+ timeout: PREBID_TIMEOUT
95
+ });
96
+ });
97
+
98
+ function initAdserver() {
99
+ if (pbjs.initAdserverSet) return;
100
+ pbjs.initAdserverSet = true;
101
+ googletag.cmd.push(function() {
102
+ pbjs.que.push(function() {
103
+ pbjs.setTargetingForGPTAsync();
104
+ googletag.pubads().refresh();
105
+ });
106
+ });
107
+ }
108
+ // in case PBJS doesn't load
109
+ setTimeout(function() {
110
+ initAdserver();
111
+ }, FAILSAFE_TIMEOUT);
112
+
113
+ googletag.cmd.push(function() {
114
+ googletag.defineSlot('/19968336/header-bid-tag-0', div_1_sizes, 'div-1').addService(googletag.pubads());
115
+ googletag.pubads().enableSingleRequest();
116
+ googletag.enableServices();
117
+ });
118
+ googletag.cmd.push(function() {
119
+ googletag.defineSlot('/19968336/header-bid-tag-1', div_2_sizes, 'div-2').addService(googletag.pubads());
120
+ googletag.pubads().enableSingleRequest();
121
+ googletag.enableServices();
122
+ });
123
+
124
+ </script>
125
+
126
+ </head>
127
+
128
+ <body>
129
+ <h2>Basic Prebid.js Example</h2>
130
+ <h5>Div-1</h5>
131
+ <div id='div-1'>
132
+ <script type='text/javascript'>
133
+ googletag.cmd.push(function() {
134
+ googletag.display('div-1');
135
+ });
136
+
137
+ </script>
138
+ </div>
139
+
140
+ <br>
141
+
142
+ <h5>Div-2</h5>
143
+ <div id='div-2'>
144
+ <script type='text/javascript'>
145
+ googletag.cmd.push(function() {
146
+ googletag.display('div-2');
147
+ });
148
+
149
+ </script>
150
+ </div>
151
+
152
+ </body>
153
+
154
+ </html>