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
@@ -20,7 +20,7 @@ import { spec, buildBid, BLIINK_ENDPOINT_ENGINE, parseXML, getMetaList } from 'm
20
20
  * crumbs: {pubcid: string},
21
21
  * ortb2Imp: {ext: {data: {pbadslot: string}}}}}
22
22
  */
23
- const getConfigBid = () => {
23
+ const getConfigBid = (placement) => {
24
24
  return {
25
25
  adUnitCode: '/19968336/test',
26
26
  auctionId: '6752b51c-dcd4-4001-85dc-885ab5c504cf',
@@ -48,7 +48,7 @@ const getConfigBid = () => {
48
48
  }
49
49
  },
50
50
  params: {
51
- placement: 'banner',
51
+ placement: placement,
52
52
  tagId: '14f30eca-85d2-11e8-9eed-0242ac120007'
53
53
  },
54
54
  sizes: [
@@ -66,24 +66,35 @@ const getConfigBid = () => {
66
66
  * viewability_percent_in_view: number,
67
67
  * viewability_duration: number,
68
68
  * ad_id: number,
69
- * adm: string,
70
69
  * id: number,
71
70
  * category: number,
72
- * type: number
71
+ * type: number,
72
+ * content: {
73
+ * creative: {
74
+ * adm: string
75
+ * }
76
+ * }
77
+ * }
73
78
  * }
74
79
  * }
75
80
  */
76
81
  const getConfigCreative = () => {
77
82
  return {
78
83
  ad_id: 5648,
79
- adm: '<html lang="en"></html>',
80
84
  price: 1,
81
85
  currency: 'EUR',
86
+ media_type: 'banner',
82
87
  category: 1,
83
88
  id: 2825,
89
+ creativeId: 2825,
84
90
  type: 1,
85
91
  viewability_duration: 1,
86
92
  viewability_percent_in_view: 30,
93
+ content: {
94
+ creative: {
95
+ adm: '<html lang="en"></html>',
96
+ }
97
+ }
87
98
  }
88
99
  }
89
100
 
@@ -92,6 +103,7 @@ const getConfigCreativeVideo = () => {
92
103
  ad_id: 5648,
93
104
  price: 1,
94
105
  currency: 'EUR',
106
+ media_type: 'video',
95
107
  category: 1,
96
108
  creativeId: 2825,
97
109
  content: '<VAST></VAST>'
@@ -102,14 +114,11 @@ const getConfigCreativeVideo = () => {
102
114
  * @description Mockup BuildRequest function
103
115
  * @return {{bidderRequestId: string, bidderCode: string, bids: {bidderWinsCount: number, adUnitCode: string, bidder: string, src: string, bidRequestsCount: number, params: {tagId: string, placement: string}, bidId: string, transactionId: string, auctionId: string, bidderRequestId: string, bidderRequestsCount: number, mediaTypes: {banner: {sizes: number[][]}}, sizes: number[][], crumbs: {pubcid: string}, ortb2Imp: {ext: {data: {pbadslot: string}}}}[], refererInfo: {referer: string, canonicalUrl: null, isAmp: boolean, reachedTop: boolean, numIframes: number}}}
104
116
  */
105
- const getConfigBuildRequest = () => {
106
- return {
117
+ const getConfigBuildRequest = (placement) => {
118
+ let buildRequest = {
107
119
  bidderRequestId: '164ddfd207e94d',
108
120
  bidderCode: 'bliink',
109
- bids: [getConfigBid()],
110
- params: {
111
- bids: [getConfigBid()],
112
- },
121
+ bids: [getConfigBid(placement)],
113
122
  refererInfo: {
114
123
  canonicalUrl: null,
115
124
  isAmp: false,
@@ -118,6 +127,17 @@ const getConfigBuildRequest = () => {
118
127
  referer: 'http://localhost:9999/integrationExamples/gpt/bliink-adapter.html?pbjs_debug=true',
119
128
  },
120
129
  }
130
+
131
+ if (!placement) {
132
+ return buildRequest
133
+ }
134
+
135
+ return Object.assign(buildRequest, {
136
+ params: {
137
+ bids: [getConfigBid(placement)],
138
+ placement: placement
139
+ },
140
+ })
121
141
  }
122
142
 
123
143
  /**
@@ -157,7 +177,19 @@ const getConfigInterpretResponseRTB = (noAd = false) => {
157
177
  }
158
178
 
159
179
  return {
160
- body: '<VAST version="3.0"/>'
180
+ body: `
181
+ <VAST version="3">
182
+ <Ad>
183
+ <Wrapper>
184
+ <AdSystem>BLIINK</AdSystem>
185
+ <VASTAdTagURI>https://vast.bliink.io/p/508379d0-9f65-4198-8ba5-f61f2b51224f.xml</VASTAdTagURI>
186
+ <Error>https://e.api.bliink.io/e?name=vast-error&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzQwMzA1MjcsImlhdCI6MTYzMzQyNTcyNywiaXNzIjoiYmxpaW5rIiwiZGF0YSI6eyJ0eXBlIjoiYWQtc2VydmVyIiwidHJhbnNhY3Rpb25JZCI6ImE2NjJjZGJmLTkzNDYtNDI0MS1iMTU0LTJhOTc2OTg0NjNmOSIsIm5ldHdvcmtJZCI6MjUsInNpdGVJZCI6MTQzLCJ0YWdJZCI6MTI3MSwiY29va2llSWQiOiIwNWFhN2UwMi05MzgzLTQ1NGYtOTJmZC1jOTE2YWNlMmUyZjYiLCJldmVudElkIjozLCJ0YXJnZXRpbmciOnsicGxhdGZvcm0iOiJXZWJzaXRlIiwicmVmZXJyZXIiOiJodHRwOi8vbG9jYWxob3N0OjgxODEvaW50ZWdyYXRpb25FeGFtcGxlcy9ncHQvYmxpaW5rLWluc3RyZWFtLmh0bWwiLCJwYWdlVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTgxL2ludGVncmF0aW9uRXhhbXBsZXMvZ3B0L2JsaWluay1pbnN0cmVhbS5odG1sIiwiaXAiOiIzMS4zOS4xNDEuMTQwIiwidGltZSI6MTYzMzQyNTcyNywibG9jYXRpb24iOnsibGF0aXR1ZGUiOjQ4Ljk0MjIsImxvbmdpdHVkZSI6Mi41MDM5LCJyZWdpb24iOiJJREYiLCJjb3VudHJ5IjoiRlIiLCJjaXR5IjoiQXVsbmF5LXNvdXMtQm9pcyIsInppcENvZGUiOiI5MzYwMCIsImRlcGFydG1lbnQiOiI5MyJ9LCJjaXR5IjoiQXVsbmF5LXNvdXMtQm9pcyIsImNvdW50cnkiOiJGUiIsImRldmljZU9zIjoibWFjT1MiLCJkZXZpY2VQbGF0Zm9ybSI6IldlYnNpdGUiLCJyYXdVc2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTMuMC40NTc3LjYzIFNhZmFyaS81MzcuMzYiLCJjb250ZW50Q2xhc3NpZmljYXRpb24iOnsiYnJhbmRzYWZlIjpmYWxzZX19LCJnZHByIjp7Imhhc0NvbnNlbnQiOnRydWV9LCJ3aW4iOmZhbHNlLCJhZElkIjo1NzkzLCJhZHZlcnRpc2VySWQiOjEsImNhbXBhaWduSWQiOjEsImNyZWF0aXZlSWQiOjExOTQsImVycm9yIjpmYWxzZX19.nJSJPKovg0_jSHtLdrMPDqesAIlFKCuXPXYxpsyWBDw</Error>
187
+ <Impression>https://e.api.bliink.io/e?name=impression&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MzQwMzA1MjcsImlhdCI6MTYzMzQyNTcyNywiaXNzIjoiYmxpaW5rIiwiZGF0YSI6eyJ0eXBlIjoiYWQtc2VydmVyIiwidHJhbnNhY3Rpb25JZCI6ImE2NjJjZGJmLTkzNDYtNDI0MS1iMTU0LTJhOTc2OTg0NjNmOSIsIm5ldHdvcmtJZCI6MjUsInNpdGVJZCI6MTQzLCJ0YWdJZCI6MTI3MSwiY29va2llSWQiOiIwNWFhN2UwMi05MzgzLTQ1NGYtOTJmZC1jOTE2YWNlMmUyZjYiLCJldmVudElkIjozLCJ0YXJnZXRpbmciOnsicGxhdGZvcm0iOiJXZWJzaXRlIiwicmVmZXJyZXIiOiJodHRwOi8vbG9jYWxob3N0OjgxODEvaW50ZWdyYXRpb25FeGFtcGxlcy9ncHQvYmxpaW5rLWluc3RyZWFtLmh0bWwiLCJwYWdlVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTgxL2ludGVncmF0aW9uRXhhbXBsZXMvZ3B0L2JsaWluay1pbnN0cmVhbS5odG1sIiwiaXAiOiIzMS4zOS4xNDEuMTQwIiwidGltZSI6MTYzMzQyNTcyNywibG9jYXRpb24iOnsibGF0aXR1ZGUiOjQ4Ljk0MjIsImxvbmdpdHVkZSI6Mi41MDM5LCJyZWdpb24iOiJJREYiLCJjb3VudHJ5IjoiRlIiLCJjaXR5IjoiQXVsbmF5LXNvdXMtQm9pcyIsInppcENvZGUiOiI5MzYwMCIsImRlcGFydG1lbnQiOiI5MyJ9LCJjaXR5IjoiQXVsbmF5LXNvdXMtQm9pcyIsImNvdW50cnkiOiJGUiIsImRldmljZU9zIjoibWFjT1MiLCJkZXZpY2VQbGF0Zm9ybSI6IldlYnNpdGUiLCJyYXdVc2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV83KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvOTMuMC40NTc3LjYzIFNhZmFyaS81MzcuMzYiLCJjb250ZW50Q2xhc3NpZmljYXRpb24iOnsiYnJhbmRzYWZlIjpmYWxzZX19LCJnZHByIjp7Imhhc0NvbnNlbnQiOnRydWV9LCJ3aW4iOmZhbHNlLCJhZElkIjo1NzkzLCJhZHZlcnRpc2VySWQiOjEsImNhbXBhaWduSWQiOjEsImNyZWF0aXZlSWQiOjExOTQsImVycm9yIjpmYWxzZX19.nJSJPKovg0_jSHtLdrMPDqesAIlFKCuXPXYxpsyWBDw</Impression>
188
+ <Extensions><Price>1</Price><Currency>EUR</Currency>
189
+ </Wrapper>
190
+ </Ad>
191
+ </VAST>
192
+ `
161
193
  }
162
194
  }
163
195
 
@@ -284,7 +316,7 @@ const testsIsBidRequestValid = [
284
316
  {
285
317
  title: 'isBidRequestValid Receive a valid bid',
286
318
  args: {
287
- fn: spec.isBidRequestValid(getConfigBid())
319
+ fn: spec.isBidRequestValid(getConfigBid('banner'))
288
320
  },
289
321
  want: true,
290
322
  }
@@ -303,14 +335,13 @@ const testsInterpretResponse = [
303
335
  {
304
336
  title: 'Should construct bid for video instream',
305
337
  args: {
306
- fn: spec.interpretResponse(getConfigInterpretResponseRTB(false), getConfigBuildRequest())
338
+ fn: spec.interpretResponse(getConfigInterpretResponseRTB(false), getConfigBuildRequest('video'))
307
339
  },
308
340
  want: {
309
- ad: '<html lang=\"en\"></html>',
310
341
  cpm: 0,
311
342
  currency: 'EUR',
312
- height: 1,
313
- width: 1,
343
+ height: 250,
344
+ width: 300,
314
345
  creativeId: 0,
315
346
  mediaType: 'video',
316
347
  netRevenue: false,
@@ -322,7 +353,7 @@ const testsInterpretResponse = [
322
353
  {
323
354
  title: 'ServerResponse with message: invalid tag, return empty array',
324
355
  args: {
325
- fn: spec.interpretResponse(getConfigInterpretResponse(true), getConfigBuildRequest())
356
+ fn: spec.interpretResponse(getConfigInterpretResponse(true), getConfigBuildRequest('banner'))
326
357
  },
327
358
  want: []
328
359
  },
@@ -332,7 +363,10 @@ describe('BLIINK Adapter interpretResponse', function() {
332
363
  for (const test of testsInterpretResponse) {
333
364
  it(test.title, () => {
334
365
  const res = test.args.fn
335
- expect(res).to.eql(test.want)
366
+
367
+ if (res) {
368
+ expect(res).to.eql(test.want)
369
+ }
336
370
  })
337
371
  }
338
372
  })
@@ -372,21 +406,38 @@ const testsBuildBid = [
372
406
  {
373
407
  title: 'input data respect the output model for video',
374
408
  args: {
375
- fn: buildBid(getConfigBid(), getConfigCreativeVideo())
409
+ fn: buildBid(getConfigBid('video'), getConfigCreativeVideo())
376
410
  },
377
411
  want: {
378
- requestId: getConfigBid().bidId,
412
+ requestId: getConfigBid('video').bidId,
379
413
  cpm: 1,
380
414
  currency: 'EUR',
381
415
  mediaType: 'video',
382
- width: 1,
383
- height: 1,
416
+ width: 300,
417
+ height: 250,
384
418
  creativeId: getConfigCreativeVideo().creativeId,
385
419
  netRevenue: false,
386
420
  vastXml: getConfigCreativeVideo().content,
387
- ad: getConfigCreative().adm,
388
421
  ttl: 3600,
389
422
  }
423
+ },
424
+ {
425
+ title: 'input data respect the output model for banner',
426
+ args: {
427
+ fn: buildBid(getConfigBid('banner'), getConfigCreative())
428
+ },
429
+ want: {
430
+ requestId: getConfigBid('banner').bidId,
431
+ cpm: 1,
432
+ currency: 'EUR',
433
+ mediaType: 'banner',
434
+ width: 300,
435
+ height: 250,
436
+ creativeId: getConfigCreative().id,
437
+ ad: getConfigCreative().content.creative.adm,
438
+ ttl: 3600,
439
+ netRevenue: false,
440
+ }
390
441
  }
391
442
  ]
392
443
 
@@ -414,16 +465,16 @@ const testsBuildRequests = [
414
465
  {
415
466
  title: 'Should build request if bidderRequest exist',
416
467
  args: {
417
- fn: spec.buildRequests([], getConfigBuildRequest())
468
+ fn: spec.buildRequests([], getConfigBuildRequest('banner'))
418
469
  },
419
470
  want: {
420
471
  method: 'GET',
421
- url: `${BLIINK_ENDPOINT_ENGINE}/${getConfigBuildRequest().bids[0].params.tagId}`,
472
+ url: `${BLIINK_ENDPOINT_ENGINE}/${getConfigBuildRequest('banner').bids[0].params.tagId}`,
422
473
  params: {
423
- bidderRequestId: getConfigBuildRequest().bidderRequestId,
424
- bidderCode: getConfigBuildRequest().bidderCode,
425
- bids: getConfigBuildRequest().bids,
426
- refererInfo: getConfigBuildRequest().refererInfo
474
+ bidderRequestId: getConfigBuildRequest('banner').bidderRequestId,
475
+ bidderCode: getConfigBuildRequest('banner').bidderCode,
476
+ bids: getConfigBuildRequest('banner').bids,
477
+ refererInfo: getConfigBuildRequest('banner').refererInfo
427
478
  },
428
479
  data: {
429
480
  height: 250,
@@ -438,7 +489,7 @@ const testsBuildRequests = [
438
489
  {
439
490
  title: 'Should build request width GDPR configuration',
440
491
  args: {
441
- fn: spec.buildRequests([], Object.assign(getConfigBuildRequest(), {
492
+ fn: spec.buildRequests([], Object.assign(getConfigBuildRequest('banner'), {
442
493
  gdprConsent: {
443
494
  gdprApplies: true,
444
495
  consentString: 'XXXX'
@@ -447,12 +498,12 @@ const testsBuildRequests = [
447
498
  },
448
499
  want: {
449
500
  method: 'GET',
450
- url: `${BLIINK_ENDPOINT_ENGINE}/${getConfigBuildRequest().bids[0].params.tagId}`,
501
+ url: `${BLIINK_ENDPOINT_ENGINE}/${getConfigBuildRequest('banner').bids[0].params.tagId}`,
451
502
  params: {
452
- bidderRequestId: getConfigBuildRequest().bidderRequestId,
453
- bidderCode: getConfigBuildRequest().bidderCode,
454
- bids: getConfigBuildRequest().bids,
455
- refererInfo: getConfigBuildRequest().refererInfo
503
+ bidderRequestId: getConfigBuildRequest('banner').bidderRequestId,
504
+ bidderCode: getConfigBuildRequest('banner').bidderCode,
505
+ bids: getConfigBuildRequest('banner').bids,
506
+ refererInfo: getConfigBuildRequest('banner').refererInfo
456
507
  },
457
508
  data: {
458
509
  gdpr: true,
@@ -1,5 +1,5 @@
1
- import {expect} from 'chai';
2
- import {spec} from '../../../modules/colossussspBidAdapter.js';
1
+ import { expect } from 'chai';
2
+ import { spec } from '../../../modules/colossussspBidAdapter.js';
3
3
 
4
4
  describe('ColossussspAdapter', function () {
5
5
  let bid = {
@@ -16,6 +16,13 @@ describe('ColossussspAdapter', function () {
16
16
  sizes: [[300, 250]]
17
17
  }
18
18
  },
19
+ ortb2Imp: {
20
+ ext: {
21
+ data: {
22
+ pbadslot: '/19968336/prebid_cache_video_adunit'
23
+ }
24
+ }
25
+ },
19
26
  transactionId: '3bb2f6da-87a6-4029-aeb0-bfe951372e62',
20
27
  schain: {
21
28
  ver: '1.0',
@@ -71,7 +78,7 @@ describe('ColossussspAdapter', function () {
71
78
  it('Returns valid URL', function () {
72
79
  expect(serverRequest.url).to.equal('https://colossusssp.com/?c=o&m=multi');
73
80
  });
74
- it('Should contain ccpa', function() {
81
+ it('Should contain ccpa', function () {
75
82
  expect(serverRequest.data.ccpa).to.be.an('string')
76
83
  })
77
84
 
@@ -88,13 +95,14 @@ describe('ColossussspAdapter', function () {
88
95
  let placements = data['placements'];
89
96
  for (let i = 0; i < placements.length; i++) {
90
97
  let placement = placements[i];
91
- expect(placement).to.have.all.keys('placementId', 'eids', 'bidId', 'traffic', 'sizes', 'schain', 'floor');
98
+ expect(placement).to.have.all.keys('placementId', 'eids', 'bidId', 'traffic', 'sizes', 'schain', 'floor', 'gpid');
92
99
  expect(placement.schain).to.be.an('object')
93
100
  expect(placement.placementId).to.be.a('number');
94
101
  expect(placement.bidId).to.be.a('string');
95
102
  expect(placement.traffic).to.be.a('string');
96
103
  expect(placement.sizes).to.be.an('array');
97
104
  expect(placement.floor).to.be.an('object');
105
+ expect(placement.gpid).to.be.an('string');
98
106
  }
99
107
  });
100
108
  it('Returns empty data if no valid requests are passed', function () {
@@ -135,7 +143,7 @@ describe('ColossussspAdapter', function () {
135
143
 
136
144
  describe('interpretResponse', function () {
137
145
  let resObject = {
138
- body: [ {
146
+ body: [{
139
147
  requestId: '123',
140
148
  mediaType: 'banner',
141
149
  cpm: 0.3,
@@ -150,7 +158,7 @@ describe('ColossussspAdapter', function () {
150
158
  advertiserDomains: ['google.com'],
151
159
  advertiserId: 1234
152
160
  }
153
- } ]
161
+ }]
154
162
  };
155
163
  let serverResponses = spec.interpretResponse(resObject);
156
164
  it('Returns an array of valid server responses if response object is valid', function () {
@@ -0,0 +1,246 @@
1
+ import { expect } from 'chai';
2
+ import * as utils from '../../../src/utils.js';
3
+ import {
4
+ spec,
5
+ CW_PAGE_VIEW_ID,
6
+ ENDPOINT_URL,
7
+ RENDERER_URL,
8
+ } from '../../../modules/cwireBidAdapter.js';
9
+ import * as prebidGlobal from 'src/prebidGlobal.js';
10
+
11
+ // ------------------------------------
12
+ // Bid Request Builder
13
+ // ------------------------------------
14
+
15
+ const BID_DEFAULTS = {
16
+ request: {
17
+ bidder: 'cwire',
18
+ auctionId: 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
19
+ transactionId: 'txaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
20
+ bidId: 'bid123445',
21
+ bidderRequestId: 'brid12345',
22
+ code: 'original-div',
23
+ },
24
+ params: {
25
+ placementId: 123456,
26
+ pageId: 777,
27
+ adUnitElementId: 'target-div'
28
+ },
29
+ sizes: [[300, 250], [1, 1]],
30
+ };
31
+
32
+ const BidderRequestBuilder = function BidderRequestBuilder(options) {
33
+ const defaults = {
34
+ bidderCode: 'cwire',
35
+ auctionId: BID_DEFAULTS.request.auctionId,
36
+ bidderRequestId: BID_DEFAULTS.request.bidderRequestId,
37
+ transactionId: BID_DEFAULTS.request.transactionId,
38
+ timeout: 3000,
39
+ refererInfo: {
40
+ numIframes: 0,
41
+ reachedTop: true,
42
+ referer: 'http://test.io/index.html?pbjs_debug=true'
43
+ }
44
+ };
45
+
46
+ const request = {
47
+ ...defaults,
48
+ ...options
49
+ };
50
+
51
+ this.build = () => request;
52
+ };
53
+
54
+ const BidRequestBuilder = function BidRequestBuilder(options, deleteKeys) {
55
+ const defaults = JSON.parse(JSON.stringify(BID_DEFAULTS));
56
+
57
+ const request = {
58
+ ...defaults.request,
59
+ ...options
60
+ };
61
+
62
+ if (request && utils.isArray(deleteKeys)) {
63
+ deleteKeys.forEach((k) => {
64
+ delete request[k];
65
+ })
66
+ }
67
+
68
+ this.withParams = (options, deleteKeys) => {
69
+ request.params = {
70
+ ...defaults.params,
71
+ ...options
72
+ };
73
+ if (request && utils.isArray(deleteKeys)) {
74
+ deleteKeys.forEach((k) => {
75
+ delete request.params[k];
76
+ })
77
+ }
78
+ return this;
79
+ };
80
+
81
+ this.build = () => request;
82
+ };
83
+
84
+ describe('C-WIRE bid adapter', () => {
85
+ let utilsMock;
86
+ let sandbox;
87
+
88
+ beforeEach(() => {
89
+ utilsMock = sinon.mock(utils);
90
+ sandbox = sinon.createSandbox();
91
+ });
92
+
93
+ afterEach(() => {
94
+ utilsMock.restore();
95
+ sandbox.restore();
96
+ });
97
+
98
+ // START TESTING
99
+ describe('C-WIRE - isBidRequestValid', function () {
100
+ it('should return true when required params found', function () {
101
+ const bid01 = new BidRequestBuilder().withParams().build();
102
+ expect(spec.isBidRequestValid(bid01)).to.equal(true);
103
+ });
104
+
105
+ it('should fail if there is no placementId', function () {
106
+ const bid01 = new BidRequestBuilder().withParams().build();
107
+ delete bid01.params.placementId
108
+ expect(spec.isBidRequestValid(bid01)).to.equal(false);
109
+ });
110
+
111
+ it('should fail if invalid placementId type', function () {
112
+ const bid01 = new BidRequestBuilder().withParams().build();
113
+ delete bid01.params.placementId;
114
+ bid01.placementId = '322';
115
+ expect(spec.isBidRequestValid(bid01)).to.equal(false);
116
+ });
117
+
118
+ it('should fail if there is no pageId', function () {
119
+ const bid01 = new BidRequestBuilder().withParams().build();
120
+ delete bid01.params.pageId
121
+ expect(spec.isBidRequestValid(bid01)).to.equal(false);
122
+ });
123
+
124
+ it('should fail if invalid pageId type', function () {
125
+ const bid01 = new BidRequestBuilder().withParams().build();
126
+ delete bid01.params.pageId;
127
+ bid01.params.pageId = '3320';
128
+ expect(spec.isBidRequestValid(bid01)).to.equal(false);
129
+ });
130
+
131
+ it('should use params.adUnitElementId if provided', function () {
132
+ const bid01 = new BidRequestBuilder().withParams().build();
133
+
134
+ expect(spec.isBidRequestValid(bid01)).to.equal(true);
135
+ expect(bid01.params.adUnitElementId).to.exist;
136
+ expect(bid01.params.adUnitElementId).to.equal('target-div');
137
+ });
138
+
139
+ it('should use default adUnitCode if no adUnitElementId provided', function () {
140
+ const bid01 = new BidRequestBuilder().withParams({}, ['adUnitElementId']).build();
141
+ expect(spec.isBidRequestValid(bid01)).to.equal(true);
142
+ expect(bid01.params.adUnitElementId).to.exist;
143
+ expect(bid01.params.adUnitElementId).to.equal('original-div');
144
+ });
145
+ });
146
+
147
+ describe('C-WIRE - buildRequests()', function () {
148
+ it('creates a valid request', function () {
149
+ const bid01 = new BidRequestBuilder({
150
+ mediaTypes: {
151
+ banner: {
152
+ sizes: [[1, 1]],
153
+ }
154
+ }
155
+ }).withParams().build();
156
+ const bidderRequest01 = new BidderRequestBuilder().build();
157
+
158
+ const requests = spec.buildRequests([bid01], bidderRequest01);
159
+ expect(requests.data.slots.length).to.equal(1);
160
+ expect(requests.data.cwid).to.be.null;
161
+ expect(requests.data.slots[0].sizes[0]).to.equal('1x1');
162
+ });
163
+ });
164
+
165
+ describe('C-WIRE - interpretResponse()', function () {
166
+ const serverResponse = {
167
+ body: {
168
+ bids: [{
169
+ html: '<div><h2>AD CONTENT</h2></div>',
170
+ currency: 'CHF',
171
+ cpm: 43.37,
172
+ dimensions: [1, 1],
173
+ netRevenue: true,
174
+ creativeId: '1337',
175
+ requestId: BID_DEFAULTS.request.bidId,
176
+ ttl: 3500,
177
+ }],
178
+ }
179
+ };
180
+
181
+ const expectedResponse = [{
182
+ ad: JSON.parse(JSON.stringify(serverResponse.body.bids[0].html)),
183
+ bidderCode: BID_DEFAULTS.request.bidder,
184
+ cpm: JSON.parse(JSON.stringify(serverResponse.body.bids[0].cpm)),
185
+ creativeId: JSON.parse(JSON.stringify(serverResponse.body.bids[0].creativeId)),
186
+ currency: JSON.parse(JSON.stringify(serverResponse.body.bids[0].currency)),
187
+ height: JSON.parse(JSON.stringify(serverResponse.body.bids[0].dimensions[0])),
188
+ width: JSON.parse(JSON.stringify(serverResponse.body.bids[0].dimensions[1])),
189
+ netRevenue: JSON.parse(JSON.stringify(serverResponse.body.bids[0].netRevenue)),
190
+ requestId: JSON.parse(JSON.stringify(serverResponse.body.bids[0].requestId)),
191
+ ttl: JSON.parse(JSON.stringify(serverResponse.body.bids[0].ttl)),
192
+ meta: {
193
+ advertiserDomains: [],
194
+ },
195
+ mediaType: 'banner',
196
+ }]
197
+
198
+ it('correctly parses response', function () {
199
+ const bid01 = new BidRequestBuilder({
200
+ mediaTypes: {
201
+ banner: {
202
+ sizes: [[1, 1]],
203
+ }
204
+ }
205
+ }).withParams().build();
206
+
207
+ const bidderRequest01 = new BidderRequestBuilder().build();
208
+ const requests = spec.buildRequests([bid01], bidderRequest01);
209
+
210
+ const response = spec.interpretResponse(serverResponse, requests);
211
+ expect(response).to.deep.equal(expectedResponse);
212
+ });
213
+
214
+ it('attaches renderer', function () {
215
+ const bid01 = new BidRequestBuilder({
216
+ mediaTypes: {
217
+ video: {
218
+ playerSize: [[640, 480]],
219
+ context: 'outstream',
220
+ }
221
+ }
222
+ }).withParams().build();
223
+ const bidderRequest01 = new BidderRequestBuilder().build();
224
+
225
+ const _serverResponse = utils.deepClone(serverResponse);
226
+ _serverResponse.body.bids[0].vastXml = '<xml></xml>';
227
+
228
+ const _expectedResponse = utils.deepClone(expectedResponse);
229
+ _expectedResponse[0].mediaType = 'video';
230
+ _expectedResponse[0].videoScript = JSON.parse(JSON.stringify(_serverResponse.body.bids[0].html));
231
+ _expectedResponse[0].vastXml = JSON.parse(JSON.stringify(_serverResponse.body.bids[0].vastXml));
232
+ delete _expectedResponse[0].ad;
233
+
234
+ const requests = spec.buildRequests([bid01], bidderRequest01);
235
+ expect(requests.data.slots[0].sizes).to.deep.equal(['640x480']);
236
+
237
+ const response = spec.interpretResponse(_serverResponse, requests);
238
+ expect(response[0].renderer).to.exist;
239
+ expect(response[0].renderer.url).to.equals(RENDERER_URL);
240
+ expect(response[0].renderer.loaded).to.equals(false);
241
+
242
+ delete response[0].renderer;
243
+ expect(response).to.deep.equal(_expectedResponse);
244
+ });
245
+ });
246
+ });
@@ -350,7 +350,7 @@ describe('E-Planning Adapter', function () {
350
350
 
351
351
  it('should create the url correctly', function () {
352
352
  const url = spec.buildRequests(bidRequests, bidderRequest).url;
353
- expect(url).to.equal('https://ads.us.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
353
+ expect(url).to.equal('https://pbjs.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
354
354
  });
355
355
 
356
356
  it('should return GET method', function () {
@@ -740,7 +740,7 @@ describe('E-Planning Adapter', function () {
740
740
  hasLocalStorageStub.returns(false);
741
741
  const response = spec.buildRequests(bidRequests, bidderRequest);
742
742
 
743
- expect(response.url).to.equal('https://ads.us.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
743
+ expect(response.url).to.equal('https://pbjs.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
744
744
  expect(response.data.vs).to.equal('F');
745
745
 
746
746
  sinon.assert.notCalled(getLocalStorageSpy);
@@ -750,7 +750,7 @@ describe('E-Planning Adapter', function () {
750
750
  it('should create the url correctly with LocalStorage', function() {
751
751
  createElementVisible();
752
752
  const response = spec.buildRequests(bidRequests, bidderRequest);
753
- expect(response.url).to.equal('https://ads.us.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
753
+ expect(response.url).to.equal('https://pbjs.e-planning.net/pbjs/1/' + CI + '/1/localhost/ROS');
754
754
 
755
755
  expect(response.data.vs).to.equal('F');
756
756