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
@@ -0,0 +1,46 @@
1
+ # Overview
2
+
3
+ - Module name: Snigel Bid Adapter
4
+ - Module type: Bidder Adapter
5
+ - Maintainer: devops@snigel.com
6
+ - Bidder code: snigel
7
+ - Supported media types: Banner
8
+
9
+ # Description
10
+
11
+ Connects to Snigel demand sources for bids.
12
+
13
+ **Note:** This bid adapter requires our ad operation experts to create an optimized setup for the desired placements on your property.
14
+ Please reach out to us [through our contact form](https://snigel.com/get-in-touch). We will reply as soon as possible.
15
+
16
+ # Parameters
17
+
18
+ | Name | Required | Description | Example |
19
+ | :--- | :-------- | :---------- | :------ |
20
+ | placement | Yes | Placement identifier | top_leaderboard |
21
+
22
+ # Test
23
+
24
+ ```js
25
+ var adUnits = [
26
+ {
27
+ code: "example",
28
+ mediaTypes: {
29
+ banner: {
30
+ sizes: [
31
+ [970, 90],
32
+ [728, 90],
33
+ ],
34
+ },
35
+ },
36
+ bids: [
37
+ {
38
+ bidder: "snigel",
39
+ params: {
40
+ placement: "prebid_test_placement",
41
+ },
42
+ },
43
+ ],
44
+ },
45
+ ];
46
+ ```
@@ -1,5 +1,5 @@
1
1
  import { deepClone, logInfo, logError } from '../src/utils.js';
2
- import adapter from '../src/AnalyticsAdapter.js';
2
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import CONSTANTS from '../src/constants.json';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import {ajaxBuilder} from '../src/ajax.js';
@@ -255,7 +255,7 @@ sonobiAdapter.sendData = function (auction, data) {
255
255
  contentType: 'text/plain'
256
256
  }
257
257
  );
258
- }
258
+ };
259
259
 
260
260
  function _logInfo(message, meta) {
261
261
  logInfo(buildLogMessage(message), meta);
@@ -129,7 +129,7 @@ export const spec = {
129
129
  }
130
130
 
131
131
  if (validBidRequests[0].schain) {
132
- payload.schain = JSON.stringify(validBidRequests[0].schain)
132
+ payload.schain = JSON.stringify(validBidRequests[0].schain);
133
133
  }
134
134
  if (deepAccess(validBidRequests[0], 'userId') && Object.keys(validBidRequests[0].userId).length > 0) {
135
135
  const userIds = deepClone(validBidRequests[0].userId);
@@ -217,7 +217,7 @@ export const spec = {
217
217
  ] = bid.sbi_size.split('x');
218
218
  let aDomains = [];
219
219
  if (bid.sbi_adomain) {
220
- aDomains = [bid.sbi_adomain]
220
+ aDomains = [bid.sbi_adomain];
221
221
  }
222
222
  const bids = {
223
223
  requestId: bidId,
@@ -255,7 +255,7 @@ export const spec = {
255
255
  ));
256
256
  let videoSize = deepAccess(bidRequest, 'params.sizes');
257
257
  if (Array.isArray(videoSize) && Array.isArray(videoSize[0])) { // handle case of multiple sizes
258
- videoSize = videoSize[0] // Only take the first size for outstream
258
+ videoSize = videoSize[0]; // Only take the first size for outstream
259
259
  }
260
260
  if (videoSize) {
261
261
  bids.width = videoSize[0];
@@ -1,5 +1,5 @@
1
1
  import {logError, timestamp} from '../src/utils.js';
2
- import adapter from '../src/AnalyticsAdapter.js';
2
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import adaptermanager from '../src/adapterManager.js';
4
4
  import CONSTANTS from '../src/constants.json';
5
5
  import {ajaxBuilder} from '../src/ajax.js';
@@ -268,7 +268,7 @@ export const spec = {
268
268
  ext: bid.userId.id5id.ext || {}
269
269
  }]
270
270
  }
271
- )
271
+ );
272
272
  }
273
273
 
274
274
  // Add common id if available
@@ -297,14 +297,14 @@ export const spec = {
297
297
  }
298
298
  }]
299
299
  }
300
- )
300
+ );
301
301
  }
302
302
 
303
303
  // Only add the user object if it's not empty
304
304
  if (!isEmpty(userExt)) {
305
305
  requestPayload.user = { ext: userExt };
306
306
  }
307
- const urlQueryParams = 'src_sys=prebid'
307
+ const urlQueryParams = 'src_sys=prebid';
308
308
  return {
309
309
  method: 'POST',
310
310
  url: URL + channelId + '?' + urlQueryParams,
@@ -365,7 +365,7 @@ export const spec = {
365
365
  bid.vastXml = spotxBid.adm;
366
366
  } else {
367
367
  bid.cache_key = spotxBid.ext.cache_key;
368
- bid.vastUrl = 'https://search.spotxchange.com/ad/vast.html?key=' + spotxBid.ext.cache_key
368
+ bid.vastUrl = 'https://search.spotxchange.com/ad/vast.html?key=' + spotxBid.ext.cache_key;
369
369
  bid.videoCacheKey = spotxBid.ext.cache_key;
370
370
  }
371
371
 
@@ -453,7 +453,7 @@ function outstreamRender(bid) {
453
453
  loadExternalScript(easiUrl, BIDDER_CODE, undefined, undefined, attributes);
454
454
  }
455
455
  } catch (err) {
456
- logError('[SPOTX][renderer] Error:' + err.message)
456
+ logError('[SPOTX][renderer] Error:' + err.message);
457
457
  }
458
458
  }
459
459
  }
@@ -1,10 +1,9 @@
1
- import {deepAccess, getWindowTop, isArray, logWarn} from '../src/utils.js';
2
- import {ajax} from '../src/ajax.js';
3
- import {config} from '../src/config.js';
4
- import {registerBidder} from '../src/adapters/bidderFactory.js';
5
- import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
6
- import {includes as strIncludes} from '../src/polyfill.js';
7
- import { getStorageManager } from '../src/storageManager.js';
1
+ import { deepAccess, getWindowTop, isArray, logWarn } from '../src/utils.js';
2
+ import { ajax } from '../src/ajax.js';
3
+ import { config } from '../src/config.js';
4
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
5
+ import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
6
+ import { includes as strIncludes } from '../src/polyfill.js';
8
7
  import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
9
8
 
10
9
  const BIDDER_CODE = 'sspBC';
@@ -13,9 +12,8 @@ const SYNC_URL = 'https://ssp.wp.pl/bidder/usersync';
13
12
  const NOTIFY_URL = 'https://ssp.wp.pl/bidder/notify';
14
13
  const TRACKER_URL = 'https://bdr.wpcdn.pl/tag/jstracker.js';
15
14
  const GVLID = 676;
16
- const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
17
15
  const TMAX = 450;
18
- const BIDDER_VERSION = '5.6';
16
+ const BIDDER_VERSION = '5.7';
19
17
  const DEFAULT_CURRENCY = 'PLN';
20
18
  const W = window;
21
19
  const { navigator } = W;
@@ -102,11 +100,6 @@ const getNotificationPayload = bidData => {
102
100
  }
103
101
  }
104
102
 
105
- const cookieSupport = () => {
106
- const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);
107
- return !isSafari && storage.cookiesAreEnabled();
108
- };
109
-
110
103
  const applyClientHints = ortbRequest => {
111
104
  const { location } = document;
112
105
  const { connection = {}, deviceMemory, userAgentData = {} } = navigator;
@@ -345,7 +338,7 @@ const mapImpression = slot => {
345
338
  if (!adUnitsCalled[adUnitCode]) {
346
339
  // this is a new adunit - assign & save pbsize
347
340
  adSizesCalled[slotSize] = adSizesCalled[slotSize] ? adSizesCalled[slotSize] += 1 : 1;
348
- adUnitsCalled[adUnitCode] = `${slotSize}_${adSizesCalled[slotSize]}`
341
+ adUnitsCalled[adUnitCode] = `${slotSize}_${adSizesCalled[slotSize]}`;
349
342
  }
350
343
 
351
344
  ext.data = Object.assign({ pbsize: adUnitsCalled[adUnitCode] }, ext.data);
@@ -569,7 +562,11 @@ const spec = {
569
562
  tmax,
570
563
  user: {},
571
564
  regs: {},
572
- device: { language: getBrowserLanguage() },
565
+ device: {
566
+ language: getBrowserLanguage(),
567
+ w: screen.width,
568
+ h: screen.height,
569
+ },
573
570
  test: testMode,
574
571
  };
575
572
 
@@ -579,7 +576,7 @@ const spec = {
579
576
 
580
577
  return {
581
578
  method: 'POST',
582
- url: `${BIDDER_URL}?cs=${cookieSupport()}&bdver=${BIDDER_VERSION}&pbver=${pbver}&inver=0`,
579
+ url: `${BIDDER_URL}?bdver=${BIDDER_VERSION}&pbver=${pbver}&inver=0`,
583
580
  data: JSON.stringify(payload),
584
581
  bidderRequest,
585
582
  };
@@ -685,7 +682,7 @@ const spec = {
685
682
  site: site.id,
686
683
  slot: site.slot,
687
684
  cpm: bid.cpm.toPrecision(4),
688
- }
685
+ };
689
686
  const jsTracker = '<script type="text/javascript" async="true" src="' + TRACKER_URL + '" ' + Object.keys(jsData).reduce((acc, current) => { return acc + ` data-wpar-${current}="${jsData[current]}"` }, '') + '><\/script>';
690
687
  if (bid.native.javascriptTrackers) {
691
688
  bid.native.javascriptTrackers.push(jsTracker);
@@ -1,5 +1,5 @@
1
1
  import { logInfo, logError, parseUrl, _each } from '../src/utils.js';
2
- import adapter from '../src/AnalyticsAdapter.js';
2
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import CONSTANTS from '../src/constants.json';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import { getRefererInfo } from '../src/refererDetection.js';
@@ -21,7 +21,7 @@ const STAQ_EVENTS = {
21
21
  BID_WON: 'bidWon',
22
22
  AUCTION_END: 'auctionEnd',
23
23
  TIMEOUT: 'adapterTimedOut'
24
- }
24
+ };
25
25
 
26
26
  function buildRequestTemplate(connId) {
27
27
  // TODO: what should these pick from refererInfo?
@@ -101,7 +101,7 @@ export const spec = {
101
101
  });
102
102
 
103
103
  // CCPA
104
- if (bidderRequest && bidderRequest.uspConsent) {
104
+ if (bidderRequest.uspConsent) {
105
105
  deepSetValue(openRtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
106
106
  }
107
107
 
@@ -107,7 +107,7 @@ export const spec = {
107
107
  }
108
108
 
109
109
  if (config.getConfig('coppa')) {
110
- regs.coppa = 1
110
+ regs.coppa = 1;
111
111
  }
112
112
 
113
113
  const ortb2 = bidderRequest.ortb2 || {
@@ -295,9 +295,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
295
295
  if (
296
296
  ((bannerMediaType.sizes[0].indexOf(480) >= 0) && (bannerMediaType.sizes[0].indexOf(320) >= 0)) ||
297
297
  ((bannerMediaType.sizes[0].indexOf(768) >= 0) && (bannerMediaType.sizes[0].indexOf(1024) >= 0))) {
298
- banner.pos = 7
298
+ banner.pos = 7;
299
299
  } else {
300
- banner.pos = 4
300
+ banner.pos = 4;
301
301
  }
302
302
 
303
303
  banner.api = api;
@@ -406,9 +406,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
406
406
  (typeof uuid !== 'undefined' && uuid !== null) &&
407
407
  (typeof uuid.source == 'string' && uuid.source !== null) &&
408
408
  (typeof uuid.uids[0].id == 'string' && uuid.uids[0].id !== null)
409
- )
409
+ );
410
410
 
411
- if (typeof user !== 'undefined') { user.ext.eids = eidsArr }
411
+ user.ext.eids = eidsArr;
412
412
  };
413
413
 
414
414
  let regs = {};
@@ -132,7 +132,7 @@ function createVideoTag(bid) {
132
132
  tag.ad_types = [VIDEO];
133
133
  tag.uuid = bid.bidId;
134
134
  tag.allow_smaller_sizes = false;
135
- tag.use_pmt_rule = false
135
+ tag.use_pmt_rule = false;
136
136
  tag.prebid = true;
137
137
  tag.disable_psa = true;
138
138
  tag.hb_source = 1;
@@ -1,6 +1,6 @@
1
1
  import { parseSizesInput, getWindowLocation, buildUrl } 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 adapterManager from '../src/adapterManager.js';
5
5
  import CONSTANTS from '../src/constants.json';
6
6
 
@@ -206,7 +206,7 @@ export const spec = {
206
206
  let bidWidth = nullify(bid.w);
207
207
  let bidHeight = nullify(bid.h);
208
208
 
209
- let creative = null
209
+ let creative = null;
210
210
  let videoXml = null;
211
211
  let mediaType = null;
212
212
  let native = null;
@@ -389,7 +389,7 @@ let extractValidSize = (bidRequest, bidderRequest) => {
389
389
  requestedSizes = mediaTypes.video.sizes;
390
390
  }
391
391
  } else if (!isEmpty(bidRequest.sizes)) {
392
- requestedSizes = bidRequest.sizes
392
+ requestedSizes = bidRequest.sizes;
393
393
  }
394
394
 
395
395
  // Ensure the size array is normalized
@@ -87,7 +87,7 @@ export const spec = {
87
87
  syncArr.push({
88
88
  type: 'iframe',
89
89
  url: IFRAMESYNC + policyParam
90
- })
90
+ });
91
91
  } else {
92
92
  syncArr.push({
93
93
  type: 'image',
@@ -53,7 +53,7 @@ export const spec = {
53
53
  bid.currency = result.currency;
54
54
  bid.netRevenue = result.netRevenue;
55
55
  if (result.adomain) {
56
- bid.meta = {advertiserDomains: result.adomain}
56
+ bid.meta = {advertiserDomains: result.adomain};
57
57
  }
58
58
  bidResponses.push(bid);
59
59
  }
@@ -125,7 +125,7 @@ function buildTrionUrlParams(bid, bidderRequest) {
125
125
  intT = getStorageData(BASE_KEY + 'int_t');
126
126
  }
127
127
  if (intT) {
128
- setStorageData(BASE_KEY + 'int_t', intT)
128
+ setStorageData(BASE_KEY + 'int_t', intT);
129
129
  }
130
130
  setStorageData(BASE_KEY + 'lps', pubId + ':' + sectionId);
131
131
  var trionUrl = '';
@@ -8,7 +8,7 @@ const GVLID = 28;
8
8
  const BIDDER_CODE = 'triplelift';
9
9
  const STR_ENDPOINT = 'https://tlx.3lift.com/header/auction?';
10
10
  const BANNER_TIME_TO_LIVE = 300;
11
- const INSTREAM_TIME_TO_LIVE = 3600;
11
+ const VIDEO_TIME_TO_LIVE = 3600;
12
12
  let gdprApplies = true;
13
13
  let consentString = null;
14
14
  export const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
@@ -101,7 +101,7 @@ export const tripleliftAdapterSpec = {
101
101
  url: syncEndpoint
102
102
  }];
103
103
  }
104
- }
104
+ };
105
105
 
106
106
  function _getSyncType(syncOptions) {
107
107
  if (!syncOptions) return;
@@ -120,12 +120,15 @@ function _buildPostBody(bidRequests, bidderRequest) {
120
120
  tagid: bidRequest.params.inventoryCode,
121
121
  floor: _getFloor(bidRequest)
122
122
  };
123
- // remove the else to support multi-imp
124
- if (_isInstreamBidRequest(bidRequest)) {
123
+ // Check for video bidrequest
124
+ if (_isVideoBidRequest(bidRequest)) {
125
125
  imp.video = _getORTBVideo(bidRequest);
126
- } else if (bidRequest.mediaTypes.banner) {
126
+ }
127
+ // append banner if applicable and request is not for instream
128
+ if (bidRequest.mediaTypes.banner && !_isInstream(bidRequest)) {
127
129
  imp.banner = { format: _sizes(bidRequest.sizes) };
128
- };
130
+ }
131
+
129
132
  if (!isEmpty(bidRequest.ortb2Imp)) {
130
133
  imp.fpd = _getAdUnitFpd(bidRequest.ortb2Imp);
131
134
  }
@@ -153,22 +156,41 @@ function _buildPostBody(bidRequests, bidderRequest) {
153
156
  return data;
154
157
  }
155
158
 
156
- function _isInstreamBidRequest(bidRequest) {
157
- if (!bidRequest.mediaTypes.video) return false;
158
- if (!bidRequest.mediaTypes.video.context) return false;
159
- if (bidRequest.mediaTypes.video.context.toLowerCase() === 'instream') {
160
- return true;
161
- } else {
162
- return false;
163
- }
159
+ function _isVideoBidRequest(bidRequest) {
160
+ return _isValidVideoObject(bidRequest) && (_isInstream(bidRequest) || _isOutstream(bidRequest));
161
+ }
162
+
163
+ function _isOutstream(bidRequest) {
164
+ return _isValidVideoObject(bidRequest) && bidRequest.mediaTypes.video.context.toLowerCase() === 'outstream';
165
+ }
166
+
167
+ function _isInstream(bidRequest) {
168
+ return _isValidVideoObject(bidRequest) && bidRequest.mediaTypes.video.context.toLowerCase() === 'instream';
169
+ }
170
+
171
+ function _isValidVideoObject(bidRequest) {
172
+ return bidRequest.mediaTypes.video && bidRequest.mediaTypes.video.context;
164
173
  }
165
174
 
166
175
  function _getORTBVideo(bidRequest) {
167
176
  // give precedent to mediaTypes.video
168
177
  let video = { ...bidRequest.params.video, ...bidRequest.mediaTypes.video };
169
- if (!video.w) video.w = video.playerSize[0][0];
170
- if (!video.h) video.h = video.playerSize[0][1];
178
+ try {
179
+ if (!video.w) video.w = video.playerSize[0][0];
180
+ if (!video.h) video.h = video.playerSize[0][1];
181
+ } catch (err) {
182
+ logWarn('Video size not defined', err);
183
+ }
171
184
  if (video.context === 'instream') video.placement = 1;
185
+ if (video.context === 'outstream') {
186
+ if (!video.placement) {
187
+ video.placement = 3
188
+ } else if ([3, 4, 5].indexOf(video.placement) === -1) {
189
+ logMessage(`video.placement value of ${video.placement} is invalid for outstream context. Setting placement to 3`)
190
+ video.placement = 3
191
+ }
192
+ }
193
+
172
194
  // clean up oRTB object
173
195
  delete video.playerSize;
174
196
  return video;
@@ -180,7 +202,7 @@ function _getFloor (bid) {
180
202
  try {
181
203
  const floorInfo = bid.getFloor({
182
204
  currency: 'USD',
183
- mediaType: _isInstreamBidRequest(bid) ? 'video' : 'banner',
205
+ mediaType: _isVideoBidRequest(bid) ? 'video' : 'banner',
184
206
  size: '*'
185
207
  });
186
208
  if (typeof floorInfo === 'object' &&
@@ -366,10 +388,10 @@ function _buildResponseObject(bidderRequest, bid) {
366
388
  meta: {}
367
389
  };
368
390
 
369
- if (_isInstreamBidRequest(breq)) {
391
+ if (_isVideoBidRequest(breq) && bid.media_type === 'video') {
370
392
  bidResponse.vastXml = bid.ad;
371
393
  bidResponse.mediaType = 'video';
372
- bidResponse.ttl = INSTREAM_TIME_TO_LIVE;
394
+ bidResponse.ttl = VIDEO_TIME_TO_LIVE;
373
395
  };
374
396
 
375
397
  if (bid.advertiser_name) {
@@ -381,7 +403,11 @@ function _buildResponseObject(bidderRequest, bid) {
381
403
  }
382
404
 
383
405
  if (bid.tl_source && bid.tl_source == 'hdx') {
384
- bidResponse.meta.mediaType = 'banner';
406
+ if (_isVideoBidRequest(breq) && bid.media_type === 'video') {
407
+ bidResponse.meta.mediaType = 'video'
408
+ } else {
409
+ bidResponse.meta.mediaType = 'banner'
410
+ }
385
411
  }
386
412
 
387
413
  if (bid.tl_source && bid.tl_source == 'tlx') {
@@ -84,11 +84,11 @@ function getTrustpidFromStorage() {
84
84
  logInfo(`${LOG_PREFIX}: Domain acronym found: ${acronym}`);
85
85
 
86
86
  // Domain is correct in both local storage and idGraph, but no acronym is existing for the domain
87
- if (domain && !acronym) {
87
+ if (!acronym) {
88
88
  return {
89
89
  trustpid: null,
90
90
  acr: null
91
- }
91
+ };
92
92
  }
93
93
 
94
94
  let fcIdConnectObject;
@@ -4,7 +4,7 @@ import { createEidsArray } from './userId/eids.js';
4
4
  import { registerBidder } from '../src/adapters/bidderFactory.js';
5
5
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
6
6
 
7
- const BIDADAPTERVERSION = 'TTD-PREBID-2022.02.18';
7
+ const BIDADAPTERVERSION = 'TTD-PREBID-2022.06.28';
8
8
  const BIDDER_CODE = 'ttd';
9
9
  const BIDDER_CODE_LONG = 'thetradedesk';
10
10
  const BIDDER_ENDPOINT = 'https://direct.adsrvr.org/bid/bidder/';
@@ -58,7 +58,9 @@ function getBidFloor(bid) {
58
58
  }
59
59
 
60
60
  function getSource(validBidRequests) {
61
- let source = {};
61
+ let source = {
62
+ tid: validBidRequests[0].transactionId
63
+ };
62
64
  if (validBidRequests[0].schain) {
63
65
  utils.deepSetValue(source, 'ext.schain', validBidRequests[0].schain);
64
66
  }
@@ -124,7 +126,6 @@ function getUser(bidderRequest) {
124
126
 
125
127
  function getSite(bidderRequest, firstPartyData) {
126
128
  var site = {
127
- id: utils.deepAccess(bidderRequest, 'bids.0.params.siteId'),
128
129
  page: utils.deepAccess(bidderRequest, 'refererInfo.page'),
129
130
  publisher: {
130
131
  id: utils.deepAccess(bidderRequest, 'bids.0.params.publisherId'),
@@ -141,15 +142,20 @@ function getSite(bidderRequest, firstPartyData) {
141
142
 
142
143
  function getImpression(bidRequest) {
143
144
  let impression = {
144
- id: bidRequest.bidId,
145
- tagid: bidRequest.params.placementId
145
+ id: bidRequest.bidId
146
146
  };
147
147
 
148
- let gpid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.gpid');
149
- if (gpid) {
150
- impression.ext = {
151
- gpid: gpid
152
- }
148
+ const gpid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.gpid');
149
+ const tid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.tid');
150
+ if (gpid || tid) {
151
+ impression.ext = {}
152
+ if (gpid) { impression.ext.gpid = gpid }
153
+ if (tid) { impression.ext.tid = tid }
154
+ }
155
+
156
+ const tagid = gpid || bidRequest.params.placementId;
157
+ if (tagid) {
158
+ impression.tagid = tagid
153
159
  }
154
160
 
155
161
  const mediaTypesVideo = utils.deepAccess(bidRequest, 'mediaTypes.video');
@@ -212,6 +218,12 @@ function banner(bid) {
212
218
  format: sizes,
213
219
  },
214
220
  optionalParams);
221
+
222
+ const battr = utils.deepAccess(bid, 'ortb2Imp.battr');
223
+ if (battr) {
224
+ banner.battr = battr;
225
+ }
226
+
215
227
  return banner;
216
228
  }
217
229
 
@@ -233,7 +245,7 @@ function video(bid) {
233
245
  const maxbitrate = utils.deepAccess(bid, 'mediaTypes.video.maxbitrate');
234
246
 
235
247
  if (!minduration || !utils.isInteger(minduration)) {
236
- minduration = 0
248
+ minduration = 0;
237
249
  }
238
250
  let video = {
239
251
  minduration: minduration,
@@ -279,6 +291,11 @@ function video(bid) {
279
291
  video.maxbitrate = maxbitrate;
280
292
  }
281
293
 
294
+ const battr = utils.deepAccess(bid, 'ortb2Imp.battr');
295
+ if (battr) {
296
+ video.battr = battr;
297
+ }
298
+
282
299
  return video;
283
300
  }
284
301
 
@@ -318,20 +335,10 @@ export const spec = {
318
335
  utils.logWarn(BIDDER_CODE + ': params.publisherId must be 32 characters or less');
319
336
  return false;
320
337
  }
321
- if (!bid.params.siteId) {
322
- utils.logWarn(BIDDER_CODE + ': Missing required parameter params.siteId');
323
- return false;
324
- }
325
- if (bid.params.siteId.length > 50) {
326
- utils.logWarn(BIDDER_CODE + ': params.siteId must be 50 characters or less');
327
- return false;
328
- }
329
- if (!bid.params.placementId) {
330
- utils.logWarn(BIDDER_CODE + ': Missing required parameter params.placementId');
331
- return false;
332
- }
333
- if (bid.params.placementId.length > 128) {
334
- utils.logWarn(BIDDER_CODE + ': params.placementId must be 128 characters or less');
338
+
339
+ const gpid = utils.deepAccess(bid, 'ortb2Imp.ext.gpid');
340
+ if (!bid.params.placementId && !gpid) {
341
+ utils.logWarn(BIDDER_CODE + ': one of params.placementId or gpid (via the GPT module https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html) must be passed');
335
342
  return false;
336
343
  }
337
344
 
@@ -357,7 +364,7 @@ export const spec = {
357
364
  return false;
358
365
  }
359
366
  if (!mediaTypesVideo.protocols) {
360
- utils.logWarn(BIDDER_CODE + ': mediaTypes.video.protocols should be an array of supported protocols. See the Open RTB v2.5 spec for valid values')
367
+ utils.logWarn(BIDDER_CODE + ': mediaTypes.video.protocols should be an array of supported protocols. See the Open RTB v2.5 spec for valid values');
361
368
  return false;
362
369
  }
363
370
  }
@@ -387,6 +394,14 @@ export const spec = {
387
394
  ext: getExt(firstPartyData)
388
395
  }
389
396
 
397
+ if (firstPartyData && firstPartyData.bcat) {
398
+ topLevel.bcat = firstPartyData.bcat;
399
+ }
400
+
401
+ if (firstPartyData && firstPartyData.badv) {
402
+ topLevel.badv = firstPartyData.badv;
403
+ }
404
+
390
405
  let url = BIDDER_ENDPOINT + bidderRequest.bids[0].params.supplySourceId;
391
406
 
392
407
  let serverRequest = {
@@ -29,9 +29,7 @@ The Trade Desk bid adapter supports Banner and Video.
29
29
  bidder: 'ttd',
30
30
  params: {
31
31
  supplySourceId: 'supplier',
32
- publisherId: '1427ab10f2e448057ed3b422',
33
- siteId: 'site-123',
34
- placementId: 'footer1'
32
+ publisherId: '1427ab10f2e448057ed3b422'
35
33
  }
36
34
  }
37
35
  ]
@@ -51,8 +49,7 @@ The Trade Desk bid adapter supports Banner and Video.
51
49
  params: {
52
50
  supplySourceId: 'supplier',
53
51
  publisherId: '1427ab10f2e448057ed3b422',
54
- siteId: 'site-123',
55
- placementId: 'footer1',
52
+ placementId: '/1111/home#header',
56
53
  banner: {
57
54
  expdir: [1, 3]
58
55
  },
@@ -77,9 +74,7 @@ The Trade Desk bid adapter supports Banner and Video.
77
74
  bidder: 'ttd',
78
75
  params: {
79
76
  supplySourceId: 'supplier',
80
- publisherId: '1427ab10f2e448057ed3b422',
81
- siteId: 'site-123',
82
- placementId: 'footer1'
77
+ publisherId: '1427ab10f2e448057ed3b422'
83
78
  }
84
79
  }
85
80
  ]
@@ -112,8 +107,7 @@ The Trade Desk bid adapter supports Banner and Video.
112
107
  params: {
113
108
  supplySourceId: 'supplier',
114
109
  publisherId: '1427ab10f2e448057ed3b422',
115
- siteId: 'site-123',
116
- placementId: 'footer1'
110
+ placementId: '/1111/home#header'
117
111
  }
118
112
  }
119
113
  ]