prebid.js 7.25.0 → 7.27.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 (353) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/adWMGAnalyticsAdapter.js +1 -1
  4. package/dist/adagioAnalyticsAdapter.js +1 -1
  5. package/dist/adagioBidAdapter.js +1 -1
  6. package/dist/adbookpspBidAdapter.js +1 -1
  7. package/dist/adgenerationBidAdapter.js +1 -1
  8. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  9. package/dist/adlooxAdServerVideo.js +1 -1
  10. package/dist/adlooxAnalyticsAdapter.js +1 -1
  11. package/dist/adlooxRtdProvider.js +1 -1
  12. package/dist/admaticBidAdapter.js +1 -1
  13. package/dist/admixerBidAdapter.js +1 -1
  14. package/dist/adomikAnalyticsAdapter.js +1 -1
  15. package/dist/adrelevantisBidAdapter.js +1 -1
  16. package/dist/adtrgtmeBidAdapter.js +1 -1
  17. package/dist/adxcgAnalyticsAdapter.js +1 -1
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  20. package/dist/aidemBidAdapter.js +1 -0
  21. package/dist/ajaBidAdapter.js +1 -1
  22. package/dist/amxBidAdapter.js +1 -1
  23. package/dist/amxIdSystem.js +1 -1
  24. package/dist/analyticsAdapter.js +1 -1
  25. package/dist/appierAnalyticsAdapter.js +1 -1
  26. package/dist/appnexusBidAdapter.js +1 -1
  27. package/dist/asoBidAdapter.js +1 -1
  28. package/dist/atsAnalyticsAdapter.js +1 -1
  29. package/dist/axonixBidAdapter.js +1 -1
  30. package/dist/beopBidAdapter.js +1 -1
  31. package/dist/bidViewability.js +1 -1
  32. package/dist/bidglassBidAdapter.js +1 -1
  33. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  34. package/dist/big-richmediaBidAdapter.js +1 -1
  35. package/dist/bridgewellBidAdapter.js +1 -1
  36. package/dist/brightMountainMediaBidAdapter.js +1 -1
  37. package/dist/browsiRtdProvider.js +1 -1
  38. package/dist/bucksenseBidAdapter.js +1 -1
  39. package/dist/byDataAnalyticsAdapter.js +1 -1
  40. package/dist/captifyRtdProvider.js +1 -0
  41. package/dist/carodaBidAdapter.js +1 -1
  42. package/dist/chtnwBidAdapter.js +1 -1
  43. package/dist/concertAnalyticsAdapter.js +1 -1
  44. package/dist/concertBidAdapter.js +1 -1
  45. package/dist/connectadBidAdapter.js +1 -1
  46. package/dist/consentManagement.js +1 -1
  47. package/dist/consentManagementUsp.js +1 -1
  48. package/dist/consumableBidAdapter.js +1 -1
  49. package/dist/conversantAnalyticsAdapter.js +1 -1
  50. package/dist/conversantBidAdapter.js +1 -1
  51. package/dist/craftBidAdapter.js +1 -1
  52. package/dist/criteoBidAdapter.js +1 -1
  53. package/dist/datablocksAnalyticsAdapter.js +1 -1
  54. package/dist/dependencies.json +6 -0
  55. package/dist/dfpAdServerVideo.js +1 -1
  56. package/dist/discoveryBidAdapter.js +1 -1
  57. package/dist/dspxBidAdapter.js +1 -1
  58. package/dist/eplanningAnalyticsAdapter.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/finativeBidAdapter.js +1 -1
  61. package/dist/fintezaAnalyticsAdapter.js +1 -1
  62. package/dist/fluctBidAdapter.js +1 -1
  63. package/dist/ftrackIdSystem.js +1 -1
  64. package/dist/gdprEnforcement.js +1 -1
  65. package/dist/genericAnalyticsAdapter.js +1 -0
  66. package/dist/geoedgeRtdProvider.js +1 -1
  67. package/dist/glimpseBidAdapter.js +1 -1
  68. package/dist/glomexBidAdapter.js +1 -1
  69. package/dist/gmosspBidAdapter.js +1 -1
  70. package/dist/goldbachBidAdapter.js +1 -1
  71. package/dist/googleAnalyticsAdapter.js +1 -1
  72. package/dist/gravitoIdSystem.js +1 -1
  73. package/dist/gridBidAdapter.js +1 -1
  74. package/dist/gridNMBidAdapter.js +1 -1
  75. package/dist/growthCodeAnalyticsAdapter.js +1 -0
  76. package/dist/gumgumBidAdapter.js +1 -1
  77. package/dist/h12mediaBidAdapter.js +1 -1
  78. package/dist/hadronAnalyticsAdapter.js +1 -1
  79. package/dist/id5AnalyticsAdapter.js +1 -1
  80. package/dist/id5IdSystem.js +1 -1
  81. package/dist/impactifyBidAdapter.js +1 -1
  82. package/dist/improvedigitalBidAdapter.js +1 -1
  83. package/dist/inmarBidAdapter.js +1 -1
  84. package/dist/insticatorBidAdapter.js +1 -1
  85. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  86. package/dist/ixBidAdapter.js +1 -1
  87. package/dist/justpremiumBidAdapter.js +1 -1
  88. package/dist/jwplayerRtdProvider.js +1 -1
  89. package/dist/kargoAnalyticsAdapter.js +1 -1
  90. package/dist/kinessoIdSystem.js +1 -1
  91. package/dist/konduitAnalyticsAdapter.js +1 -1
  92. package/dist/kueezBidAdapter.js +1 -1
  93. package/dist/kueezRtbBidAdapter.js +1 -1
  94. package/dist/lassoBidAdapter.js +1 -1
  95. package/dist/lifestreetBidAdapter.js +1 -1
  96. package/dist/limelightDigitalBidAdapter.js +1 -1
  97. package/dist/liveIntentAnalyticsAdapter.js +1 -1
  98. package/dist/liveIntentIdSystem.js +1 -1
  99. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  100. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  101. package/dist/logicadBidAdapter.js +1 -1
  102. package/dist/loglyliftBidAdapter.js +1 -1
  103. package/dist/lotamePanoramaIdSystem.js +1 -1
  104. package/dist/magniteAnalyticsAdapter.js +1 -1
  105. package/dist/malltvAnalyticsAdapter.js +1 -1
  106. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  107. package/dist/marsmediaBidAdapter.js +1 -1
  108. package/dist/mediafuseBidAdapter.js +1 -1
  109. package/dist/medianetAnalyticsAdapter.js +1 -1
  110. package/dist/mediasquareBidAdapter.js +1 -1
  111. package/dist/mgidBidAdapter.js +1 -1
  112. package/dist/minutemediaBidAdapter.js +1 -1
  113. package/dist/nextMillenniumBidAdapter.js +1 -1
  114. package/dist/nexx360BidAdapter.js +1 -1
  115. package/dist/not-for-prod/prebid.js +240 -202
  116. package/dist/oguryBidAdapter.js +1 -1
  117. package/dist/onetagBidAdapter.js +1 -1
  118. package/dist/ooloAnalyticsAdapter.js +1 -1
  119. package/dist/openxAnalyticsAdapter.js +1 -1
  120. package/dist/optimonAnalyticsAdapter.js +1 -1
  121. package/dist/outbrainBidAdapter.js +1 -1
  122. package/dist/parrableIdSystem.js +1 -1
  123. package/dist/pbsExtensions.js +1 -1
  124. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  125. package/dist/pixfutureBidAdapter.js +1 -1
  126. package/dist/prebid-core.js +1 -1
  127. package/dist/prebidServerBidAdapter.js +1 -1
  128. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  129. package/dist/pubCommonId.js +1 -1
  130. package/dist/pubProvidedIdSystem.js +1 -1
  131. package/dist/publinkIdSystem.js +1 -1
  132. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  133. package/dist/pubmaticBidAdapter.js +1 -1
  134. package/dist/pubperfAnalyticsAdapter.js +1 -1
  135. package/dist/pubstackAnalyticsAdapter.js +1 -1
  136. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  137. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  138. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  139. package/dist/pxyzBidAdapter.js +1 -1
  140. package/dist/quantcastBidAdapter.js +1 -1
  141. package/dist/quantcastIdSystem.js +1 -1
  142. package/dist/rasBidAdapter.js +1 -1
  143. package/dist/readpeakBidAdapter.js +1 -1
  144. package/dist/realvuAnalyticsAdapter.js +1 -1
  145. package/dist/redtramBidAdapter.js +1 -0
  146. package/dist/relaidoBidAdapter.js +1 -1
  147. package/dist/relevantAnalyticsAdapter.js +1 -1
  148. package/dist/rhythmoneBidAdapter.js +1 -1
  149. package/dist/riseBidAdapter.js +1 -1
  150. package/dist/rivrAnalyticsAdapter.js +1 -1
  151. package/dist/roxotAnalyticsAdapter.js +1 -1
  152. package/dist/rtbhouseBidAdapter.js +1 -1
  153. package/dist/rtdModule.js +1 -1
  154. package/dist/rubiconAnalyticsAdapter.js +1 -1
  155. package/dist/rubiconBidAdapter.js +1 -1
  156. package/dist/s2sTesting.js +1 -1
  157. package/dist/scaleableAnalyticsAdapter.js +1 -1
  158. package/dist/schain.js +1 -1
  159. package/dist/seedingAllianceBidAdapter.js +1 -1
  160. package/dist/seedtagBidAdapter.js +1 -1
  161. package/dist/sharedIdSystem.js +1 -1
  162. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  163. package/dist/sharethroughBidAdapter.js +1 -1
  164. package/dist/shinezBidAdapter.js +1 -1
  165. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  166. package/dist/smaatoBidAdapter.js +1 -1
  167. package/dist/smartadserverBidAdapter.js +1 -1
  168. package/dist/smartxBidAdapter.js +1 -1
  169. package/dist/smartytechBidAdapter.js +1 -0
  170. package/dist/smilewantedBidAdapter.js +1 -1
  171. package/dist/sonobiAnalyticsAdapter.js +1 -1
  172. package/dist/sonobiBidAdapter.js +1 -1
  173. package/dist/sovrnAnalyticsAdapter.js +1 -1
  174. package/dist/sovrnBidAdapter.js +1 -1
  175. package/dist/sspBCBidAdapter.js +1 -1
  176. package/dist/staqAnalyticsAdapter.js +1 -1
  177. package/dist/sublimeBidAdapter.js +1 -1
  178. package/dist/synacormediaBidAdapter.js +1 -1
  179. package/dist/taboolaBidAdapter.js +1 -1
  180. package/dist/tapadIdSystem.js +1 -1
  181. package/dist/tappxBidAdapter.js +1 -1
  182. package/dist/targetVideoBidAdapter.js +1 -1
  183. package/dist/teadsBidAdapter.js +1 -1
  184. package/dist/teadsIdSystem.js +1 -1
  185. package/dist/terceptAnalyticsAdapter.js +1 -1
  186. package/dist/trionBidAdapter.js +1 -1
  187. package/dist/tripleliftBidAdapter.js +1 -1
  188. package/dist/ttdBidAdapter.js +1 -1
  189. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  190. package/dist/underdogmediaBidAdapter.js +1 -1
  191. package/dist/undertoneBidAdapter.js +1 -1
  192. package/dist/userId.js +1 -1
  193. package/dist/vidazooBidAdapter.js +1 -1
  194. package/dist/videobyteBidAdapter.js +1 -1
  195. package/dist/viqeoBidAdapter.js +1 -0
  196. package/dist/visxBidAdapter.js +1 -1
  197. package/dist/vuukleBidAdapter.js +1 -1
  198. package/dist/weboramaRtdProvider.js +1 -1
  199. package/dist/widespaceBidAdapter.js +1 -1
  200. package/dist/winrBidAdapter.js +1 -1
  201. package/dist/yahoosspBidAdapter.js +1 -1
  202. package/dist/yandexBidAdapter.js +1 -1
  203. package/dist/yieldlabBidAdapter.js +1 -1
  204. package/dist/yieldliftBidAdapter.js +1 -1
  205. package/dist/yieldmoBidAdapter.js +1 -1
  206. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  207. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  208. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  209. package/dist/zeta_global_sspBidAdapter.js +1 -1
  210. package/dist/zeusPrimeRtdProvider.js +31 -0
  211. package/integrationExamples/gpt/captifyRtdProvider_example.html +167 -0
  212. package/integrationExamples/gpt/growthcode.html +134 -0
  213. package/libraries/analyticsAdapter/AnalyticsAdapter.js +95 -102
  214. package/modules/.submodules.json +3 -1
  215. package/modules/admaticBidAdapter.js +116 -58
  216. package/modules/admaticBidAdapter.md +2 -2
  217. package/modules/admixerBidAdapter.js +1 -1
  218. package/modules/aidemBidAdapter.js +492 -0
  219. package/modules/aidemBidAdapter.md +187 -0
  220. package/modules/beopBidAdapter.js +17 -2
  221. package/modules/browsiRtdProvider.js +6 -4
  222. package/modules/bucksenseBidAdapter.js +1 -1
  223. package/modules/captifyRtdProvider.js +146 -0
  224. package/modules/captifyRtdProvider.md +68 -0
  225. package/modules/criteoBidAdapter.js +3 -3
  226. package/modules/discoveryBidAdapter.js +38 -17
  227. package/modules/discoveryBidAdapter.md +7 -6
  228. package/modules/eplanningBidAdapter.js +2 -6
  229. package/modules/fluctBidAdapter.js +5 -0
  230. package/modules/gdprEnforcement.js +26 -24
  231. package/modules/genericAnalyticsAdapter.js +157 -0
  232. package/modules/geoedgeRtdProvider.js +22 -0
  233. package/modules/glomexBidAdapter.js +2 -0
  234. package/modules/gravitoIdSystem.js +3 -4
  235. package/modules/gridBidAdapter.js +441 -23
  236. package/modules/gridNMBidAdapter.js +1 -1
  237. package/modules/growthCodeAnalyticsAdapter.js +176 -0
  238. package/modules/growthCodeAnalyticsAdapter.md +41 -0
  239. package/modules/impactifyBidAdapter.js +19 -1
  240. package/modules/jwplayerRtdProvider.js +1 -2
  241. package/modules/limelightDigitalBidAdapter.js +1 -1
  242. package/modules/minutemediaBidAdapter.md +3 -3
  243. package/modules/nextMillenniumBidAdapter.js +19 -23
  244. package/modules/nexx360BidAdapter.js +264 -138
  245. package/modules/pubCommonId.js +2 -1
  246. package/modules/pubProvidedIdSystem.js +2 -0
  247. package/modules/rasBidAdapter.js +8 -3
  248. package/modules/rasBidAdapter.md +16 -15
  249. package/modules/redtramBidAdapter.js +155 -0
  250. package/modules/redtramBidAdapter.md +33 -0
  251. package/modules/riseBidAdapter.js +15 -0
  252. package/modules/riseBidAdapter.md +3 -3
  253. package/modules/rtbhouseBidAdapter.js +90 -29
  254. package/modules/rubiconBidAdapter.js +2 -1
  255. package/modules/seedtagBidAdapter.js +67 -56
  256. package/modules/seedtagBidAdapter.md +60 -0
  257. package/modules/sharedIdSystem.js +3 -1
  258. package/modules/smartadserverBidAdapter.js +6 -2
  259. package/modules/smartxBidAdapter.js +11 -8
  260. package/modules/smartytechBidAdapter.js +78 -0
  261. package/modules/smartytechBidAdapter.md +44 -0
  262. package/modules/smnBidAdapter.md +52 -0
  263. package/modules/taboolaBidAdapter.js +3 -3
  264. package/modules/taboolaBidAdapter.md +0 -2
  265. package/modules/tappxBidAdapter.js +21 -6
  266. package/modules/tripleliftBidAdapter.js +1 -1
  267. package/modules/ttdBidAdapter.js +8 -3
  268. package/modules/userId/index.js +1 -1
  269. package/modules/vidazooBidAdapter.js +26 -3
  270. package/modules/viqeoBidAdapter.js +180 -0
  271. package/modules/viqeoBidAdapter.md +56 -0
  272. package/modules/yandexBidAdapter.js +85 -19
  273. package/modules/yandexBidAdapter.md +7 -7
  274. package/modules/yieldlabBidAdapter.js +29 -12
  275. package/modules/yieldliftBidAdapter.js +3 -3
  276. package/modules/yieldoneBidAdapter.js +60 -8
  277. package/modules/yieldoneBidAdapter.md +109 -9
  278. package/modules/zeta_global_sspBidAdapter.js +4 -0
  279. package/modules/zeusPrimeRtdProvider.js +357 -0
  280. package/modules/zeusPrimeRtdProvider.md +60 -0
  281. package/package.json +1 -1
  282. package/src/adloader.js +0 -1
  283. package/src/auction.js +19 -3
  284. package/src/consentHandler.js +8 -0
  285. package/src/events.js +4 -0
  286. package/src/native.js +31 -20
  287. package/src/refererDetection.js +6 -1
  288. package/src/storageManager.js +6 -3
  289. package/test/helpers/analytics.js +34 -0
  290. package/test/mocks/analyticsStub.js +3 -1
  291. package/test/spec/AnalyticsAdapter_spec.js +119 -116
  292. package/test/spec/auctionmanager_spec.js +86 -0
  293. package/test/spec/modules/adWMGAnalyticsAdapter_spec.js +10 -8
  294. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +18 -25
  295. package/test/spec/modules/admaticBidAdapter_spec.js +262 -3
  296. package/test/spec/modules/aidemBidAdapter_spec.js +664 -0
  297. package/test/spec/modules/beopBidAdapter_spec.js +52 -0
  298. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +0 -2
  299. package/test/spec/modules/browsiRtdProvider_spec.js +2 -1
  300. package/test/spec/modules/captifyRtdProvider_spec.js +253 -0
  301. package/test/spec/modules/concertAnalyticsAdapter_spec.js +2 -4
  302. package/test/spec/modules/discoveryBidAdapter_spec.js +9 -8
  303. package/test/spec/modules/enrichmentFpdModule_spec.js +3 -2
  304. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +0 -3
  305. package/test/spec/modules/eplanningBidAdapter_spec.js +4 -4
  306. package/test/spec/modules/fluctBidAdapter_spec.js +37 -1
  307. package/test/spec/modules/fpdModule_spec.js +1 -1
  308. package/test/spec/modules/gdprEnforcement_spec.js +115 -68
  309. package/test/spec/modules/genericAnalyticsAdapter_spec.js +284 -0
  310. package/test/spec/modules/geoedgeRtdProvider_spec.js +15 -0
  311. package/test/spec/modules/glomexBidAdapter_spec.js +4 -0
  312. package/test/spec/modules/gravitoIdSystem_spec.js +1 -1
  313. package/test/spec/modules/gridBidAdapter_spec.js +289 -1
  314. package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +70 -0
  315. package/test/spec/modules/impactifyBidAdapter_spec.js +13 -0
  316. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +17 -27
  317. package/test/spec/modules/jwplayerRtdProvider_spec.js +3 -3
  318. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +0 -2
  319. package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -6
  320. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +7 -1
  321. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +4 -3
  322. package/test/spec/modules/nexx360BidAdapter_spec.js +441 -221
  323. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +3 -11
  324. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +4 -11
  325. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +3 -12
  326. package/test/spec/modules/pubperfAnalyticsAdapter_spec.js +6 -19
  327. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +3 -17
  328. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +13 -19
  329. package/test/spec/modules/rasBidAdapter_spec.js +5 -1
  330. package/test/spec/modules/redtramBidAdapter_spec.js +256 -0
  331. package/test/spec/modules/riseBidAdapter_spec.js +24 -0
  332. package/test/spec/modules/rtbhouseBidAdapter_spec.js +79 -0
  333. package/test/spec/modules/seedtagBidAdapter_spec.js +65 -92
  334. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +4 -8
  335. package/test/spec/modules/smartadserverBidAdapter_spec.js +80 -0
  336. package/test/spec/modules/smartxBidAdapter_spec.js +32 -0
  337. package/test/spec/modules/smartytechBidAdapter_spec.js +162 -0
  338. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +6 -18
  339. package/test/spec/modules/taboolaBidAdapter_spec.js +0 -77
  340. package/test/spec/modules/tripleliftBidAdapter_spec.js +3 -10
  341. package/test/spec/modules/ttdBidAdapter_spec.js +27 -0
  342. package/test/spec/modules/vidazooBidAdapter_spec.js +39 -24
  343. package/test/spec/modules/viqeoBidAdapter_spec.js +124 -0
  344. package/test/spec/modules/yandexBidAdapter_spec.js +22 -13
  345. package/test/spec/modules/yieldlabBidAdapter_spec.js +174 -20
  346. package/test/spec/modules/yieldliftBidAdapter_spec.js +1 -1
  347. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +5 -2
  348. package/test/spec/modules/yieldoneBidAdapter_spec.js +30 -6
  349. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +16 -1
  350. package/test/spec/modules/zeusPrimeRtdProvider_spec.js +410 -0
  351. package/test/spec/native_spec.js +68 -56
  352. package/test/spec/refererDetection_spec.js +45 -7
  353. package/test/spec/unit/core/storageManager_spec.js +2 -1
@@ -59,3 +59,63 @@ const adUnits = [
59
59
  }
60
60
  ]
61
61
  ```
62
+
63
+ ## InBanner
64
+ ```js
65
+ const adUnits = [
66
+ {
67
+ code: '/21804003197/prebid_test_300x250',
68
+ mediaTypes: {
69
+ banner: {
70
+ sizes: [[300, 250]]
71
+ }
72
+ },
73
+ bids: [
74
+ {
75
+ bidder: 'seedtag',
76
+ params: {
77
+ publisherId: '0000-0000-01', // required
78
+ adUnitId: '0000', // required
79
+ placement: 'inBanner', // required
80
+ }
81
+ }
82
+ ]
83
+ }
84
+ ]
85
+ ```
86
+
87
+ ## inStream Video
88
+ ```js
89
+ var adUnits = [{
90
+ code: 'video',
91
+ mediaTypes: {
92
+ video: {
93
+ context: 'instream', // required
94
+ playerSize: [640, 360], // required
95
+ // Video object as specified in OpenRTB 2.5
96
+ mimes: ['video/mp4'], // recommended
97
+ minduration: 5, // optional
98
+ maxduration: 60, // optional
99
+ boxingallowed: 1, // optional
100
+ skip: 1, // optional
101
+ startdelay: 1, // optional
102
+ linearity: 1, // optional
103
+ battr: [1, 2], // optional
104
+ maxbitrate: 10, // optional
105
+ playbackmethod: [1], // optional
106
+ delivery: [1], // optional
107
+ placement: 1, // optional
108
+ }
109
+ },
110
+ bids: [
111
+ {
112
+ bidder: 'seedtag',
113
+ params: {
114
+ publisherId: '0000-0000-01', // required
115
+ adUnitId: '0000', // required
116
+ placement: 'inStream', // required
117
+ }
118
+ }
119
+ ]
120
+ }];
121
+ ```
@@ -9,8 +9,9 @@ import { parseUrl, buildUrl, triggerPixel, logInfo, hasDeviceAccess, generateUUI
9
9
  import {submodule} from '../src/hook.js';
10
10
  import { coppaDataHandler } from '../src/adapterManager.js';
11
11
  import {getStorageManager} from '../src/storageManager.js';
12
+ import {VENDORLESS_GVLID} from '../src/consentHandler.js';
12
13
 
13
- export const storage = getStorageManager({moduleName: 'pubCommonId'});
14
+ export const storage = getStorageManager({moduleName: 'pubCommonId', gvlid: VENDORLESS_GVLID});
14
15
  const COOKIE = 'cookie';
15
16
  const LOCAL_STORAGE = 'html5';
16
17
  const OPTOUT_NAME = '_pubcid_optout';
@@ -73,6 +74,7 @@ export const sharedIdSystemSubmodule = {
73
74
  */
74
75
  name: 'sharedId',
75
76
  aliasName: 'pubCommonId',
77
+ gvlid: VENDORLESS_GVLID,
76
78
 
77
79
  /**
78
80
  * decode the stored id value for passing to bid requests
@@ -133,6 +133,8 @@ export const spec = {
133
133
  // use bidderRequest.bids[] to get bidder-dependent request info
134
134
 
135
135
  const adServerCurrency = config.getConfig('currency.adServerCurrency');
136
+ const sellerDefinedAudience = deepAccess(bidderRequest, 'ortb2.user.data', config.getAnyConfig('ortb2.user.data'));
137
+ const sellerDefinedContext = deepAccess(bidderRequest, 'ortb2.site.content.data', config.getAnyConfig('ortb2.site.content.data'));
136
138
 
137
139
  // pull requested transaction ID from bidderRequest.bids[].transactionId
138
140
  return validBidRequests.reduce((bidRequests, bid) => {
@@ -154,7 +156,9 @@ export const spec = {
154
156
  timeout: config.getConfig('bidderTimeout'),
155
157
  bidId: bid.bidId,
156
158
  prebidVersion: '$prebid.version$',
157
- schain: spec.serializeSupplyChain(bid.schain)
159
+ schain: spec.serializeSupplyChain(bid.schain),
160
+ sda: sellerDefinedAudience,
161
+ sdc: sellerDefinedContext
158
162
  };
159
163
 
160
164
  if (bidderRequest && bidderRequest.gdprConsent) {
@@ -209,7 +213,7 @@ export const spec = {
209
213
  const bidResponses = [];
210
214
  let response = serverResponse.body;
211
215
  try {
212
- if (response && !response.isNoAd) {
216
+ if (response && !response.isNoAd && (response.ad || response.adUrl)) {
213
217
  const bidRequest = JSON.parse(bidRequestString.data);
214
218
 
215
219
  let bidResponse = {
@@ -67,7 +67,6 @@ export const spec = {
67
67
  * @return ServerRequest Info describing the request to the server.
68
68
  */
69
69
  buildRequests: function (bidRequests, bidderRequest) {
70
- // TODO: does the fallback make sense here?
71
70
  const page = bidderRequest.refererInfo.page || bidderRequest.refererInfo.topmostLocation;
72
71
  const isPageSecure = !!page.match(/^https:/)
73
72
 
@@ -197,6 +196,15 @@ export const spec = {
197
196
  userExt.fpc = pubcid;
198
197
  }
199
198
 
199
+ // Add schain object if available
200
+ if (bid && bid.schain) {
201
+ requestPayload['source'] = {
202
+ ext: {
203
+ schain: bid.schain
204
+ }
205
+ };
206
+ }
207
+
200
208
  // Only add the user object if it's not empty
201
209
  if (!isEmpty(userExt)) {
202
210
  requestPayload.user = {
@@ -204,9 +212,7 @@ export const spec = {
204
212
  };
205
213
  }
206
214
 
207
- // requestPayload.user.ext.ver = pbjs.version;
208
-
209
- // Targeting
215
+ // Add targeting
210
216
  if (getBidIdParameter('data', bid.params.user)) {
211
217
  var targetingarr = [];
212
218
  for (var i = 0; i < bid.params.user.data.length; i++) {
@@ -225,8 +231,6 @@ export const spec = {
225
231
  }
226
232
  }
227
233
 
228
- // Todo: USER ID MODULE
229
-
230
234
  requestPayload.user = {
231
235
  ext: userExt,
232
236
  data: targetingarr
@@ -241,7 +245,7 @@ export const spec = {
241
245
  options: {
242
246
  contentType: 'application/json',
243
247
  customHeaders: {
244
- 'x-openrtb-version': '2.3'
248
+ 'x-openrtb-version': '2.5'
245
249
  }
246
250
  }
247
251
  };
@@ -269,7 +273,6 @@ export const spec = {
269
273
  }
270
274
  /**
271
275
  * Make sure currency and price are the right ones
272
- * TODO: what about the pre_market_bid partners sizes?
273
276
  */
274
277
  _each(currentBidRequest.params.pre_market_bids, function (pmb) {
275
278
  if (pmb.deal_id == smartxBid.id) {
@@ -0,0 +1,78 @@
1
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
2
+ import {buildUrl} from '../src/utils.js'
3
+
4
+ const BIDDER_CODE = 'smartytech';
5
+ export const ENDPOINT_PROTOCOL = 'https';
6
+ export const ENDPOINT_DOMAIN = 'server.smartytech.io';
7
+ export const ENDPOINT_PATH = '/hb/bidder';
8
+
9
+ export const spec = {
10
+ code: BIDDER_CODE,
11
+
12
+ isBidRequestValid: function (bidRequest) {
13
+ return !!parseInt(bidRequest.params.endpointId);
14
+ },
15
+
16
+ buildRequests: function (validBidRequests, bidderRequest) {
17
+ const referer = bidderRequest?.refererInfo?.page || window.location.href;
18
+
19
+ const bidRequests = validBidRequests.map((validBidRequest) => {
20
+ return {
21
+ endpointId: validBidRequest.params.endpointId,
22
+ adUnitCode: validBidRequest.adUnitCode,
23
+ sizes: validBidRequest.sizes,
24
+ bidId: validBidRequest.bidId,
25
+ referer: referer
26
+ };
27
+ });
28
+
29
+ let adPartnerRequestUrl = buildUrl({
30
+ protocol: ENDPOINT_PROTOCOL,
31
+ hostname: ENDPOINT_DOMAIN,
32
+ pathname: ENDPOINT_PATH,
33
+ });
34
+
35
+ return {
36
+ method: 'POST',
37
+ url: adPartnerRequestUrl,
38
+ data: bidRequests
39
+ };
40
+ },
41
+
42
+ interpretResponse: function (serverResponse, bidRequest) {
43
+ if (typeof serverResponse.body === 'undefined') {
44
+ return [];
45
+ }
46
+
47
+ const validBids = bidRequest.data;
48
+ const keys = Object.keys(serverResponse.body)
49
+ const responseBody = serverResponse.body;
50
+
51
+ return keys.filter(key => {
52
+ return responseBody[key].ad
53
+ }).map(key => {
54
+ return {
55
+ bid: validBids.find(b => b.adUnitCode === key),
56
+ response: responseBody[key]
57
+ }
58
+ }).map(item => spec.adResponse(item.bid.bidId, item.response));
59
+ },
60
+
61
+ adResponse: function (requestId, response) {
62
+ const bidObject = {
63
+ requestId,
64
+ ad: response.ad,
65
+ cpm: response.cpm,
66
+ width: response.width,
67
+ height: response.height,
68
+ ttl: 60,
69
+ creativeId: response.creativeId,
70
+ netRevenue: true,
71
+ currency: response.currency,
72
+ }
73
+ return bidObject;
74
+ },
75
+
76
+ }
77
+
78
+ registerBidder(spec);
@@ -0,0 +1,44 @@
1
+ # Overview
2
+
3
+ Module Name: SmartyTech Bidder Adapter
4
+
5
+ Module Type: Bidder Adapter
6
+
7
+ Maintainer: info@adpartner.pro
8
+
9
+ # Description
10
+
11
+ You can use this adapter to get a bid from smartytech.io.
12
+
13
+ About us : https://smartytech.io
14
+
15
+ # Test Parameters
16
+
17
+ ```javascript
18
+ var adUnits = [
19
+ {
20
+ code: 'div-smartytech-example',
21
+ sizes: [[300, 250]],
22
+ bids: [
23
+ {
24
+ bidder: "smartytech",
25
+ params: {
26
+ endpointId: 14
27
+ }
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ code: 'div-smartytech-example-2',
33
+ sizes: [[300, 250]],
34
+ bids: [
35
+ {
36
+ bidder: "smartytech",
37
+ params: {
38
+ endpointId: 14
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ ];
44
+ ```
@@ -0,0 +1,52 @@
1
+ # Overview
2
+
3
+ Module Name: SMN Bidder Adapter
4
+ Module Type: Bidder Adapter
5
+ Maintainer: smnoffice.belgrade@gmail.com
6
+
7
+ # Description
8
+
9
+ Connects to SMN demand source to fetch bids.
10
+ Banner and Video formats are supported.
11
+ Please use ```smn``` as the bidder code.
12
+
13
+ # Test Parameters
14
+ ```
15
+ var adUnits = [
16
+ {
17
+ code: 'desktop-banner-ad-div',
18
+ sizes: [[300, 250]], // a display size
19
+ bids: [
20
+ {
21
+ bidder: "smn",
22
+ params: {
23
+ zone: '2eb6bd58-865c-47ce-af7f-a918108c3fd2'
24
+ }
25
+ }
26
+ ]
27
+ },{
28
+ code: 'mobile-banner-ad-div',
29
+ sizes: [[300, 50]], // a mobile size
30
+ bids: [
31
+ {
32
+ bidder: "smn",
33
+ params: {
34
+ zone: '62211486-c50b-4356-9f0f-411778d31fcc'
35
+ }
36
+ }
37
+ ]
38
+ },{
39
+ code: 'video-ad',
40
+ sizes: [[300, 50]],
41
+ mediaType: 'video',
42
+ bids: [
43
+ {
44
+ bidder: "smn",
45
+ params: {
46
+ zone: 'ebeb1e79-8cb4-4473-b2d0-2e24b7ff47fd'
47
+ }
48
+ }
49
+ ]
50
+ },
51
+ ];
52
+ ```
@@ -9,7 +9,7 @@ import {getStorageManager} from '../src/storageManager.js';
9
9
  const BIDDER_CODE = 'taboola';
10
10
  const GVLID = 42;
11
11
  const CURRENCY = 'USD';
12
- export const END_POINT_URL = 'https://hb.bidder.taboola.com/TaboolaHBOpenRTBRequestHandlerServlet';
12
+ export const END_POINT_URL = 'https://display.bidder.taboola.com/OpenRTB/TaboolaHB/auction';
13
13
  const USER_ID = 'user-id';
14
14
  const STORAGE_KEY = `taboola global:${USER_ID}`;
15
15
  const COOKIE_KEY = 'trc_cookie_storage';
@@ -80,7 +80,7 @@ export const spec = {
80
80
  buildRequests: (validBidRequests, bidderRequest) => {
81
81
  const [bidRequest] = validBidRequests;
82
82
  const {refererInfo, gdprConsent = {}, uspConsent} = bidderRequest;
83
- const {publisherId, endpointUrl} = bidRequest.params;
83
+ const {publisherId} = bidRequest.params;
84
84
  const site = getSiteProperties(bidRequest.params, refererInfo);
85
85
  const device = {ua: navigator.userAgent};
86
86
  const imps = getImps(validBidRequests);
@@ -124,7 +124,7 @@ export const spec = {
124
124
  regs
125
125
  };
126
126
 
127
- const url = [endpointUrl || END_POINT_URL, publisherId].join('/');
127
+ const url = [END_POINT_URL, publisherId].join('/');
128
128
 
129
129
  return {
130
130
  url,
@@ -31,7 +31,6 @@ The Taboola Bidding adapter requires setup before beginning. Please contact us o
31
31
  bidfloor: 0.25, // Optional - default is null
32
32
  bcat: ['IAB1-1'], // Optional - default is []
33
33
  badv: ['example.com'], // Optional - default is []
34
- endpointUrl: ['https://example.com'] // Optional
35
34
  }
36
35
  }]
37
36
  }];
@@ -46,6 +45,5 @@ The Taboola Bidding adapter requires setup before beginning. Please contact us o
46
45
  | `bcat` | optional | List of blocked advertiser categories (IAB) | `['IAB1-1']` | `Array` |
47
46
  | `badv` | optional | Blocked Advertiser Domains | `'example.com'` | `String Url` |
48
47
  | `bidfloor` | optional | CPM bid floor | `0.25` | `Float` |
49
- | `endpointUrl` | optional | Endpoint Url (only if provided by Taboola) | `https://example.com` | `String` |
50
48
 
51
49
 
@@ -11,7 +11,7 @@ const BIDDER_CODE = 'tappx';
11
11
  const GVLID_CODE = 628;
12
12
  const TTL = 360;
13
13
  const CUR = 'USD';
14
- const TAPPX_BIDDER_VERSION = '0.1.1005';
14
+ const TAPPX_BIDDER_VERSION = '0.1.2';
15
15
  const TYPE_CNN = 'prebidjs';
16
16
  const LOG_PREFIX = '[TAPPX]: ';
17
17
  const VIDEO_SUPPORT = ['instream', 'outstream'];
@@ -271,12 +271,28 @@ function buildOneRequest(validBidRequests, bidderRequest) {
271
271
  api[0] = deepAccess(validBidRequests, 'params.api') ? deepAccess(validBidRequests, 'params.api') : [3, 5];
272
272
  } else {
273
273
  let bundle = _extractPageUrl(validBidRequests, bidderRequest);
274
- let site = {};
274
+ let site = deepAccess(validBidRequests, 'params.site') || {};
275
275
  site.name = bundle;
276
+ site.page = bidderRequest?.refererInfo?.page || deepAccess(validBidRequests, 'params.site.page') || bidderRequest?.refererInfo?.topmostLocation || window.location.href || bundle;
276
277
  site.domain = bundle;
278
+ site.ref = bidderRequest?.refererInfo?.ref || window.top.document.referrer || '';
279
+ site.ext = {};
280
+ site.ext.is_amp = bidderRequest?.refererInfo?.isAmp || 0;
281
+ site.ext.page_da = deepAccess(validBidRequests, 'params.site.page') || '-';
282
+ site.ext.page_rip = bidderRequest?.refererInfo?.page || '-';
283
+ site.ext.page_rit = bidderRequest?.refererInfo?.topmostLocation || '-';
284
+ site.ext.page_wlh = window.location.href || '-';
277
285
  publisher.name = bundle;
278
286
  publisher.domain = bundle;
287
+ let sitename = document.getElementsByTagName('meta')['title'];
288
+ if (sitename && sitename.content) {
289
+ site.name = sitename.content;
290
+ }
279
291
  tagid = `${site.name}_typeAdBanVid_${getOs()}`;
292
+ let keywords = document.getElementsByTagName('meta')['keywords'];
293
+ if (keywords && keywords.content) {
294
+ site.keywords = keywords.content;
295
+ }
280
296
  payload.site = site;
281
297
  }
282
298
  // < App/Site object
@@ -295,9 +311,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
295
311
  if (
296
312
  ((bannerMediaType.sizes[0].indexOf(480) >= 0) && (bannerMediaType.sizes[0].indexOf(320) >= 0)) ||
297
313
  ((bannerMediaType.sizes[0].indexOf(768) >= 0) && (bannerMediaType.sizes[0].indexOf(1024) >= 0))) {
298
- banner.pos = 7;
314
+ banner.pos = 0;
299
315
  } else {
300
- banner.pos = 4;
316
+ banner.pos = 0;
301
317
  }
302
318
 
303
319
  banner.api = api;
@@ -565,8 +581,7 @@ export function _checkParamDataType(key, value, datatype) {
565
581
  }
566
582
 
567
583
  export function _extractPageUrl(validBidRequests, bidderRequest) {
568
- // TODO: does the fallback make sense?
569
- let url = bidderRequest?.refererInfo?.page || bidderRequest.refererInfo?.topmostLocation;
584
+ let url = bidderRequest?.refererInfo?.page || bidderRequest?.refererInfo?.topmostLocation;
570
585
  return parseDomain(url, {noLeadingWww: true});
571
586
  }
572
587
 
@@ -29,7 +29,7 @@ export const tripleliftAdapterSpec = {
29
29
  tlCall = tryAppendQueryString(tlCall, 'v', '$prebid.version$');
30
30
 
31
31
  if (bidderRequest && bidderRequest.refererInfo) {
32
- let referrer = bidderRequest?.refererInfo?.topmostLocation || bidderRequest?.refererInfo?.page;
32
+ let referrer = bidderRequest.refererInfo.page;
33
33
  tlCall = tryAppendQueryString(tlCall, 'referrer', referrer);
34
34
  }
35
35
 
@@ -38,6 +38,10 @@ function getRegs(bidderRequest) {
38
38
  if (config.getConfig('coppa') === true) {
39
39
  regs.coppa = 1;
40
40
  }
41
+ if (bidderRequest.ortb2?.regs) {
42
+ utils.mergeDeep(regs, bidderRequest.ortb2.regs);
43
+ }
44
+
41
45
  return regs;
42
46
  }
43
47
 
@@ -132,14 +136,15 @@ function getUser(bidderRequest) {
132
136
  }
133
137
 
134
138
  function getSite(bidderRequest, firstPartyData) {
135
- var site = {
139
+ var site = utils.mergeDeep({
136
140
  page: utils.deepAccess(bidderRequest, 'refererInfo.page'),
137
141
  ref: utils.deepAccess(bidderRequest, 'refererInfo.ref'),
138
142
  publisher: {
139
143
  id: utils.deepAccess(bidderRequest, 'bids.0.params.publisherId'),
140
144
  },
141
- ...firstPartyData.site
142
- };
145
+ },
146
+ firstPartyData.site
147
+ );
143
148
 
144
149
  var publisherDomain = bidderRequest.refererInfo.domain;
145
150
  if (publisherDomain) {
@@ -240,7 +240,7 @@ export function setStoredValue(submodule, value) {
240
240
  const valueStr = isPlainObject(value) ? JSON.stringify(value) : value;
241
241
  if (storage.type === COOKIE) {
242
242
  const setCookie = cookieSetter(submodule);
243
- setCookie(null, value, expiresStr);
243
+ setCookie(null, valueStr, expiresStr);
244
244
  if (typeof storage.refreshInSeconds === 'number') {
245
245
  setCookie('_last', new Date().toUTCString(), expiresStr);
246
246
  }
@@ -1,7 +1,8 @@
1
- import {_each, deepAccess, parseSizesInput, parseUrl, uniques} from '../src/utils.js';
1
+ import { _each, deepAccess, parseSizesInput, parseUrl, uniques, isFn } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { BANNER } from '../src/mediaTypes.js';
4
4
  import { getStorageManager } from '../src/storageManager.js';
5
+ import { bidderSettings } from '../src/bidderSettings.js';
5
6
 
6
7
  const GVLID = 744;
7
8
  const DEFAULT_SUB_DOMAIN = 'prebid';
@@ -59,7 +60,8 @@ function isBidRequestValid(bid) {
59
60
 
60
61
  function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
61
62
  const { params, bidId, userId, adUnitCode, schain } = bid;
62
- const { bidFloor, ext } = params;
63
+ const { ext } = params;
64
+ let { bidFloor } = params;
63
65
  const hashUrl = hashCode(topWindowUrl);
64
66
  const dealId = getNextDealId(hashUrl);
65
67
  const uniqueDealId = getUniqueDealId(hashUrl);
@@ -68,6 +70,23 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
68
70
  const pId = extractPID(params);
69
71
  const subDomain = extractSubDomain(params);
70
72
  const ptrace = getCacheOpt();
73
+ const isStorageAllowed = bidderSettings.get(BIDDER_CODE, 'storageAllowed');
74
+
75
+ const gpid = deepAccess(bid, 'ortb2Imp.ext.gpid', deepAccess(bid, 'ortb2Imp.ext.data.pbadslot', ''));
76
+ const cat = deepAccess(bidderRequest, 'ortb2.site.cat', []);
77
+ const pagecat = deepAccess(bidderRequest, 'ortb2.site.pagecat', []);
78
+
79
+ if (isFn(bid.getFloor)) {
80
+ const floorInfo = bid.getFloor({
81
+ currency: 'USD',
82
+ mediaType: '*',
83
+ size: '*'
84
+ });
85
+
86
+ if (floorInfo.currency === 'USD') {
87
+ bidFloor = floorInfo.floor;
88
+ }
89
+ }
71
90
 
72
91
  let data = {
73
92
  url: encodeURIComponent(topWindowUrl),
@@ -86,7 +105,11 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
86
105
  prebidVersion: '$prebid.version$',
87
106
  res: `${screen.width}x${screen.height}`,
88
107
  schain: schain,
89
- ptrace: ptrace
108
+ ptrace: ptrace,
109
+ isStorageAllowed: isStorageAllowed,
110
+ gpid: gpid,
111
+ cat: cat,
112
+ pagecat: pagecat
90
113
  };
91
114
 
92
115
  appendUserIdsToRequestPayload(data, userId);