prebid.js 7.8.0 → 7.11.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 (483) hide show
  1. package/README.md +0 -2
  2. package/RELEASE_SCHEDULE.md +1 -1
  3. package/allowedModules.js +3 -0
  4. package/babelConfig.js +10 -4
  5. package/dist/33acrossBidAdapter.js +1 -1
  6. package/dist/adWMGAnalyticsAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adbookpspBidAdapter.js +1 -1
  10. package/dist/adgenerationBidAdapter.js +1 -1
  11. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adlooxAdServerVideo.js +1 -1
  14. package/dist/adlooxAnalyticsAdapter.js +1 -1
  15. package/dist/adlooxRtdProvider.js +1 -1
  16. package/dist/adnuntiusBidAdapter.js +1 -1
  17. package/dist/adomikAnalyticsAdapter.js +1 -1
  18. package/dist/adrelevantisBidAdapter.js +1 -1
  19. package/dist/adtelligentBidAdapter.js +1 -1
  20. package/dist/adtrgtmeBidAdapter.js +1 -0
  21. package/dist/adxcgAnalyticsAdapter.js +1 -1
  22. package/dist/adxcgBidAdapter.js +1 -1
  23. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  24. package/dist/adyoulikeBidAdapter.js +1 -1
  25. package/dist/ajaBidAdapter.js +1 -1
  26. package/dist/amxBidAdapter.js +1 -1
  27. package/dist/amxIdSystem.js +1 -1
  28. package/dist/analyticsAdapter.js +1 -0
  29. package/dist/andBeyondMediaBidAdapter.js +1 -0
  30. package/dist/aniviewBidAdapter.js +1 -1
  31. package/dist/appierAnalyticsAdapter.js +1 -1
  32. package/dist/appnexusBidAdapter.js +1 -1
  33. package/dist/asoBidAdapter.js +1 -1
  34. package/dist/atsAnalyticsAdapter.js +1 -1
  35. package/dist/audiencerunBidAdapter.js +1 -1
  36. package/dist/axonixBidAdapter.js +1 -1
  37. package/dist/bidglassBidAdapter.js +1 -1
  38. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  39. package/dist/big-richmediaBidAdapter.js +1 -1
  40. package/dist/bluebillywigBidAdapter.js +1 -1
  41. package/dist/boldwinBidAdapter.js +1 -1
  42. package/dist/bridgewellBidAdapter.js +1 -1
  43. package/dist/brightMountainMediaBidAdapter.js +1 -1
  44. package/dist/browsiRtdProvider.js +1 -1
  45. package/dist/byDataAnalyticsAdapter.js +1 -1
  46. package/dist/c1xBidAdapter.js +1 -0
  47. package/dist/cleanioRtdProvider.js +1 -1
  48. package/dist/concertAnalyticsAdapter.js +1 -1
  49. package/dist/concertBidAdapter.js +1 -1
  50. package/dist/connectadBidAdapter.js +1 -1
  51. package/dist/consentManagementUsp.js +1 -1
  52. package/dist/consumableBidAdapter.js +1 -1
  53. package/dist/conversantBidAdapter.js +1 -1
  54. package/dist/cpmstarBidAdapter.js +1 -1
  55. package/dist/craftBidAdapter.js +1 -1
  56. package/dist/criteoBidAdapter.js +1 -1
  57. package/dist/datablocksAnalyticsAdapter.js +1 -1
  58. package/dist/datawrkzBidAdapter.js +1 -0
  59. package/dist/debugging-standalone.js +1 -1
  60. package/dist/dependencies.json +171 -0
  61. package/dist/dspxBidAdapter.js +1 -1
  62. package/dist/eplanningAnalyticsAdapter.js +1 -1
  63. package/dist/eplanningBidAdapter.js +1 -1
  64. package/dist/finativeBidAdapter.js +1 -1
  65. package/dist/fintezaAnalyticsAdapter.js +1 -1
  66. package/dist/freewheel-sspBidAdapter.js +1 -1
  67. package/dist/getOrigin.js +1 -1
  68. package/dist/glimpseBidAdapter.js +1 -1
  69. package/dist/gmosspBidAdapter.js +1 -1
  70. package/dist/goldbachBidAdapter.js +1 -1
  71. package/dist/gridBidAdapter.js +1 -1
  72. package/dist/gridNMBidAdapter.js +1 -1
  73. package/dist/gumgumBidAdapter.js +1 -1
  74. package/dist/h12mediaBidAdapter.js +1 -1
  75. package/dist/hadronAnalyticsAdapter.js +1 -1
  76. package/dist/id5AnalyticsAdapter.js +1 -1
  77. package/dist/id5IdSystem.js +1 -1
  78. package/dist/impactifyBidAdapter.js +1 -1
  79. package/dist/improvedigitalBidAdapter.js +1 -1
  80. package/dist/imuIdSystem.js +1 -1
  81. package/dist/inmarBidAdapter.js +1 -1
  82. package/dist/insticatorBidAdapter.js +1 -1
  83. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  84. package/dist/ixBidAdapter.js +1 -1
  85. package/dist/jixieBidAdapter.js +1 -1
  86. package/dist/justpremiumBidAdapter.js +1 -1
  87. package/dist/kargoAnalyticsAdapter.js +1 -1
  88. package/dist/kargoBidAdapter.js +1 -1
  89. package/dist/konduitAnalyticsAdapter.js +1 -1
  90. package/dist/kueezBidAdapter.js +1 -1
  91. package/dist/lassoBidAdapter.js +1 -1
  92. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  93. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  94. package/dist/logicadBidAdapter.js +1 -1
  95. package/dist/loglyliftBidAdapter.js +1 -1
  96. package/dist/malltvAnalyticsAdapter.js +1 -1
  97. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  98. package/dist/marsmediaBidAdapter.js +1 -1
  99. package/dist/mediafuseBidAdapter.js +1 -1
  100. package/dist/mediakeysBidAdapter.js +1 -1
  101. package/dist/medianetAnalyticsAdapter.js +1 -1
  102. package/dist/mediasquareBidAdapter.js +1 -1
  103. package/dist/mgidBidAdapter.js +1 -1
  104. package/dist/minutemediaBidAdapter.js +1 -1
  105. package/dist/nextMillenniumBidAdapter.js +1 -1
  106. package/dist/nobidBidAdapter.js +1 -1
  107. package/dist/not-for-prod/prebid.js +182 -176
  108. package/dist/oguryBidAdapter.js +1 -1
  109. package/dist/onetagBidAdapter.js +1 -1
  110. package/dist/ooloAnalyticsAdapter.js +1 -1
  111. package/dist/openxAnalyticsAdapter.js +1 -1
  112. package/dist/openxBidAdapter.js +1 -1
  113. package/dist/openxOrtbBidAdapter.js +1 -1
  114. package/dist/optimonAnalyticsAdapter.js +1 -1
  115. package/dist/outbrainBidAdapter.js +1 -1
  116. package/dist/ozoneBidAdapter.js +1 -1
  117. package/dist/parrableIdSystem.js +1 -1
  118. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  119. package/dist/pixfutureBidAdapter.js +1 -1
  120. package/dist/prebid-core.js +1 -1
  121. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  122. package/dist/publinkIdSystem.js +1 -1
  123. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  124. package/dist/pubmaticBidAdapter.js +1 -1
  125. package/dist/pubperfAnalyticsAdapter.js +1 -1
  126. package/dist/pubstackAnalyticsAdapter.js +1 -1
  127. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  128. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  129. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  130. package/dist/pxyzBidAdapter.js +1 -1
  131. package/dist/quantcastBidAdapter.js +1 -1
  132. package/dist/readpeakBidAdapter.js +1 -1
  133. package/dist/realvuAnalyticsAdapter.js +1 -1
  134. package/dist/relaidoBidAdapter.js +1 -1
  135. package/dist/relevantAnalyticsAdapter.js +1 -1
  136. package/dist/rhythmoneBidAdapter.js +1 -1
  137. package/dist/riseBidAdapter.js +1 -1
  138. package/dist/rivrAnalyticsAdapter.js +1 -1
  139. package/dist/roxotAnalyticsAdapter.js +1 -1
  140. package/dist/rtbhouseBidAdapter.js +1 -1
  141. package/dist/rubiconAnalyticsAdapter.js +1 -1
  142. package/dist/rubiconBidAdapter.js +1 -1
  143. package/dist/scaleableAnalyticsAdapter.js +1 -1
  144. package/dist/seedingAllianceBidAdapter.js +1 -1
  145. package/dist/seedtagBidAdapter.js +1 -1
  146. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  147. package/dist/sharethroughBidAdapter.js +1 -1
  148. package/dist/shinezBidAdapter.js +1 -1
  149. package/dist/showheroes-bsBidAdapter.js +1 -1
  150. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  151. package/dist/smaatoBidAdapter.js +1 -1
  152. package/dist/smartadserverBidAdapter.js +1 -1
  153. package/dist/smartxBidAdapter.js +1 -1
  154. package/dist/smilewantedBidAdapter.js +1 -1
  155. package/dist/snigelBidAdapter.js +1 -0
  156. package/dist/sonobiAnalyticsAdapter.js +1 -1
  157. package/dist/sonobiBidAdapter.js +1 -1
  158. package/dist/sovrnAnalyticsAdapter.js +1 -1
  159. package/dist/sovrnBidAdapter.js +1 -1
  160. package/dist/sspBCBidAdapter.js +1 -1
  161. package/dist/staqAnalyticsAdapter.js +1 -1
  162. package/dist/sublimeBidAdapter.js +1 -1
  163. package/dist/synacormediaBidAdapter.js +1 -1
  164. package/dist/tappxBidAdapter.js +1 -1
  165. package/dist/targetVideoBidAdapter.js +1 -1
  166. package/dist/teadsBidAdapter.js +1 -1
  167. package/dist/terceptAnalyticsAdapter.js +1 -1
  168. package/dist/trionBidAdapter.js +1 -1
  169. package/dist/tripleliftBidAdapter.js +1 -1
  170. package/dist/trustpidSystem.js +1 -1
  171. package/dist/ttdBidAdapter.js +1 -1
  172. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  173. package/dist/underdogmediaBidAdapter.js +1 -1
  174. package/dist/undertoneBidAdapter.js +1 -1
  175. package/dist/userId.js +1 -1
  176. package/dist/vidazooBidAdapter.js +1 -1
  177. package/dist/videobyteBidAdapter.js +1 -1
  178. package/dist/visxBidAdapter.js +1 -1
  179. package/dist/vuukleBidAdapter.js +1 -1
  180. package/dist/widespaceBidAdapter.js +1 -1
  181. package/dist/winrBidAdapter.js +1 -1
  182. package/dist/yahoosspBidAdapter.js +1 -1
  183. package/dist/yieldmoBidAdapter.js +1 -1
  184. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  185. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  186. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  187. package/dist/zeta_global_sspBidAdapter.js +1 -1
  188. package/gulpHelpers.js +22 -55
  189. package/gulpfile.js +12 -5
  190. package/integrationExamples/gpt/1plusXRtdProviderExample.html +2 -4
  191. package/integrationExamples/gpt/airgridRtdProvider_example.html +1 -4
  192. package/integrationExamples/gpt/amp/remote.html +1 -1
  193. package/integrationExamples/gpt/blueconicRtdProvider_example.html +2 -4
  194. package/integrationExamples/gpt/hadronRtdProvider_example.html +1 -3
  195. package/integrationExamples/gpt/inskin_example.html +1 -3
  196. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  197. package/integrationExamples/gpt/prebidServer_example.html +1 -3
  198. package/integrationExamples/gpt/serverbidServer_example.html +1 -3
  199. package/integrationExamples/gpt/userId_example.html +1 -3
  200. package/integrationExamples/postbid/oas/postbid-config.js +5 -5
  201. package/karma.conf.maker.js +2 -13
  202. package/libraries/LIBRARIES.md +5 -0
  203. package/{src → libraries/analyticsAdapter}/AnalyticsAdapter.js +5 -6
  204. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example.js +1 -1
  205. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example2.js +1 -1
  206. package/modules/.submodules.json +0 -12
  207. package/modules/1plusXRtdProvider.js +1 -1
  208. package/modules/33acrossBidAdapter.js +3 -3
  209. package/modules/adWMGAnalyticsAdapter.js +1 -1
  210. package/modules/adagioAnalyticsAdapter.js +1 -1
  211. package/modules/adagioBidAdapter.js +3 -4
  212. package/modules/adgenerationBidAdapter.js +1 -1
  213. package/modules/adkernelAdnAnalyticsAdapter.js +1 -1
  214. package/modules/adkernelBidAdapter.js +2 -1
  215. package/modules/adlooxAnalyticsAdapter.js +1 -1
  216. package/modules/admixerBidAdapter.js +1 -1
  217. package/modules/adnowBidAdapter.js +1 -1
  218. package/modules/adnuntiusBidAdapter.js +3 -1
  219. package/modules/adomikAnalyticsAdapter.js +1 -1
  220. package/modules/adpod.js +1 -1
  221. package/modules/adrelevantisBidAdapter.js +2 -2
  222. package/modules/adriverBidAdapter.js +1 -1
  223. package/modules/adtargetBidAdapter.js +1 -1
  224. package/modules/adtelligentBidAdapter.js +4 -2
  225. package/modules/adtrgtmeBidAdapter.js +333 -0
  226. package/modules/adtrgtmeBidAdapter.md +69 -0
  227. package/modules/adtrueBidAdapter.js +1 -1
  228. package/modules/adxcgAnalyticsAdapter.js +1 -1
  229. package/modules/adxpremiumAnalyticsAdapter.js +2 -2
  230. package/modules/adyoulikeBidAdapter.js +12 -8
  231. package/modules/akamaiDapRtdProvider.js +2 -2
  232. package/modules/andBeyondMediaBidAdapter.js +202 -0
  233. package/modules/andBeyondMediaBidAdapter.md +79 -0
  234. package/modules/aniviewBidAdapter.js +2 -2
  235. package/modules/apacdexBidAdapter.js +3 -3
  236. package/modules/appierAnalyticsAdapter.js +1 -1
  237. package/modules/appnexusBidAdapter.js +9 -9
  238. package/modules/apstreamBidAdapter.js +2 -2
  239. package/modules/atsAnalyticsAdapter.js +1 -1
  240. package/modules/betweenBidAdapter.js +1 -1
  241. package/modules/bidwatchAnalyticsAdapter.js +71 -12
  242. package/modules/bizzclickBidAdapter.js +1 -1
  243. package/modules/bliinkBidAdapter.js +1 -1
  244. package/modules/boldwinBidAdapter.js +16 -7
  245. package/modules/boldwinBidAdapter.md +17 -0
  246. package/modules/brightMountainMediaBidAdapter.js +1 -1
  247. package/modules/browsiRtdProvider.js +26 -12
  248. package/modules/byDataAnalyticsAdapter.js +2 -2
  249. package/modules/c1xBidAdapter.js +209 -0
  250. package/modules/c1xBidAdapter.md +70 -0
  251. package/modules/cleanioRtdProvider.js +29 -0
  252. package/modules/cleanmedianetBidAdapter.js +1 -1
  253. package/modules/colossussspBidAdapter.js +2 -2
  254. package/modules/concertAnalyticsAdapter.js +1 -1
  255. package/modules/consentManagementUsp.js +2 -2
  256. package/modules/consumableBidAdapter.js +21 -3
  257. package/modules/cpmstarBidAdapter.js +23 -13
  258. package/modules/criteoBidAdapter.js +47 -5
  259. package/modules/cwireBidAdapter.js +1 -1
  260. package/modules/datablocksAnalyticsAdapter.js +1 -1
  261. package/modules/datablocksBidAdapter.js +1 -1
  262. package/modules/datawrkzBidAdapter.js +633 -0
  263. package/modules/datawrkzBidAdapter.md +160 -0
  264. package/modules/dfpAdServerVideo.js +2 -2
  265. package/modules/dgkeywordRtdProvider.js +1 -1
  266. package/modules/dspxBidAdapter.js +1 -1
  267. package/modules/e_volutionBidAdapter.js +3 -3
  268. package/modules/ebdrBidAdapter.js +1 -1
  269. package/modules/emx_digitalBidAdapter.js +1 -1
  270. package/modules/eplanningAnalyticsAdapter.js +1 -1
  271. package/modules/eplanningBidAdapter.js +3 -3
  272. package/modules/fabrickIdSystem.js +2 -2
  273. package/modules/fintezaAnalyticsAdapter.js +2 -2
  274. package/modules/freewheel-sspBidAdapter.js +1 -1
  275. package/modules/gamoshiBidAdapter.js +1 -1
  276. package/modules/getintentBidAdapter.js +1 -1
  277. package/modules/gjirafaBidAdapter.js +2 -2
  278. package/modules/goldbachBidAdapter.js +8 -8
  279. package/modules/gothamadsBidAdapter.js +2 -2
  280. package/modules/gridBidAdapter.js +1 -1
  281. package/modules/gridNMBidAdapter.js +1 -1
  282. package/modules/gumgumBidAdapter.js +3 -3
  283. package/modules/h12mediaBidAdapter.js +1 -1
  284. package/modules/hadronAnalyticsAdapter.js +3 -3
  285. package/modules/hadronRtdProvider.js +1 -1
  286. package/modules/id5AnalyticsAdapter.js +2 -2
  287. package/modules/impactifyBidAdapter.js +1 -1
  288. package/modules/improvedigitalBidAdapter.js +5 -2
  289. package/modules/imuIdSystem.js +40 -28
  290. package/modules/imuIdSystem.md +1 -0
  291. package/modules/inskinBidAdapter.js +1 -1
  292. package/modules/integr8BidAdapter.js +2 -2
  293. package/modules/intentIqIdSystem.js +2 -2
  294. package/modules/interactiveOffersBidAdapter.js +1 -1
  295. package/modules/invisiblyAnalyticsAdapter.js +1 -1
  296. package/modules/iqmBidAdapter.js +1 -1
  297. package/modules/ixBidAdapter.js +15 -15
  298. package/modules/kargoAnalyticsAdapter.js +1 -1
  299. package/modules/kargoBidAdapter.js +4 -5
  300. package/modules/konduitAnalyticsAdapter.js +1 -1
  301. package/modules/krushmediaBidAdapter.js +2 -2
  302. package/modules/kueezBidAdapter.js +2 -2
  303. package/modules/lassoBidAdapter.js +3 -3
  304. package/modules/livewrappedAnalyticsAdapter.js +4 -4
  305. package/modules/liveyieldAnalyticsAdapter.js +1 -1
  306. package/modules/lkqdBidAdapter.js +3 -3
  307. package/modules/loganBidAdapter.js +2 -2
  308. package/modules/luponmediaBidAdapter.js +3 -3
  309. package/modules/malltvAnalyticsAdapter.js +1 -1
  310. package/modules/malltvBidAdapter.js +2 -2
  311. package/modules/marsmediaAnalyticsAdapter.js +1 -1
  312. package/modules/mediafuseBidAdapter.js +8 -8
  313. package/modules/mediakeysBidAdapter.js +2 -2
  314. package/modules/medianetAnalyticsAdapter.js +1 -1
  315. package/modules/merkleIdSystem.js +2 -2
  316. package/modules/mgidBidAdapter.js +2 -2
  317. package/modules/microadBidAdapter.js +1 -1
  318. package/modules/mobfoxpbBidAdapter.js +2 -2
  319. package/modules/newspassidBidAdapter.js +1 -1
  320. package/modules/nextMillenniumBidAdapter.js +21 -2
  321. package/modules/nobidBidAdapter.js +3 -3
  322. package/modules/novatiqIdSystem.js +1 -1
  323. package/modules/oguryBidAdapter.js +1 -1
  324. package/modules/ooloAnalyticsAdapter.js +1 -1
  325. package/modules/open8BidAdapter.js +1 -1
  326. package/modules/openwebBidAdapter.js +1 -1
  327. package/modules/openxAnalyticsAdapter.js +6 -745
  328. package/modules/openxAnalyticsAdapter.md +4 -0
  329. package/modules/openxBidAdapter.js +3 -5
  330. package/modules/openxOrtbBidAdapter.js +8 -4
  331. package/modules/operaadsBidAdapter.js +1 -1
  332. package/modules/optimonAnalyticsAdapter.js +1 -1
  333. package/modules/ozoneBidAdapter.js +102 -271
  334. package/modules/ozoneBidAdapter.md +37 -0
  335. package/modules/pianoDmpAnalyticsAdapter.js +1 -1
  336. package/modules/pixfutureBidAdapter.js +1 -1
  337. package/modules/prebidServerBidAdapter/index.js +7 -7
  338. package/modules/prebidmanagerAnalyticsAdapter.js +2 -2
  339. package/modules/priceFloors.js +1 -1
  340. package/modules/pubmaticAnalyticsAdapter.js +2 -2
  341. package/modules/pubmaticBidAdapter.js +28 -8
  342. package/modules/pubperfAnalyticsAdapter.js +1 -1
  343. package/modules/pubstackAnalyticsAdapter.js +1 -1
  344. package/modules/pubwiseAnalyticsAdapter.js +2 -2
  345. package/modules/pubwiseBidAdapter.js +3 -3
  346. package/modules/pubxBidAdapter.js +1 -1
  347. package/modules/pubxaiAnalyticsAdapter.js +3 -3
  348. package/modules/pulsepointAnalyticsAdapter.js +1 -1
  349. package/modules/pulsepointBidAdapter.js +1 -1
  350. package/modules/quantcastIdSystem.js +1 -1
  351. package/modules/radsBidAdapter.js +1 -1
  352. package/modules/realvuAnalyticsAdapter.js +1 -1
  353. package/modules/relaidoBidAdapter.js +23 -18
  354. package/modules/relevantAnalyticsAdapter.js +1 -1
  355. package/modules/revcontentBidAdapter.js +1 -1
  356. package/modules/richaudienceBidAdapter.js +1 -1
  357. package/modules/riseBidAdapter.js +8 -5
  358. package/modules/riseBidAdapter.md +3 -1
  359. package/modules/rivrAnalyticsAdapter.js +1 -1
  360. package/modules/roxotAnalyticsAdapter.js +1 -1
  361. package/modules/rtbhouseBidAdapter.js +1 -1
  362. package/modules/rubiconAnalyticsAdapter.js +1 -1
  363. package/modules/rubiconBidAdapter.js +2 -2
  364. package/modules/scaleableAnalyticsAdapter.js +1 -1
  365. package/modules/schain.js +1 -1
  366. package/modules/sharethroughAnalyticsAdapter.js +1 -1
  367. package/modules/sharethroughBidAdapter.js +3 -3
  368. package/modules/shinezBidAdapter.js +2 -2
  369. package/modules/showheroes-bsBidAdapter.js +131 -49
  370. package/modules/showheroes-bsBidAdapter.md +49 -0
  371. package/modules/sigmoidAnalyticsAdapter.js +1 -1
  372. package/modules/sirdataRtdProvider.js +3 -3
  373. package/modules/sizeMappingV2.js +1 -1
  374. package/modules/smaatoBidAdapter.js +2 -2
  375. package/modules/smartxBidAdapter.js +2 -2
  376. package/modules/snigelBidAdapter.js +150 -0
  377. package/modules/snigelBidAdapter.md +46 -0
  378. package/modules/sonobiAnalyticsAdapter.js +2 -2
  379. package/modules/sonobiBidAdapter.js +3 -3
  380. package/modules/sovrnAnalyticsAdapter.js +1 -1
  381. package/modules/spotxBidAdapter.js +5 -5
  382. package/modules/sspBCBidAdapter.js +15 -18
  383. package/modules/staqAnalyticsAdapter.js +2 -2
  384. package/modules/synacormediaBidAdapter.js +1 -1
  385. package/modules/taboolaBidAdapter.js +1 -1
  386. package/modules/tappxBidAdapter.js +4 -4
  387. package/modules/targetVideoBidAdapter.js +1 -1
  388. package/modules/terceptAnalyticsAdapter.js +1 -1
  389. package/modules/theAdxBidAdapter.js +2 -2
  390. package/modules/tpmnBidAdapter.js +1 -1
  391. package/modules/trionBidAdapter.js +2 -2
  392. package/modules/tripleliftBidAdapter.js +46 -20
  393. package/modules/trustpidSystem.js +2 -2
  394. package/modules/ttdBidAdapter.js +41 -26
  395. package/modules/ttdBidAdapter.md +4 -10
  396. package/modules/ucfunnelAnalyticsAdapter.js +1 -1
  397. package/modules/underdogmediaBidAdapter.js +1 -1
  398. package/modules/userId/eids.js +5 -0
  399. package/modules/userId/index.js +11 -7
  400. package/modules/vdoaiBidAdapter.js +1 -1
  401. package/modules/vidazooBidAdapter.js +9 -5
  402. package/modules/videoheroesBidAdapter.js +1 -1
  403. package/modules/vidoomyBidAdapter.js +1 -1
  404. package/modules/visxBidAdapter.js +1 -1
  405. package/modules/vrtcalBidAdapter.js +1 -1
  406. package/modules/weboramaRtdProvider.js +3 -3
  407. package/modules/winrBidAdapter.js +1 -1
  408. package/modules/yahoosspBidAdapter.js +4 -3
  409. package/modules/yandexBidAdapter.js +1 -1
  410. package/modules/yieldmoBidAdapter.js +3 -3
  411. package/modules/yieldoneAnalyticsAdapter.js +1 -1
  412. package/modules/yieldoneBidAdapter.js +2 -2
  413. package/modules/yuktamediaAnalyticsAdapter.js +1 -1
  414. package/modules/zeta_global_sspAnalyticsAdapter.js +1 -1
  415. package/modules/zeta_global_sspBidAdapter.js +25 -22
  416. package/package.json +4 -3
  417. package/src/Renderer.js +1 -1
  418. package/src/adapterManager.js +3 -3
  419. package/src/adapters/bidderFactory.js +1 -0
  420. package/src/auction.js +2 -2
  421. package/src/bidfactory.js +1 -1
  422. package/src/config.js +7 -7
  423. package/src/native.js +53 -58
  424. package/src/sizeMapping.js +1 -1
  425. package/src/targeting.js +1 -1
  426. package/src/userSync.js +1 -1
  427. package/src/utils.js +1 -1
  428. package/test/mocks/analyticsStub.js +1 -1
  429. package/test/spec/AnalyticsAdapter_spec.js +1 -1
  430. package/test/spec/config_spec.js +4 -0
  431. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  432. package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -3
  433. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  434. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  435. package/test/spec/modules/adyoulikeBidAdapter_spec.js +8 -3
  436. package/test/spec/modules/andBeyondMediaBidAdapter_spec.js +400 -0
  437. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +17 -1
  438. package/test/spec/modules/boldwinBidAdapter_spec.js +2 -1
  439. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  440. package/test/spec/modules/c1xBidAdapter_spec.js +189 -0
  441. package/test/spec/modules/cleanioRtdProvider_spec.js +23 -0
  442. package/test/spec/modules/concertAnalyticsAdapter_spec.js +2 -1
  443. package/test/spec/modules/consumableBidAdapter_spec.js +139 -0
  444. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  445. package/test/spec/modules/criteoBidAdapter_spec.js +169 -38
  446. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  447. package/test/spec/modules/eids_spec.js +32 -0
  448. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +2 -2
  449. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +2 -1
  450. package/test/spec/modules/improvedigitalBidAdapter_spec.js +4 -4
  451. package/test/spec/modules/imuIdSystem_spec.js +20 -4
  452. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +8 -3
  453. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  454. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +2 -1
  455. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +17 -0
  456. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  457. package/test/spec/modules/openxOrtbBidAdapter_spec.js +32 -1
  458. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +2 -1
  459. package/test/spec/modules/ozoneBidAdapter_spec.js +367 -511
  460. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +4 -0
  461. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -1
  462. package/test/spec/modules/pubmaticBidAdapter_spec.js +111 -5
  463. package/test/spec/modules/pubperfAnalyticsAdapter_spec.js +2 -1
  464. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +2 -1
  465. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +3 -3
  466. package/test/spec/modules/relaidoBidAdapter_spec.js +40 -33
  467. package/test/spec/modules/riseBidAdapter_spec.js +17 -0
  468. package/test/spec/modules/sharethroughBidAdapter_spec.js +10 -1
  469. package/test/spec/modules/showheroes-bsBidAdapter_spec.js +173 -2
  470. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +1 -1
  471. package/test/spec/modules/snigelBidAdapter_spec.js +296 -0
  472. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -1
  473. package/test/spec/modules/sspBCBidAdapter_spec.js +2 -2
  474. package/test/spec/modules/tripleliftBidAdapter_spec.js +378 -10
  475. package/test/spec/modules/ttdBidAdapter_spec.js +113 -34
  476. package/test/spec/modules/userId_spec.js +38 -2
  477. package/test/spec/modules/vidazooBidAdapter_spec.js +39 -24
  478. package/test/spec/modules/yahoosspBidAdapter_spec.js +13 -0
  479. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +5 -1
  480. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +61 -2
  481. package/test/spec/native_spec.js +96 -0
  482. package/test/spec/unit/core/bidderFactory_spec.js +27 -2
  483. package/webpack.conf.js +47 -11
@@ -47,5 +47,22 @@ Module that connects to boldwin demand sources
47
47
  }
48
48
  ]
49
49
  }
50
+ // Will return static test banner
51
+ {
52
+ code: 'endpointId_0',
53
+ mediaTypes: {
54
+ banner: {
55
+ sizes: [[300, 250]],
56
+ }
57
+ },
58
+ bids: [
59
+ {
60
+ bidder: 'boldwin',
61
+ params: {
62
+ endpointId: 'testBanner',
63
+ }
64
+ }
65
+ ]
66
+ },
50
67
  ];
51
68
  ```
@@ -99,7 +99,7 @@ export const spec = {
99
99
  let response;
100
100
 
101
101
  try {
102
- response = serverResponse.body
102
+ response = serverResponse.body;
103
103
  bid = response.seatbid[0].bid[0];
104
104
  } catch (e) {
105
105
  response = null;
@@ -57,6 +57,16 @@ export function addBrowsiTag(data) {
57
57
  return script;
58
58
  }
59
59
 
60
+ export function sendPageviewEvent(eventType) {
61
+ if (eventType === 'PAGEVIEW') {
62
+ events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
63
+ vendor: 'browsi',
64
+ type: 'pageview',
65
+ billingId: generateUUID()
66
+ })
67
+ }
68
+ }
69
+
60
70
  /**
61
71
  * collect required data from page
62
72
  * send data to browsi server to get predictions
@@ -93,7 +103,7 @@ export function collectData() {
93
103
  function waitForData(callback) {
94
104
  if (_browsiData) {
95
105
  _dataReadyCallback = null;
96
- callback(_browsiData);
106
+ callback();
97
107
  } else {
98
108
  _dataReadyCallback = callback;
99
109
  }
@@ -102,7 +112,7 @@ function waitForData(callback) {
102
112
  export function setData(data) {
103
113
  _browsiData = data;
104
114
  if (isFn(_dataReadyCallback)) {
105
- _dataReadyCallback(_browsiData);
115
+ _dataReadyCallback();
106
116
  _dataReadyCallback = null;
107
117
  }
108
118
  }
@@ -262,10 +272,11 @@ function getPredictionsFromServer(url) {
262
272
  try {
263
273
  const data = JSON.parse(response);
264
274
  if (data && data.p && data.kn) {
265
- setData({p: data.p, kn: data.kn, pmd: data.pmd});
275
+ setData({p: data.p, kn: data.kn, pmd: data.pmd, bet: data.bet});
266
276
  } else {
267
277
  setData({});
268
278
  }
279
+ sendPageviewEvent(data.bet);
269
280
  addBrowsiTag(data);
270
281
  } catch (err) {
271
282
  logError('unable to parse data');
@@ -336,19 +347,22 @@ export const browsiSubmodule = {
336
347
 
337
348
  function getTargetingData(uc, c, us, a) {
338
349
  const targetingData = getRTD(uc);
339
- const auctionId = a.auctionId
350
+ const auctionId = a.auctionId;
351
+ const sendAdRequestEvent = _browsiData['bet'] === 'AD_REQUEST';
340
352
  uc.forEach(auc => {
341
353
  if (isNumber(_ic[auc])) {
342
354
  _ic[auc] = _ic[auc] + 1;
343
355
  }
344
- const transactionId = a.adUnits.find(adUnit => adUnit.code === auc).transactionId;
345
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
346
- vendor: 'browsi',
347
- type: 'adRequest',
348
- billingId: generateUUID(),
349
- transactionId: transactionId,
350
- auctionId: auctionId
351
- })
356
+ if (sendAdRequestEvent) {
357
+ const transactionId = a.adUnits.find(adUnit => adUnit.code === auc).transactionId;
358
+ events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
359
+ vendor: 'browsi',
360
+ type: 'adRequest',
361
+ billingId: generateUUID(),
362
+ transactionId: transactionId,
363
+ auctionId: auctionId
364
+ })
365
+ }
352
366
  });
353
367
  logInfo('Browsi RTD provider returned targeting data', targetingData, 'for', uc)
354
368
  return targetingData;
@@ -2,7 +2,7 @@ import { deepClone, logInfo, logError } from '../src/utils.js';
2
2
  import Base64 from 'crypto-js/enc-base64';
3
3
  import hmacSHA512 from 'crypto-js/hmac-sha512';
4
4
  import enc from 'crypto-js/enc-utf8';
5
- import adapter from '../src/AnalyticsAdapter.js';
5
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
6
6
  import CONSTANTS from '../src/constants.json';
7
7
  import adapterManager from '../src/adapterManager.js';
8
8
  import { getStorageManager } from '../src/storageManager.js';
@@ -266,7 +266,7 @@ ascAdapter.getVisitorData = function (data = {}) {
266
266
  }
267
267
 
268
268
  const { clientId } = initOptions;
269
- var userId = storage.getDataFromLocalStorage('userId')
269
+ var userId = storage.getDataFromLocalStorage('userId');
270
270
  if (!userId) {
271
271
  userId = generateUid();
272
272
  storage.setDataInLocalStorage('userId', userId);
@@ -0,0 +1,209 @@
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
+ import { logInfo, logError } from '../src/utils.js';
3
+ import { BANNER } from '../src/mediaTypes.js';
4
+
5
+ const BIDDER_CODE = 'c1x';
6
+ const URL = 'https://hb-stg.c1exchange.com/ht';
7
+ // const PIXEL_ENDPOINT = '//px.c1exchange.com/pubpixel/';
8
+ const LOG_MSG = {
9
+ invalidBid: 'C1X: [ERROR] bidder returns an invalid bid',
10
+ noSite: 'C1X: [ERROR] no site id supplied',
11
+ noBid: 'C1X: [INFO] creating a NO bid for Adunit: ',
12
+ bidWin: 'C1X: [INFO] creating a bid for Adunit: '
13
+ };
14
+
15
+ /**
16
+ * Adapter for requesting bids from C1X header tag server.
17
+ * v3.1 (c) C1X Inc., 2018
18
+ */
19
+
20
+ export const c1xAdapter = {
21
+ code: BIDDER_CODE,
22
+ supportedMediaTypes: [BANNER],
23
+
24
+ /**
25
+ * Determines whether or not the given bid request is valid.
26
+ *
27
+ * @param {object} bid The bid to validate.
28
+ * @return boolean True if this is a valid bid, and false otherwise.
29
+ */
30
+ // check the bids sent to c1x bidder
31
+ isBidRequestValid: function (bid) {
32
+ if (bid.bidder !== BIDDER_CODE || typeof bid.params === 'undefined') {
33
+ return false;
34
+ }
35
+ if (typeof bid.params.placementId === 'undefined') {
36
+ return false;
37
+ }
38
+ return true;
39
+ },
40
+
41
+ /**
42
+ * Make a server request from the list of BidRequests.
43
+ *
44
+ * @param {BidRequest[]} validBidRequests A non-empty list of valid bid requests that should be sent to the Server.
45
+ * @return ServerRequest Info describing the request to the server.
46
+ */
47
+ buildRequests: function (validBidRequests, bidderRequest) {
48
+ let payload = {};
49
+ let tagObj = {};
50
+ let bidRequest = [];
51
+ const adunits = validBidRequests.length;
52
+ const rnd = new Date().getTime();
53
+ const c1xTags = validBidRequests.map(bidToTag);
54
+ const bidIdTags = validBidRequests.map(bidToShortTag); // include only adUnitCode and bidId from request obj
55
+
56
+ // flattened tags in a tag object
57
+ tagObj = c1xTags.reduce((current, next) => Object.assign(current, next));
58
+
59
+ payload = {
60
+ adunits: adunits.toString(),
61
+ rnd: rnd.toString(),
62
+ response: 'json',
63
+ compress: 'gzip'
64
+ };
65
+
66
+ // for GDPR support
67
+ if (bidderRequest && bidderRequest.gdprConsent) {
68
+ payload['consent_string'] = bidderRequest.gdprConsent.consentString;
69
+ payload['consent_required'] = (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') ? bidderRequest.gdprConsent.gdprApplies.toString() : 'true'
70
+ ;
71
+ }
72
+
73
+ Object.assign(payload, tagObj);
74
+ let payloadString = stringifyPayload(payload);
75
+ // ServerRequest object
76
+ bidRequest.push({
77
+ method: 'GET',
78
+ url: URL,
79
+ data: payloadString,
80
+ bids: bidIdTags
81
+ });
82
+ return bidRequest;
83
+ },
84
+
85
+ interpretResponse: function (serverResponse, requests) {
86
+ serverResponse = serverResponse.body;
87
+ requests = requests.bids || [];
88
+ const currency = 'USD';
89
+ const bidResponses = [];
90
+ let netRevenue = false;
91
+
92
+ if (!serverResponse || serverResponse.error) {
93
+ let errorMessage = serverResponse.error;
94
+ logError(LOG_MSG.invalidBid + errorMessage);
95
+ return bidResponses;
96
+ } else {
97
+ serverResponse.forEach(bid => {
98
+ logInfo(bid)
99
+ if (bid.bid) {
100
+ if (bid.bidType === 'NET_BID') {
101
+ netRevenue = !netRevenue;
102
+ }
103
+ const curBid = {
104
+ requestId: bid.bidId,
105
+ width: bid.width,
106
+ height: bid.height,
107
+ cpm: bid.cpm,
108
+ ad: bid.ad,
109
+ creativeId: bid.crid,
110
+ currency: currency,
111
+ ttl: 300,
112
+ netRevenue: netRevenue
113
+ };
114
+
115
+ if (bid.dealId) {
116
+ curBid['dealId'] = bid.dealId
117
+ }
118
+
119
+ for (let i = 0; i < requests.length; i++) {
120
+ if (bid.adId === requests[i].adUnitCode) {
121
+ curBid.requestId = requests[i].bidId;
122
+ }
123
+ }
124
+ logInfo(LOG_MSG.bidWin + bid.adId + ' size: ' + curBid.width + 'x' + curBid.height);
125
+ bidResponses.push(curBid);
126
+ } else {
127
+ // no bid
128
+ logInfo(LOG_MSG.noBid + bid.adId);
129
+ }
130
+ });
131
+ }
132
+
133
+ return bidResponses;
134
+ }
135
+
136
+ }
137
+
138
+ function bidToTag(bid, index) {
139
+ const tag = {};
140
+ const adIndex = 'a' + (index + 1).toString(); // ad unit id for c1x
141
+ const sizeKey = adIndex + 's';
142
+ const priceKey = adIndex + 'p';
143
+ const dealKey = adIndex + 'd';
144
+ // TODO: Multiple Floor Prices
145
+
146
+ const sizesArr = bid.sizes;
147
+ const floorPriceMap = getBidFloor(bid);
148
+
149
+ const dealId = bid.params.dealId || '';
150
+
151
+ if (dealId) {
152
+ tag[dealKey] = dealId;
153
+ }
154
+
155
+ tag[adIndex] = bid.adUnitCode;
156
+ tag[sizeKey] = sizesArr.reduce((prev, current) => prev + (prev === '' ? '' : ',') + current.join('x'), '');
157
+ const newSizeArr = tag[sizeKey].split(',');
158
+ if (floorPriceMap) {
159
+ newSizeArr.forEach(size => {
160
+ if (size in floorPriceMap) {
161
+ tag[priceKey] = floorPriceMap[size].toString();
162
+ } // we only accept one cpm price in floorPriceMap
163
+ });
164
+ }
165
+ if (bid.params.pageurl) {
166
+ tag['pageurl'] = bid.params.pageurl;
167
+ }
168
+
169
+ return tag;
170
+ }
171
+
172
+ function getBidFloor(bidRequest) {
173
+ let floorInfo = {};
174
+
175
+ if (typeof bidRequest.getFloor === 'function') {
176
+ floorInfo = bidRequest.getFloor({
177
+ currency: 'USD',
178
+ mediaType: 'banner',
179
+ size: '*',
180
+ });
181
+ }
182
+
183
+ let floor =
184
+ floorInfo.floor ||
185
+ bidRequest.params.bidfloor ||
186
+ bidRequest.params.floorPriceMap ||
187
+ 0;
188
+
189
+ return floor;
190
+ }
191
+
192
+ function bidToShortTag(bid) {
193
+ const tag = {};
194
+ tag.adUnitCode = bid.adUnitCode;
195
+ tag.bidId = bid.bidId;
196
+ return tag;
197
+ }
198
+
199
+ function stringifyPayload(payload) {
200
+ let payloadString = [];
201
+ for (var key in payload) {
202
+ if (payload.hasOwnProperty(key)) {
203
+ payloadString.push(key + '=' + payload[key]);
204
+ }
205
+ }
206
+ return payloadString.join('&');
207
+ }
208
+
209
+ registerBidder(c1xAdapter);
@@ -0,0 +1,70 @@
1
+ # Overview
2
+
3
+ Module Name: C1X Bidder Adapter
4
+ Module Type: Bidder Adapter
5
+ Maintainer: vishnu@c1exchange.com
6
+
7
+ # Description
8
+
9
+ Module that connects to C1X's demand sources
10
+
11
+ # Test Parameters
12
+ ```
13
+ var adUnits = [{
14
+ code: 'test-div-1',
15
+ mediaTypes: {
16
+ banner: {
17
+ sizes: [[750, 200]],
18
+ }
19
+ },
20
+ bids: [{
21
+ bidder: 'c1x',
22
+ params: {
23
+ placementId: 'div-gpt-ad-1654594619717-0',
24
+ 'floorPriceMap': {
25
+ '300x250': 4.35
26
+ }
27
+ }
28
+ }]
29
+ }, {
30
+ code: 'test-div-2',
31
+ mediaTypes: {
32
+ banner: {
33
+ sizes: [[300, 250], [750, 200]],
34
+ }
35
+ },
36
+ bids: [{
37
+ bidder: 'c1x',
38
+ params: {
39
+ placementId: 'div-gpt-ad-1654940683355-0',
40
+ 'floorPriceMap': {
41
+ '300x250': 4.35
42
+ }
43
+ dealId: '1233' // optional parameter
44
+ }
45
+ }]
46
+ }];
47
+
48
+
49
+ pbjs.bidderSettings = {
50
+ c1x: {
51
+ siteId: 999,
52
+ adserverTargeting: [{
53
+ key: "hb_bidder",
54
+ val: function(bidResponse) {
55
+ return bidResponse.bidderCode;
56
+ }
57
+ }, {
58
+ key: "hb_adid",
59
+ val: function(bidResponse) {
60
+ return bidResponse.adId;
61
+ }
62
+ }, {
63
+ key: "hb_pb",
64
+ val: function(bidResponse) {
65
+ return bidResponse.pbLg;
66
+ }
67
+ }]
68
+ }
69
+ }
70
+ ```
@@ -8,6 +8,8 @@
8
8
 
9
9
  import { submodule } from '../src/hook.js';
10
10
  import { logError, generateUUID, insertElement } from '../src/utils.js';
11
+ import * as events from '../src/events.js';
12
+ import CONSTANTS from '../src/constants.json';
11
13
 
12
14
  // ============================ MODULE STATE ===============================
13
15
 
@@ -147,6 +149,26 @@ function readConfig(config) {
147
149
  }
148
150
  }
149
151
 
152
+ /**
153
+ * The function to be called upon module init
154
+ * Defined as a variable to be able to reset it naturally
155
+ */
156
+ let startBillableEvents = function() {
157
+ // Upon clean.io submodule initialization, every winner bid is considered to be protected
158
+ // and therefore, subjected to billing
159
+ events.on(CONSTANTS.EVENTS.BID_WON, winnerBidResponse => {
160
+ events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
161
+ vendor: 'clean.io',
162
+ billingId: generateUUID(),
163
+ type: 'impression',
164
+ // TODO: if absolutely crucial, winnerBidResponse may be used
165
+ // to track down auctionId and transactionId
166
+ // However, those seem to be of importance for Demand Managers,
167
+ // while these billable events are for publishers
168
+ });
169
+ });
170
+ }
171
+
150
172
  // ============================ MODULE REGISTRATION ===============================
151
173
 
152
174
  /**
@@ -160,6 +182,13 @@ function beforeInit() {
160
182
  try {
161
183
  readConfig(config);
162
184
  onModuleInit();
185
+
186
+ // Subscribing once to ensure no duplicate events
187
+ // in case module initialization code runs multiple times
188
+ // This should have been a part of submodule definition, but well...
189
+ // The assumption here is that in production init() will be called exactly once
190
+ startBillableEvents();
191
+ startBillableEvents = () => {};
163
192
  return true;
164
193
  } catch (err) {
165
194
  if (err instanceof ConfigError) {
@@ -104,7 +104,7 @@ export const spec = {
104
104
  ext: {
105
105
  consent: bidderRequest.gdprConsent.consentString
106
106
  }
107
- }
107
+ };
108
108
  }
109
109
 
110
110
  const imp = {
@@ -105,8 +105,8 @@ export const spec = {
105
105
  request.ccpa = bidderRequest.uspConsent;
106
106
  }
107
107
  if (bidderRequest.gdprConsent) {
108
- request.gdpr_consent = bidderRequest.gdprConsent.consentString || 'ALL'
109
- request.gdpr_require = bidderRequest.gdprConsent.gdprApplies ? 1 : 0
108
+ request.gdpr_consent = bidderRequest.gdprConsent.consentString || 'ALL';
109
+ request.gdpr_require = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
110
110
  }
111
111
  }
112
112
 
@@ -1,6 +1,6 @@
1
1
  import { logMessage } from '../src/utils.js';
2
2
  import {ajax} from '../src/ajax.js';
3
- import adapter from '../src/AnalyticsAdapter.js';
3
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import CONSTANTS from '../src/constants.json';
5
5
  import adapterManager from '../src/adapterManager.js';
6
6
 
@@ -44,7 +44,7 @@ function lookupUspConsent({onSuccess, onError}) {
44
44
  let uspapiFrame;
45
45
  let uspapiFunction;
46
46
 
47
- while (!uspapiFrame) {
47
+ while (true) {
48
48
  try {
49
49
  if (typeof f.__uspapi === 'function') {
50
50
  uspapiFunction = f.__uspapi;
@@ -304,4 +304,4 @@ function enableConsentManagement(configFromUser = false) {
304
304
  loadConsentData(); // immediately look up consent data to make it available without requiring an auction
305
305
  }
306
306
  config.getConfig('consentManagement', config => setConsentConfig(config.consentManagement));
307
- setTimeout(() => !addedConsentHook && enableConsentManagement())
307
+ setTimeout(() => !addedConsentHook && enableConsentManagement());
@@ -1,16 +1,18 @@
1
1
  import { logWarn, createTrackPixelHtml, deepAccess, isArray, deepSetValue } from '../src/utils.js';
2
2
  import {config} from '../src/config.js';
3
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
4
+ import { BANNER, VIDEO } from '../src/mediaTypes.js';
4
5
 
5
6
  const BIDDER_CODE = 'consumable';
6
7
 
7
- const BASE_URI = 'https://e.serverbid.com/api/v2'
8
+ const BASE_URI = 'https://e.serverbid.com/api/v2';
8
9
 
9
10
  let siteId = 0;
10
11
  let bidder = 'consumable';
11
12
 
12
13
  export const spec = {
13
14
  code: BIDDER_CODE,
15
+ supportedMediaTypes: [BANNER, VIDEO],
14
16
 
15
17
  /**
16
18
  * Determines whether or not the given bid request is valid.
@@ -82,6 +84,10 @@ export const spec = {
82
84
  adTypes: bid.adTypes || getSize(sizes)
83
85
  }, bid.params);
84
86
 
87
+ if (bid.mediaTypes.video && bid.mediaTypes.video.playerSize) {
88
+ placement.video = bid.mediaTypes.video;
89
+ }
90
+
85
91
  if (placement.networkId && placement.siteId && placement.unitId && placement.unitName) {
86
92
  data.placements.push(placement);
87
93
  }
@@ -155,6 +161,13 @@ export const spec = {
155
161
 
156
162
  if (decision.mediaType) {
157
163
  bid.meta.mediaType = decision.mediaType;
164
+
165
+ if (decision.mediaType === 'video') {
166
+ bid.mediaType = 'video';
167
+ bid.vastUrl = decision.vastUrl || undefined;
168
+ bid.vastXml = decision.vastXml || undefined;
169
+ bid.videoCacheKey = decision.uuid || undefined;
170
+ }
158
171
  }
159
172
 
160
173
  bidResponses.push(bid);
@@ -240,8 +253,13 @@ function getSize(sizes) {
240
253
  }
241
254
 
242
255
  function retrieveAd(decision, unitId, unitName) {
243
- let ad = decision.contents && decision.contents[0] && decision.contents[0].body + createTrackPixelHtml(decision.impressionUrl);
244
-
256
+ let ad;
257
+ if (decision.contents && decision.contents[0]) {
258
+ ad = decision.contents[0].body + createTrackPixelHtml(decision.impressionUrl);
259
+ }
260
+ if (decision.vastXml) {
261
+ ad = decision.vastXml;
262
+ }
245
263
  return ad;
246
264
  }
247
265
 
@@ -1,4 +1,5 @@
1
- import { deepAccess, getBidIdParameter, logWarn, logError } from '../src/utils.js';
1
+
2
+ import * as utils from '../src/utils.js';
2
3
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
4
  import { VIDEO, BANNER } from '../src/mediaTypes.js';
4
5
  import { config } from '../src/config.js';
@@ -25,11 +26,11 @@ export const spec = {
25
26
 
26
27
  getMediaType: function (bidRequest) {
27
28
  if (bidRequest == null) return BANNER;
28
- return !deepAccess(bidRequest, 'mediaTypes.video') ? BANNER : VIDEO;
29
+ return !utils.deepAccess(bidRequest, 'mediaTypes.video') ? BANNER : VIDEO;
29
30
  },
30
31
 
31
32
  getPlayerSize: function (bidRequest) {
32
- var playerSize = deepAccess(bidRequest, 'mediaTypes.video.playerSize');
33
+ var playerSize = utils.deepAccess(bidRequest, 'mediaTypes.video.playerSize');
33
34
  if (playerSize == null) return [640, 440];
34
35
  if (playerSize[0] != null) playerSize = playerSize[0];
35
36
  if (playerSize == null || playerSize[0] == null || playerSize[1] == null) return [640, 440];
@@ -46,15 +47,14 @@ export const spec = {
46
47
 
47
48
  for (var i = 0; i < validBidRequests.length; i++) {
48
49
  var bidRequest = validBidRequests[i];
49
- // TODO: is 'page' the right value here?
50
- var referer = encodeURIComponent(bidderRequest.refererInfo.page);
51
- var e = getBidIdParameter('endpoint', bidRequest.params);
50
+ var referer = encodeURIComponent(bidderRequest.refererInfo.referer);
51
+ var e = utils.getBidIdParameter('endpoint', bidRequest.params);
52
52
  var ENDPOINT = e == 'dev' ? ENDPOINT_DEV : e == 'staging' ? ENDPOINT_STAGING : ENDPOINT_PRODUCTION;
53
53
  var mediaType = spec.getMediaType(bidRequest);
54
54
  var playerSize = spec.getPlayerSize(bidRequest);
55
55
  var videoArgs = '&fv=0' + (playerSize ? ('&w=' + playerSize[0] + '&h=' + playerSize[1]) : '');
56
56
  var url = ENDPOINT + '?media=' + mediaType + (mediaType == VIDEO ? videoArgs : '') +
57
- '&json=c_b&mv=1&poolid=' + getBidIdParameter('placementId', bidRequest.params) +
57
+ '&json=c_b&mv=1&poolid=' + utils.getBidIdParameter('placementId', bidRequest.params) +
58
58
  '&reachedTop=' + encodeURIComponent(bidderRequest.refererInfo.reachedTop) +
59
59
  '&requestid=' + bidRequest.bidId +
60
60
  '&referer=' + encodeURIComponent(referer);
@@ -73,7 +73,7 @@ export const spec = {
73
73
  fixedEncodeURIComponent(node.name || '') + ',' +
74
74
  fixedEncodeURIComponent(node.domain || '');
75
75
  }
76
- url += '&schain=' + schainString
76
+ url += '&schain=' + schainString;
77
77
  }
78
78
 
79
79
  if (bidderRequest.gdprConsent) {
@@ -93,10 +93,20 @@ export const spec = {
93
93
  url += '&tfcd=' + (config.getConfig('coppa') ? 1 : 0);
94
94
  }
95
95
 
96
+ let body = {};
97
+ let adUnitCode = bidRequest.adUnitCode;
98
+ if (adUnitCode) {
99
+ body.adUnitCode = adUnitCode;
100
+ }
101
+ if (mediaType == VIDEO) {
102
+ body.video = utils.deepAccess(bidRequest, 'mediaTypes.video');
103
+ }
104
+
96
105
  requests.push({
97
- method: 'GET',
106
+ method: 'POST',
98
107
  url: url,
99
108
  bidRequest: bidRequest,
109
+ data: body
100
110
  });
101
111
  }
102
112
 
@@ -117,13 +127,13 @@ export const spec = {
117
127
  var raw = serverResponse.body[i];
118
128
  var rawBid = raw.creatives[0];
119
129
  if (!rawBid) {
120
- logWarn('cpmstarBidAdapter: server response failed check');
130
+ utils.logWarn('cpmstarBidAdapter: server response failed check');
121
131
  return;
122
132
  }
123
133
  var cpm = (parseFloat(rawBid.cpm) || 0);
124
134
 
125
135
  if (!cpm) {
126
- logWarn('cpmstarBidAdapter: server response failed check. Missing cpm')
136
+ utils.logWarn('cpmstarBidAdapter: server response failed check. Missing cpm');
127
137
  return;
128
138
  }
129
139
 
@@ -142,7 +152,7 @@ export const spec = {
142
152
  };
143
153
 
144
154
  if (rawBid.hasOwnProperty('dealId')) {
145
- bidResponse.dealId = rawBid.dealId
155
+ bidResponse.dealId = rawBid.dealId;
146
156
  }
147
157
 
148
158
  if (mediaType == BANNER && rawBid.code) {
@@ -156,7 +166,7 @@ export const spec = {
156
166
  bidResponse.mediaType = VIDEO;
157
167
  bidResponse.vastXml = rawBid.creativemacros.HTML5VID_VASTSTRING;
158
168
  } else {
159
- return logError('bad response', rawBid);
169
+ return utils.logError('bad response', rawBid);
160
170
  }
161
171
 
162
172
  bidResponses.push(bidResponse);