prebid.js 8.43.0 → 8.45.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 (501) hide show
  1. package/README.md +7 -1
  2. package/creative/constants.js +7 -7
  3. package/creative/renderers/display/constants.js +2 -2
  4. package/creative/renderers/native/constants.js +2 -2
  5. package/dist/33acrossAnalyticsAdapter.js +1 -1
  6. package/dist/33acrossBidAdapter.js +1 -1
  7. package/dist/33acrossIdSystem.js +1 -1
  8. package/dist/BTBidAdapter.js +1 -1
  9. package/dist/adWMGAnalyticsAdapter.js +1 -1
  10. package/dist/adagioAnalyticsAdapter.js +1 -1
  11. package/dist/adagioBidAdapter.js +1 -1
  12. package/dist/adbookpspBidAdapter.js +1 -1
  13. package/dist/adgenerationBidAdapter.js +1 -1
  14. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  15. package/dist/adkernelBidAdapter.js +1 -1
  16. package/dist/adlooxAdServerVideo.js +1 -1
  17. package/dist/adlooxAnalyticsAdapter.js +1 -1
  18. package/dist/adlooxRtdProvider.js +1 -1
  19. package/dist/adnuntiusBidAdapter.js +1 -1
  20. package/dist/adomikAnalyticsAdapter.js +1 -1
  21. package/dist/adpod.js +1 -1
  22. package/dist/adqueryBidAdapter.js +1 -1
  23. package/dist/adrelevantisBidAdapter.js +1 -1
  24. package/dist/adstirBidAdapter.js +1 -1
  25. package/dist/adtrgtmeBidAdapter.js +1 -1
  26. package/dist/adxcgAnalyticsAdapter.js +1 -1
  27. package/dist/adxcgBidAdapter.js +1 -1
  28. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  29. package/dist/adyoulikeBidAdapter.js +1 -1
  30. package/dist/agmaAnalyticsAdapter.js +1 -1
  31. package/dist/ajaBidAdapter.js +1 -1
  32. package/dist/amxBidAdapter.js +1 -1
  33. package/dist/amxIdSystem.js +1 -1
  34. package/dist/analyticsAdapter.js +1 -1
  35. package/dist/appierAnalyticsAdapter.js +1 -1
  36. package/dist/appnexusBidAdapter.js +1 -1
  37. package/dist/asoBidAdapter.js +1 -1
  38. package/dist/asteriobidAnalyticsAdapter.js +1 -1
  39. package/dist/atsAnalyticsAdapter.js +1 -1
  40. package/dist/automatadAnalyticsAdapter.js +1 -1
  41. package/dist/axonixBidAdapter.js +1 -1
  42. package/dist/bidViewability.js +1 -1
  43. package/dist/bidViewabilityIO.js +1 -1
  44. package/dist/bidglassBidAdapter.js +1 -1
  45. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  46. package/dist/big-richmediaBidAdapter.js +1 -1
  47. package/dist/brandmetricsRtdProvider.js +1 -1
  48. package/dist/bridBidAdapter.js +1 -1
  49. package/dist/bridgewellBidAdapter.js +1 -1
  50. package/dist/brightMountainMediaBidAdapter.js +1 -1
  51. package/dist/browsiRtdProvider.js +1 -1
  52. package/dist/byDataAnalyticsAdapter.js +1 -1
  53. package/dist/carodaBidAdapter.js +1 -1
  54. package/dist/chtnwBidAdapter.js +1 -1
  55. package/dist/chunk-core.js +1 -1
  56. package/dist/chunk-paapi.js +1 -1
  57. package/dist/cleanioRtdProvider.js +1 -1
  58. package/dist/concertAnalyticsAdapter.js +1 -1
  59. package/dist/concertBidAdapter.js +1 -1
  60. package/dist/confiantRtdProvider.js +1 -1
  61. package/dist/connectadBidAdapter.js +1 -1
  62. package/dist/consentManagementUsp.js +1 -1
  63. package/dist/consumableBidAdapter.js +1 -1
  64. package/dist/conversantAnalyticsAdapter.js +1 -1
  65. package/dist/conversantBidAdapter.js +1 -1
  66. package/dist/craftBidAdapter.js +1 -1
  67. package/dist/creative-renderer-native.js +1 -1
  68. package/dist/criteoBidAdapter.js +1 -1
  69. package/dist/currency.js +1 -1
  70. package/dist/cwireBidAdapter.js +1 -1
  71. package/dist/dailymotionBidAdapter.js +1 -0
  72. package/dist/datablocksAnalyticsAdapter.js +1 -1
  73. package/dist/datawrkzBidAdapter.js +1 -1
  74. package/dist/debugging-standalone.js +1 -1
  75. package/dist/debugging.js +1 -1
  76. package/dist/dependencies.json +3 -3
  77. package/dist/dfpAdServerVideo.js +1 -1
  78. package/dist/discoveryBidAdapter.js +1 -1
  79. package/dist/dsaControl.js +1 -1
  80. package/dist/dspxBidAdapter.js +1 -1
  81. package/dist/dxkultureBidAdapter.js +1 -1
  82. package/dist/eplanningAnalyticsAdapter.js +1 -1
  83. package/dist/eplanningBidAdapter.js +1 -1
  84. package/dist/euidIdSystem.js +1 -1
  85. package/dist/feedadBidAdapter.js +1 -1
  86. package/dist/finativeBidAdapter.js +1 -1
  87. package/dist/fintezaAnalyticsAdapter.js +1 -1
  88. package/dist/freewheel-sspBidAdapter.js +1 -1
  89. package/dist/gdprEnforcement.js +1 -1
  90. package/dist/genericAnalyticsAdapter.js +1 -1
  91. package/dist/geoedgeRtdProvider.js +1 -1
  92. package/dist/gmosspBidAdapter.js +1 -1
  93. package/dist/goldbachBidAdapter.js +1 -1
  94. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  95. package/dist/greenbidsRtdProvider.js +1 -1
  96. package/dist/gridBidAdapter.js +1 -1
  97. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  98. package/dist/gumgumBidAdapter.js +1 -1
  99. package/dist/h12mediaBidAdapter.js +1 -1
  100. package/dist/hadronAnalyticsAdapter.js +1 -1
  101. package/dist/holidBidAdapter.js +1 -1
  102. package/dist/hypelabBidAdapter.js +1 -1
  103. package/dist/id5AnalyticsAdapter.js +1 -1
  104. package/dist/id5IdSystem.js +1 -1
  105. package/dist/illuminBidAdapter.js +1 -1
  106. package/dist/imdsBidAdapter.js +1 -1
  107. package/dist/improvedigitalBidAdapter.js +1 -1
  108. package/dist/insticatorBidAdapter.js +1 -1
  109. package/dist/instreamTracking.js +1 -1
  110. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  111. package/dist/ixBidAdapter.js +1 -1
  112. package/dist/jixieBidAdapter.js +1 -1
  113. package/dist/justpremiumBidAdapter.js +1 -1
  114. package/dist/jwplayerRtdProvider.js +1 -1
  115. package/dist/kargoAnalyticsAdapter.js +1 -1
  116. package/dist/kargoBidAdapter.js +1 -1
  117. package/dist/kimberliteBidAdapter.js +1 -1
  118. package/dist/konduitAnalyticsAdapter.js +1 -1
  119. package/dist/kueezBidAdapter.js +1 -1
  120. package/dist/kueezRtbBidAdapter.js +1 -1
  121. package/dist/lassoBidAdapter.js +1 -1
  122. package/dist/lifestreetBidAdapter.js +1 -1
  123. package/dist/limelightDigitalBidAdapter.js +1 -1
  124. package/dist/liveIntentAnalyticsAdapter.js +1 -1
  125. package/dist/liveIntentIdSystem.js +1 -1
  126. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  127. package/dist/logicadBidAdapter.js +1 -1
  128. package/dist/loglyliftBidAdapter.js +1 -1
  129. package/dist/loyalBidAdapter.js +1 -0
  130. package/dist/luceadBidAdapter.js +1 -1
  131. package/dist/magniteAnalyticsAdapter.js +1 -1
  132. package/dist/malltvAnalyticsAdapter.js +1 -1
  133. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  134. package/dist/marsmediaBidAdapter.js +1 -1
  135. package/dist/mediafilterRtdProvider.js +1 -1
  136. package/dist/mediafuseBidAdapter.js +1 -1
  137. package/dist/medianetAnalyticsAdapter.js +1 -1
  138. package/dist/medianetBidAdapter.js +1 -1
  139. package/dist/mediasquareBidAdapter.js +1 -1
  140. package/dist/mgidBidAdapter.js +1 -1
  141. package/dist/minutemediaBidAdapter.js +1 -1
  142. package/dist/minutemediaplusBidAdapter.js +1 -1
  143. package/dist/missenaBidAdapter.js +1 -1
  144. package/dist/multibid.js +1 -1
  145. package/dist/neuwoRtdProvider.js +1 -1
  146. package/dist/nextMillenniumBidAdapter.js +1 -1
  147. package/dist/nexx360BidAdapter.js +1 -1
  148. package/dist/nobidAnalyticsAdapter.js +1 -1
  149. package/dist/not-for-prod/prebid.js +242 -239
  150. package/dist/oguryBidAdapter.js +1 -1
  151. package/dist/onetagBidAdapter.js +1 -1
  152. package/dist/ooloAnalyticsAdapter.js +1 -1
  153. package/dist/openwebBidAdapter.js +1 -1
  154. package/dist/openxBidAdapter.js +1 -1
  155. package/dist/optidigitalBidAdapter.js +1 -1
  156. package/dist/optimonAnalyticsAdapter.js +1 -1
  157. package/dist/outbrainBidAdapter.js +1 -1
  158. package/dist/oxxionAnalyticsAdapter.js +1 -1
  159. package/dist/oxxionRtdProvider.js +1 -1
  160. package/dist/parrableIdSystem.js +1 -1
  161. package/dist/pbsExtensions.js +1 -1
  162. package/dist/permutiveRtdProvider.js +1 -1
  163. package/dist/pgamsspBidAdapter.js +1 -1
  164. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  165. package/dist/pirIdSystem.js +1 -0
  166. package/dist/pixfutureBidAdapter.js +1 -1
  167. package/dist/prebidServerBidAdapter.js +1 -1
  168. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  169. package/dist/priceFloors.js +1 -1
  170. package/dist/publinkIdSystem.js +1 -1
  171. package/dist/publirBidAdapter.js +1 -1
  172. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  173. package/dist/pubmaticBidAdapter.js +1 -1
  174. package/dist/pubperfAnalyticsAdapter.js +1 -1
  175. package/dist/pubstackAnalyticsAdapter.js +1 -1
  176. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  177. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  178. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  179. package/dist/pxyzBidAdapter.js +1 -1
  180. package/dist/qortexRtdProvider.js +1 -1
  181. package/dist/quantcastBidAdapter.js +1 -1
  182. package/dist/readpeakBidAdapter.js +1 -1
  183. package/dist/relaidoBidAdapter.js +1 -1
  184. package/dist/relevantAnalyticsAdapter.js +1 -1
  185. package/dist/retailspotBidAdapter.js +1 -1
  186. package/dist/rhythmoneBidAdapter.js +1 -1
  187. package/dist/riseBidAdapter.js +1 -1
  188. package/dist/rivrAnalyticsAdapter.js +1 -1
  189. package/dist/roxotAnalyticsAdapter.js +1 -1
  190. package/dist/rtdModule.js +1 -1
  191. package/dist/rubiconBidAdapter.js +1 -1
  192. package/dist/s2sTesting.js +1 -1
  193. package/dist/scaleableAnalyticsAdapter.js +1 -1
  194. package/dist/schain.js +1 -1
  195. package/dist/seedingAllianceBidAdapter.js +1 -1
  196. package/dist/seedtagBidAdapter.js +1 -1
  197. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  198. package/dist/sharethroughBidAdapter.js +1 -1
  199. package/dist/shinezBidAdapter.js +1 -1
  200. package/dist/shinezRtbBidAdapter.js +1 -1
  201. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  202. package/dist/sirdataRtdProvider.js +1 -1
  203. package/dist/sizeMapping.js +1 -1
  204. package/dist/smaatoBidAdapter.js +1 -1
  205. package/dist/smartadserverBidAdapter.js +1 -1
  206. package/dist/smartxBidAdapter.js +1 -1
  207. package/dist/smilewantedBidAdapter.js +1 -1
  208. package/dist/sonobiAnalyticsAdapter.js +1 -1
  209. package/dist/sonobiBidAdapter.js +1 -1
  210. package/dist/sovrnAnalyticsAdapter.js +1 -1
  211. package/dist/sovrnBidAdapter.js +1 -1
  212. package/dist/sspBCBidAdapter.js +1 -1
  213. package/dist/staqAnalyticsAdapter.js +1 -1
  214. package/dist/stnBidAdapter.js +1 -1
  215. package/dist/stvBidAdapter.js +1 -1
  216. package/dist/sublimeBidAdapter.js +1 -1
  217. package/dist/taboolaBidAdapter.js +1 -1
  218. package/dist/tagorasBidAdapter.js +1 -1
  219. package/dist/targetVideoBidAdapter.js +1 -1
  220. package/dist/teadsBidAdapter.js +1 -1
  221. package/dist/terceptAnalyticsAdapter.js +1 -1
  222. package/dist/themoneytizerBidAdapter.js +1 -1
  223. package/dist/topicsFpdModule.js +1 -1
  224. package/dist/trionBidAdapter.js +1 -1
  225. package/dist/tripleliftBidAdapter.js +1 -1
  226. package/dist/ttdBidAdapter.js +1 -1
  227. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  228. package/dist/uid2IdSystem.js +1 -1
  229. package/dist/underdogmediaBidAdapter.js +1 -1
  230. package/dist/undertoneBidAdapter.js +1 -1
  231. package/dist/unrulyBidAdapter.js +1 -1
  232. package/dist/userId.js +1 -1
  233. package/dist/vidazooBidAdapter.js +1 -1
  234. package/dist/videoModule.js +1 -1
  235. package/dist/videobyteBidAdapter.js +1 -1
  236. package/dist/visxBidAdapter.js +1 -1
  237. package/dist/vuukleBidAdapter.js +1 -1
  238. package/dist/weboramaRtdProvider.js +1 -1
  239. package/dist/widespaceBidAdapter.js +1 -1
  240. package/dist/winrBidAdapter.js +1 -1
  241. package/dist/yahoosspBidAdapter.js +1 -1
  242. package/dist/yandexAnalyticsAdapter.js +1 -1
  243. package/dist/yieldmoBidAdapter.js +1 -1
  244. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  245. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  246. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  247. package/dist/zeta_global_sspBidAdapter.js +1 -1
  248. package/gulpfile.js +9 -1
  249. package/integrationExamples/gpt/adnuntius_example.html +7 -1
  250. package/integrationExamples/gpt/azerionedgeRtdProvider_example.html +3 -3
  251. package/integrationExamples/gpt/top-level-paapi/decisionLogic.js +57 -0
  252. package/integrationExamples/gpt/top-level-paapi/tl_paapi_example.html +188 -0
  253. package/integrationExamples/gpt/x-domain/creative.html +1 -1
  254. package/integrationExamples/{gpt → realTimeData}/jwplayerRtdProvider_example.html +28 -42
  255. package/libraries/analyticsAdapter/AnalyticsAdapter.js +4 -4
  256. package/libraries/creative-renderer-native/renderer.js +1 -1
  257. package/modules/33acrossAnalyticsAdapter.js +2 -4
  258. package/modules/33acrossIdSystem.js +1 -1
  259. package/modules/adWMGAnalyticsAdapter.js +9 -11
  260. package/modules/adagioAnalyticsAdapter.js +49 -46
  261. package/modules/adkernelAdnAnalyticsAdapter.js +8 -8
  262. package/modules/adkernelBidAdapter.js +23 -102
  263. package/modules/adlooxAdServerVideo.js +2 -2
  264. package/modules/adlooxAnalyticsAdapter.js +4 -4
  265. package/modules/adnuntiusBidAdapter.js +50 -32
  266. package/modules/adomikAnalyticsAdapter.js +7 -7
  267. package/modules/adpod.js +3 -3
  268. package/modules/adxcgAnalyticsAdapter.js +10 -10
  269. package/modules/adxpremiumAnalyticsAdapter.js +8 -10
  270. package/modules/agmaAnalyticsAdapter.js +6 -7
  271. package/modules/appierAnalyticsAdapter.js +5 -7
  272. package/modules/appnexusBidAdapter.js +1 -0
  273. package/modules/asteriobidAnalyticsAdapter.js +14 -14
  274. package/modules/atsAnalyticsAdapter.js +4 -4
  275. package/modules/automatadAnalyticsAdapter.js +20 -20
  276. package/modules/azerionedgeRtdProvider.md +4 -2
  277. package/modules/bidViewability.js +3 -3
  278. package/modules/bidViewabilityIO.js +3 -3
  279. package/modules/bidwatchAnalyticsAdapter.js +7 -9
  280. package/modules/brandmetricsRtdProvider.js +6 -6
  281. package/modules/browsiRtdProvider.js +3 -3
  282. package/modules/byDataAnalyticsAdapter.js +3 -3
  283. package/modules/cleanioRtdProvider.js +3 -3
  284. package/modules/concertAnalyticsAdapter.js +5 -7
  285. package/modules/confiantRtdProvider.js +2 -2
  286. package/modules/conversantAnalyticsAdapter.js +2 -4
  287. package/modules/criteoBidAdapter.js +53 -10
  288. package/modules/currency.js +7 -7
  289. package/modules/dailymotionBidAdapter.js +139 -0
  290. package/modules/dailymotionBidAdapter.md +140 -0
  291. package/modules/datawrkzBidAdapter.js +4 -4
  292. package/modules/debugging/pbsInterceptor.js +2 -2
  293. package/modules/dfpAdServerVideo.js +2 -2
  294. package/modules/discoveryBidAdapter.js +21 -0
  295. package/modules/dsaControl.js +5 -5
  296. package/modules/eplanningAnalyticsAdapter.js +8 -8
  297. package/modules/fintezaAnalyticsAdapter.js +5 -5
  298. package/modules/gdprEnforcement.js +3 -3
  299. package/modules/geoedgeRtdProvider.js +2 -2
  300. package/modules/greenbidsAnalyticsAdapter.js +13 -10
  301. package/modules/greenbidsRtdProvider.js +2 -2
  302. package/modules/gridBidAdapter.js +2 -2
  303. package/modules/growthCodeAnalyticsAdapter.js +14 -14
  304. package/modules/gumgumBidAdapter.js +4 -1
  305. package/modules/hadronAnalyticsAdapter.js +14 -14
  306. package/modules/holidBidAdapter.js +2 -2
  307. package/modules/id5AnalyticsAdapter.js +7 -9
  308. package/modules/improvedigitalBidAdapter.js +2 -1
  309. package/modules/insticatorBidAdapter.js +137 -27
  310. package/modules/instreamTracking.js +4 -4
  311. package/modules/invisiblyAnalyticsAdapter.js +15 -17
  312. package/modules/ixBidAdapter.js +3 -3
  313. package/modules/jwplayerRtdProvider.js +93 -26
  314. package/modules/jwplayerRtdProvider.md +23 -2
  315. package/modules/kargoAnalyticsAdapter.js +3 -3
  316. package/modules/kargoBidAdapter.js +26 -31
  317. package/modules/konduitAnalyticsAdapter.js +13 -13
  318. package/modules/lassoBidAdapter.js +11 -2
  319. package/modules/limelightDigitalBidAdapter.js +2 -1
  320. package/modules/liveIntentAnalyticsAdapter.js +2 -2
  321. package/modules/livewrappedAnalyticsAdapter.js +10 -10
  322. package/modules/loyalBidAdapter.js +190 -0
  323. package/modules/loyalBidAdapter.md +79 -0
  324. package/modules/magniteAnalyticsAdapter.js +25 -23
  325. package/modules/malltvAnalyticsAdapter.js +4 -6
  326. package/modules/mediafilterRtdProvider.js +2 -2
  327. package/modules/medianetAnalyticsAdapter.js +12 -12
  328. package/modules/medianetBidAdapter.js +1 -1
  329. package/modules/multibid/index.js +2 -2
  330. package/modules/neuwoRtdProvider.js +2 -2
  331. package/modules/nextMillenniumBidAdapter.js +4 -4
  332. package/modules/nobidAnalyticsAdapter.js +9 -11
  333. package/modules/ooloAnalyticsAdapter.js +2 -2
  334. package/modules/oxxionAnalyticsAdapter.js +7 -9
  335. package/modules/paapi.js +20 -6
  336. package/modules/permutiveRtdProvider.js +21 -2
  337. package/modules/pgamsspBidAdapter.js +26 -3
  338. package/modules/pirIdSystem.js +62 -0
  339. package/modules/pirIdSystem.md +27 -0
  340. package/modules/prebidServerBidAdapter/index.js +8 -8
  341. package/modules/prebidServerBidAdapter/ortbConverter.js +3 -3
  342. package/modules/prebidmanagerAnalyticsAdapter.js +14 -14
  343. package/modules/priceFloors.js +10 -5
  344. package/modules/pubmaticAnalyticsAdapter.js +32 -22
  345. package/modules/pubmaticBidAdapter.js +1 -17
  346. package/modules/pubwiseAnalyticsAdapter.js +11 -11
  347. package/modules/pubxaiAnalyticsAdapter.js +6 -6
  348. package/modules/qortexRtdProvider.js +2 -2
  349. package/modules/roxotAnalyticsAdapter.js +8 -10
  350. package/modules/rtdModule/index.js +7 -7
  351. package/modules/scaleableAnalyticsAdapter.js +5 -5
  352. package/modules/seedtagBidAdapter.js +12 -3
  353. package/modules/sigmoidAnalyticsAdapter.js +7 -7
  354. package/modules/sirdataRtdProvider.js +2 -0
  355. package/modules/smaatoBidAdapter.js +1 -2
  356. package/modules/sonobiAnalyticsAdapter.js +10 -12
  357. package/modules/sonobiBidAdapter.js +2 -5
  358. package/modules/sovrnAnalyticsAdapter.js +7 -9
  359. package/modules/sovrnBidAdapter.js +1 -1
  360. package/modules/staqAnalyticsAdapter.js +9 -9
  361. package/modules/teadsBidAdapter.js +2 -0
  362. package/modules/terceptAnalyticsAdapter.js +7 -7
  363. package/modules/topicsFpdModule.js +3 -0
  364. package/modules/topicsFpdModule.md +4 -0
  365. package/modules/ucfunnelAnalyticsAdapter.js +5 -7
  366. package/modules/userId/index.js +3 -3
  367. package/modules/videoModule/index.js +4 -4
  368. package/modules/yandexAnalyticsAdapter.js +2 -2
  369. package/modules/yieldoneAnalyticsAdapter.js +7 -7
  370. package/modules/yuktamediaAnalyticsAdapter.js +9 -9
  371. package/modules/zeta_global_sspAnalyticsAdapter.js +5 -5
  372. package/modules/zeta_global_sspBidAdapter.js +8 -1
  373. package/package.json +1 -1
  374. package/src/adRendering.js +15 -15
  375. package/src/adUnits.js +9 -21
  376. package/src/adapterManager.js +23 -13
  377. package/src/adapters/bidderFactory.js +8 -8
  378. package/src/auction.js +26 -28
  379. package/src/auctionManager.js +4 -4
  380. package/src/bidderSettings.js +2 -2
  381. package/src/config.js +2 -2
  382. package/src/constants.js +190 -0
  383. package/src/events.js +3 -3
  384. package/src/native.js +6 -8
  385. package/src/prebid.js +6 -10
  386. package/src/secureCreatives.js +5 -5
  387. package/src/targeting.js +13 -13
  388. package/src/utils.js +4 -4
  389. package/test/fixtures/fixtures.js +44 -44
  390. package/test/helpers/analytics.js +6 -6
  391. package/test/spec/AnalyticsAdapter_spec.js +3 -3
  392. package/test/spec/auctionmanager_spec.js +82 -82
  393. package/test/spec/modules/33acrossAnalyticsAdapter_spec.js +1 -2
  394. package/test/spec/modules/33acrossIdSystem_spec.js +3 -3
  395. package/test/spec/modules/adWMGAnalyticsAdapter_spec.js +14 -14
  396. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +79 -55
  397. package/test/spec/modules/adkernelAdnAnalytics_spec.js +6 -6
  398. package/test/spec/modules/adkernelBidAdapter_spec.js +63 -24
  399. package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
  400. package/test/spec/modules/adnuntiusBidAdapter_spec.js +10 -7
  401. package/test/spec/modules/adomikAnalyticsAdapter_spec.js +7 -7
  402. package/test/spec/modules/adxcgAnalyticsAdapter_spec.js +7 -7
  403. package/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js +7 -7
  404. package/test/spec/modules/agmaAnalyticsAdapter_spec.js +18 -14
  405. package/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
  406. package/test/spec/modules/asteriobidAnalyticsAdapter_spec.js +2 -2
  407. package/test/spec/modules/atsAnalyticsAdapter_spec.js +8 -8
  408. package/test/spec/modules/automatadAnalyticsAdapter_spec.js +2 -2
  409. package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
  410. package/test/spec/modules/bidViewability_spec.js +4 -4
  411. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +7 -6
  412. package/test/spec/modules/byDataAnalyticsAdapter_spec.js +5 -4
  413. package/test/spec/modules/cleanioRtdProvider_spec.js +6 -6
  414. package/test/spec/modules/concertAnalyticsAdapter_spec.js +7 -6
  415. package/test/spec/modules/confiantRtdProvider_spec.js +2 -2
  416. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +61 -61
  417. package/test/spec/modules/criteoBidAdapter_spec.js +112 -6
  418. package/test/spec/modules/currency_spec.js +6 -6
  419. package/test/spec/modules/dailymotionBidAdapter_spec.js +369 -0
  420. package/test/spec/modules/discoveryBidAdapter_spec.js +35 -1
  421. package/test/spec/modules/dsaControl_spec.js +4 -4
  422. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +20 -13
  423. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +5 -5
  424. package/test/spec/modules/genericAnalyticsAdapter_spec.js +2 -2
  425. package/test/spec/modules/geoedgeRtdProvider_spec.js +37 -37
  426. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +15 -2
  427. package/test/spec/modules/greenbidsRtdProvider_spec.js +2 -2
  428. package/test/spec/modules/gridBidAdapter_spec.js +3 -1
  429. package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +2 -2
  430. package/test/spec/modules/gumgumBidAdapter_spec.js +23 -0
  431. package/test/spec/modules/hadronAnalyticsAdapter_spec.js +3 -3
  432. package/test/spec/modules/id5AnalyticsAdapter_spec.js +5 -5
  433. package/test/spec/modules/id5IdSystem_spec.js +2 -2
  434. package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
  435. package/test/spec/modules/insticatorBidAdapter_spec.js +275 -22
  436. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +40 -40
  437. package/test/spec/modules/jwplayerRtdProvider_spec.js +672 -29
  438. package/test/spec/modules/kargoAnalyticsAdapter_spec.js +3 -3
  439. package/test/spec/modules/kargoBidAdapter_spec.js +36 -0
  440. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +13 -13
  441. package/test/spec/modules/lassoBidAdapter_spec.js +1 -0
  442. package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +1 -1
  443. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +16 -1
  444. package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -3
  445. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +15 -20
  446. package/test/spec/modules/loyalBidAdapter_spec .js +375 -0
  447. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +31 -15
  448. package/test/spec/modules/malltvAnalyticsAdapter_spec.js +3 -3
  449. package/test/spec/modules/mediafilterRtdProvider_spec.js +2 -2
  450. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +3 -3
  451. package/test/spec/modules/nobidAnalyticsAdapter_spec.js +23 -23
  452. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +33 -33
  453. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +0 -1
  454. package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +7 -7
  455. package/test/spec/modules/paapi_spec.js +40 -14
  456. package/test/spec/modules/permutiveRtdProvider_spec.js +29 -1
  457. package/test/spec/modules/pgamsspBidAdapter_spec.js +50 -4
  458. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +9 -9
  459. package/test/spec/modules/pirIdSystem_spec.js +77 -0
  460. package/test/spec/modules/prebidServerBidAdapter_spec.js +7 -7
  461. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -2
  462. package/test/spec/modules/priceFloors_spec.js +6 -5
  463. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +12 -14
  464. package/test/spec/modules/pubmaticBidAdapter_spec.js +1 -1
  465. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +0 -1
  466. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +14 -14
  467. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +7 -7
  468. package/test/spec/modules/qortexRtdProvider_spec.js +2 -2
  469. package/test/spec/modules/realTimeDataModule_spec.js +9 -9
  470. package/test/spec/modules/relevantAnalyticsAdapter_spec.js +3 -3
  471. package/test/spec/modules/relevantdigitalBidAdapter_spec.js +2 -2
  472. package/test/spec/modules/rivrAnalyticsAdapter_spec.js +4 -4
  473. package/test/spec/modules/roxotAnalyticsAdapter_spec.js +25 -25
  474. package/test/spec/modules/scaleableAnalyticsAdapter_spec.js +5 -5
  475. package/test/spec/modules/seedtagBidAdapter_spec.js +56 -3
  476. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +0 -1
  477. package/test/spec/modules/sonobiAnalyticsAdapter_spec.js +8 -7
  478. package/test/spec/modules/sonobiBidAdapter_spec.js +4 -6
  479. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -2
  480. package/test/spec/modules/sovrnBidAdapter_spec.js +5 -5
  481. package/test/spec/modules/staqAnalyticsAdapter_spec.js +7 -7
  482. package/test/spec/modules/teadsBidAdapter_spec.js +35 -0
  483. package/test/spec/modules/terceptAnalyticsAdapter_spec.js +7 -7
  484. package/test/spec/modules/trionBidAdapter_spec.js +1 -1
  485. package/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
  486. package/test/spec/modules/userId_spec.js +4 -4
  487. package/test/spec/modules/videoModule/pbVideo_spec.js +3 -3
  488. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +22 -21
  489. package/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js +33 -32
  490. package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +8 -8
  491. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +1 -1
  492. package/test/spec/native_spec.js +19 -19
  493. package/test/spec/unit/adRendering_spec.js +14 -14
  494. package/test/spec/unit/adUnits_spec.js +1 -1
  495. package/test/spec/unit/core/adapterManager_spec.js +99 -59
  496. package/test/spec/unit/core/bidderFactory_spec.js +6 -6
  497. package/test/spec/unit/core/targeting_spec.js +47 -47
  498. package/test/spec/unit/pbjs_api_spec.js +81 -81
  499. package/test/spec/unit/secureCreatives_spec.js +27 -27
  500. package/test/spec/utils_spec.js +2 -2
  501. package/src/constants.json +0 -196
@@ -1,12 +1,12 @@
1
1
  import adagioAnalyticsAdapter from 'modules/adagioAnalyticsAdapter.js';
2
2
  import { expect } from 'chai';
3
3
  import * as utils from 'src/utils.js';
4
- import { getGlobal } from 'src/prebidGlobal.js';
5
4
  import { server } from 'test/mocks/xhr.js';
5
+ import * as prebidGlobal from 'src/prebidGlobal.js';
6
+ import { EVENTS } from 'src/constants.js';
6
7
 
7
8
  let adapterManager = require('src/adapterManager').default;
8
9
  let events = require('src/events');
9
- let constants = require('src/constants.json');
10
10
 
11
11
  describe('adagio analytics adapter - adagio.js', () => {
12
12
  let sandbox;
@@ -86,9 +86,9 @@ describe('adagio analytics adapter - adagio.js', () => {
86
86
  };
87
87
 
88
88
  const testEvents = {
89
- [constants.EVENTS.BID_REQUESTED]: bidRequest,
90
- [constants.EVENTS.BID_RESPONSE]: bidResponse,
91
- [constants.EVENTS.AUCTION_END]: {}
89
+ [EVENTS.BID_REQUESTED]: bidRequest,
90
+ [EVENTS.BID_RESPONSE]: bidResponse,
91
+ [EVENTS.AUCTION_END]: {}
92
92
  };
93
93
 
94
94
  // Step 1-3: Send events
@@ -162,13 +162,13 @@ describe('adagio analytics adapter - adagio.js', () => {
162
162
  };
163
163
 
164
164
  // Step 1: Send bid requested event
165
- events.emit(constants.EVENTS.BID_REQUESTED, bidRequest);
165
+ events.emit(EVENTS.BID_REQUESTED, bidRequest);
166
166
 
167
167
  // Step 2: Send bid response event
168
- events.emit(constants.EVENTS.BID_RESPONSE, bidResponse);
168
+ events.emit(EVENTS.BID_RESPONSE, bidResponse);
169
169
 
170
170
  // Step 3: Send auction end event
171
- events.emit(constants.EVENTS.AUCTION_END, {});
171
+ events.emit(EVENTS.AUCTION_END, {});
172
172
 
173
173
  utils.getWindowTop.restore();
174
174
 
@@ -647,24 +647,26 @@ describe('adagio analytics adapter', () => {
647
647
  });
648
648
 
649
649
  it('builds and sends auction data', () => {
650
- getGlobal().convertCurrency = (cpm, from, to) => {
651
- const convKeys = {
652
- 'GBP-EUR': 0.7,
653
- 'EUR-GBP': 1.3,
654
- 'USD-EUR': 0.8,
655
- 'EUR-USD': 1.2,
656
- 'USD-GBP': 0.6,
657
- 'GBP-USD': 1.6,
658
- };
659
- return cpm * (convKeys[`${from}-${to}`] || 1);
660
- };
650
+ sandbox.stub(prebidGlobal, 'getGlobal').returns({
651
+ convertCurrency: (cpm, from, to) => {
652
+ const convKeys = {
653
+ 'GBP-EUR': 0.7,
654
+ 'EUR-GBP': 1.3,
655
+ 'USD-EUR': 0.8,
656
+ 'EUR-USD': 1.2,
657
+ 'USD-GBP': 0.6,
658
+ 'GBP-USD': 1.6,
659
+ };
660
+ return cpm * (convKeys[`${from}-${to}`] || 1);
661
+ }
662
+ });
661
663
 
662
- events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
663
- events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
664
- events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
665
- events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END.another);
666
- events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON.another);
667
- events.emit(constants.EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another);
664
+ events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
665
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
666
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
667
+ events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another);
668
+ events.emit(EVENTS.BID_WON, MOCK.BID_WON.another);
669
+ events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another);
668
670
 
669
671
  expect(server.requests.length).to.equal(3, 'requests count');
670
672
  {
@@ -697,6 +699,7 @@ describe('adagio analytics adapter', () => {
697
699
  expect(search.e_sid).to.equal('42');
698
700
  expect(search.e_pba_test).to.equal('true');
699
701
  expect(search.bdrs_bid).to.equal('1,1,0');
702
+ expect(search.bdrs_cpm).to.equal('1.42,2.052,');
700
703
  }
701
704
 
702
705
  {
@@ -710,35 +713,33 @@ describe('adagio analytics adapter', () => {
710
713
  expect(search.win_bdr).to.equal('another');
711
714
  expect(search.win_mt).to.equal('ban');
712
715
  expect(search.win_ban_sz).to.equal('728x90');
713
- expect(search.win_cpm).to.equal('1.71');
714
- expect(search.cur).to.equal('EUR');
715
- expect(search.cur_rate).to.equal('1.2');
716
- expect(search.og_cpm).to.equal('1.62');
717
- expect(search.og_cur).to.equal('GBP');
718
- expect(search.og_cur_rate).to.equal('1.6');
716
+ expect(search.win_net_cpm).to.equal('2.052');
717
+ expect(search.win_og_cpm).to.equal('2.592');
719
718
  }
720
719
  });
721
720
 
722
721
  it('builds and sends auction data with a cached bid win', () => {
723
- getGlobal().convertCurrency = (cpm, from, to) => {
724
- const convKeys = {
725
- 'GBP-EUR': 0.7,
726
- 'EUR-GBP': 1.3,
727
- 'USD-EUR': 0.8,
728
- 'EUR-USD': 1.2,
729
- 'USD-GBP': 0.6,
730
- 'GBP-USD': 1.6,
731
- };
732
- return cpm * (convKeys[`${from}-${to}`] || 1);
733
- };
722
+ sandbox.stub(prebidGlobal, 'getGlobal').returns({
723
+ convertCurrency: (cpm, from, to) => {
724
+ const convKeys = {
725
+ 'GBP-EUR': 0.7,
726
+ 'EUR-GBP': 1.3,
727
+ 'USD-EUR': 0.8,
728
+ 'EUR-USD': 1.2,
729
+ 'USD-GBP': 0.6,
730
+ 'GBP-USD': 1.6,
731
+ };
732
+ return cpm * (convKeys[`${from}-${to}`] || 1);
733
+ }
734
+ });
734
735
 
735
- events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.bidcached);
736
- events.emit(constants.EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
737
- events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
738
- events.emit(constants.EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
739
- events.emit(constants.EVENTS.AUCTION_END, MOCK.AUCTION_END.another_nobid);
740
- events.emit(constants.EVENTS.BID_WON, MOCK.BID_WON.bidcached);
741
- events.emit(constants.EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED.bidcached);
736
+ events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.bidcached);
737
+ events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
738
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
739
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
740
+ events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another_nobid);
741
+ events.emit(EVENTS.BID_WON, MOCK.BID_WON.bidcached);
742
+ events.emit(EVENTS.AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED.bidcached);
742
743
 
743
744
  expect(server.requests.length).to.equal(5, 'requests count');
744
745
  {
@@ -794,6 +795,7 @@ describe('adagio analytics adapter', () => {
794
795
  expect(search.e_sid).to.equal('42');
795
796
  expect(search.e_pba_test).to.equal('true');
796
797
  expect(search.bdrs_bid).to.equal('0,0,0');
798
+ expect(search.bdrs_cpm).to.equal(',,');
797
799
  }
798
800
 
799
801
  {
@@ -808,12 +810,8 @@ describe('adagio analytics adapter', () => {
808
810
  expect(search.win_bdr).to.equal('adagio');
809
811
  expect(search.win_mt).to.equal('ban');
810
812
  expect(search.win_ban_sz).to.equal('728x90');
811
- expect(search.win_cpm).to.equal('1.42');
812
- expect(search.cur).to.equal('USD');
813
- expect(search.cur_rate).to.equal('1');
814
- expect(search.og_cpm).to.equal('1.42');
815
- expect(search.og_cur).to.equal('USD');
816
- expect(search.og_cur_rate).to.equal('1');
813
+ expect(search.win_net_cpm).to.equal('1.42');
814
+ expect(search.win_og_cpm).to.equal('1.42');
817
815
  expect(search.rndr).to.not.exist;
818
816
  }
819
817
 
@@ -829,5 +827,31 @@ describe('adagio analytics adapter', () => {
829
827
  expect(search.rndr).to.equal('0');
830
828
  }
831
829
  });
830
+
831
+ it('send an "empty" cpm when adserver currency != USD and convertCurrency() is undefined', () => {
832
+ sandbox.stub(prebidGlobal, 'getGlobal').returns({});
833
+
834
+ events.emit(EVENTS.AUCTION_INIT, MOCK.AUCTION_INIT.another);
835
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.adagio);
836
+ events.emit(EVENTS.BID_RESPONSE, MOCK.BID_RESPONSE.another);
837
+ events.emit(EVENTS.AUCTION_END, MOCK.AUCTION_END.another);
838
+ events.emit(EVENTS.BID_WON, MOCK.BID_WON.another);
839
+ events.emit(EVENTS.AD_RENDER_SUCCEEDED, MOCK.AD_RENDER_SUCCEEDED.another);
840
+
841
+ expect(server.requests.length).to.equal(3, 'requests count');
842
+
843
+ // fail to compute bidder cpm and send an "empty" cpm
844
+ {
845
+ const { protocol, hostname, pathname, search } = utils.parseUrl(server.requests[1].url);
846
+ expect(protocol).to.equal('https');
847
+ expect(hostname).to.equal('c.4dex.io');
848
+ expect(pathname).to.equal('/pba.gif');
849
+ expect(search.v).to.equal('2');
850
+ expect(search.e_sid).to.equal('42');
851
+ expect(search.e_pba_test).to.equal('true');
852
+ expect(search.bdrs_bid).to.equal('1,1,0');
853
+ expect(search.bdrs_cpm).to.equal('1.42,,');
854
+ }
855
+ });
832
856
  });
833
857
  });
@@ -1,7 +1,7 @@
1
1
  import analyticsAdapter, {ExpiringQueue, getUmtSource, storage} from 'modules/adkernelAdnAnalyticsAdapter';
2
2
  import {expect} from 'chai';
3
3
  import adapterManager from 'src/adapterManager';
4
- import CONSTANTS from 'src/constants.json';
4
+ import { EVENTS } from 'src/constants.js';
5
5
 
6
6
  const events = require('../../../src/events');
7
7
 
@@ -230,21 +230,21 @@ describe('', function () {
230
230
  });
231
231
 
232
232
  it('should handle auction init event', function () {
233
- events.emit(CONSTANTS.EVENTS.AUCTION_INIT, {config: {}, bidderRequests: [REQUEST], timeout: 3000});
233
+ events.emit(EVENTS.AUCTION_INIT, {config: {}, bidderRequests: [REQUEST], timeout: 3000});
234
234
  const ev = analyticsAdapter.context.queue.peekAll();
235
235
  expect(ev).to.have.length(1);
236
236
  expect(ev[0]).to.be.eql({event: 'auctionInit'});
237
237
  });
238
238
 
239
239
  it('should handle bid request event', function () {
240
- events.emit(CONSTANTS.EVENTS.BID_REQUESTED, REQUEST);
240
+ events.emit(EVENTS.BID_REQUESTED, REQUEST);
241
241
  const ev = analyticsAdapter.context.queue.peekAll();
242
242
  expect(ev).to.have.length(2);
243
243
  expect(ev[1]).to.be.eql({event: 'bidRequested', adapter: 'adapter', tagid: 'container-1'});
244
244
  });
245
245
 
246
246
  it('should handle bid response event', function () {
247
- events.emit(CONSTANTS.EVENTS.BID_RESPONSE, RESPONSE);
247
+ events.emit(EVENTS.BID_RESPONSE, RESPONSE);
248
248
  const ev = analyticsAdapter.context.queue.peekAll();
249
249
  expect(ev).to.have.length(3);
250
250
  expect(ev[2]).to.be.eql({
@@ -258,7 +258,7 @@ describe('', function () {
258
258
 
259
259
  it('should handle auction end event', function () {
260
260
  timer.tick(447);
261
- events.emit(CONSTANTS.EVENTS.AUCTION_END, RESPONSE);
261
+ events.emit(EVENTS.AUCTION_END, RESPONSE);
262
262
  let ev = analyticsAdapter.context.queue.peekAll();
263
263
  expect(ev).to.have.length(0);
264
264
  expect(ajaxStub.calledOnce).to.be.equal(true);
@@ -267,7 +267,7 @@ describe('', function () {
267
267
  });
268
268
 
269
269
  it('should handle winning bid', function () {
270
- events.emit(CONSTANTS.EVENTS.BID_WON, RESPONSE);
270
+ events.emit(EVENTS.BID_WON, RESPONSE);
271
271
  timer.tick(4500);
272
272
  expect(ajaxStub.calledTwice).to.be.equal(true);
273
273
  let ev = JSON.parse(ajaxStub.secondCall.args[0]).hb_ev;
@@ -125,7 +125,8 @@ describe('Adkernel adapter', function () {
125
125
  bidId: 'Bid_01',
126
126
  bidderRequestId: 'req-001',
127
127
  auctionId: 'auc-001'
128
- }, bid_native = {
128
+ },
129
+ bid_native = {
129
130
  bidder: 'adkernel',
130
131
  params: {zoneId: 1, host: 'rtb.adkernel.com'},
131
132
  mediaTypes: {
@@ -171,6 +172,33 @@ describe('Adkernel adapter', function () {
171
172
  }
172
173
  }
173
174
  },
175
+ nativeOrtbRequest: {
176
+ ver: '1.2',
177
+ assets: [
178
+ {
179
+ id: 0, required: 1, title: {len: 80}
180
+ }, {
181
+ id: 1, required: 1, data: {type: 2}},
182
+ {
183
+ id: 2, required: 1, data: {type: 10}
184
+ }, {
185
+ id: 3, required: 1, img: {type: 1, wmin: 50, hmin: 50}
186
+ }, {
187
+ id: 4, required: 1, img: {type: 3, w: 300, h: 200}
188
+ }, {
189
+ id: 5, required: 0, data: {type: 3}
190
+ }, {
191
+ id: 6, required: 0, data: {type: 6}
192
+ }, {
193
+ id: 7, required: 0, data: {type: 12}
194
+ }, {
195
+ id: 8, required: 0, data: {type: 1}
196
+ }, {
197
+ id: 9, required: 0, data: {type: 11}
198
+ }
199
+ ],
200
+ privacy: 1
201
+ },
174
202
  adUnitCode: 'ad-unit-1',
175
203
  transactionId: 'f82c64b8-c602-42a4-9791-4a268f6559ed',
176
204
  bidId: 'Bid_01',
@@ -190,7 +218,8 @@ describe('Adkernel adapter', function () {
190
218
  adm: '<!-- admarkup here -->',
191
219
  w: 300,
192
220
  h: 250,
193
- dealid: 'deal'
221
+ dealid: 'deal',
222
+ mtype: 1
194
223
  }]
195
224
  }],
196
225
  ext: {
@@ -206,7 +235,8 @@ describe('Adkernel adapter', function () {
206
235
  price: 0.00145,
207
236
  adid: '158801',
208
237
  nurl: 'https://rtb.com/win?i=sZSYq5zYMxo_0&f=nurl',
209
- cid: '16855'
238
+ cid: '16855',
239
+ mtype: 2
210
240
  }]
211
241
  }],
212
242
  }, usersyncOnlyResponse = {
@@ -241,6 +271,7 @@ describe('Adkernel adapter', function () {
241
271
  cat: ['IAB1-4', 'IAB8-16', 'IAB25-5'],
242
272
  cid: '1',
243
273
  crid: '4',
274
+ mtype: 4,
244
275
  ext: {
245
276
  'advertiser_id': 777,
246
277
  'advertiser_name': 'advertiser',
@@ -262,7 +293,8 @@ describe('Adkernel adapter', function () {
262
293
  adid: '158801',
263
294
  adm: '<!-- admarkup -->',
264
295
  nurl: 'https://rtb.com/win?i=sZSYq5zYMxo_0&f=nurl',
265
- cid: '16855'
296
+ cid: '16855',
297
+ mtype: 1
266
298
  }, {
267
299
  id: 'sZSYq5zYMxo_1',
268
300
  impid: 'Bid_01v__mf',
@@ -270,7 +302,8 @@ describe('Adkernel adapter', function () {
270
302
  price: 0.25,
271
303
  adid: '158801',
272
304
  nurl: 'https://rtb.com/win?i=sZSYq5zYMxo_1&f=nurl',
273
- cid: '16855'
305
+ cid: '16855',
306
+ mtype: 2
274
307
  }]
275
308
  }],
276
309
  bidid: 'pTuOlf5KHUo',
@@ -679,18 +712,18 @@ describe('Adkernel adapter', function () {
679
712
  expect(bidRequests[0].imp[0]).to.have.property('native');
680
713
  expect(bidRequests[0].imp[0].native).to.have.property('request');
681
714
  let request = JSON.parse(bidRequests[0].imp[0].native.request);
682
- expect(request).to.have.property('ver', '1.1');
715
+ expect(request).to.have.property('ver', '1.2');
683
716
  expect(request.assets).to.have.length(10);
684
717
  expect(request.assets[0]).to.be.eql({id: 0, required: 1, title: {len: 80}});
685
- expect(request.assets[1]).to.be.eql({id: 3, required: 1, data: {type: 2}});
686
- expect(request.assets[2]).to.be.eql({id: 4, required: 1, data: {type: 10}});
687
- expect(request.assets[3]).to.be.eql({id: 1, required: 1, img: {wmin: 50, hmin: 50, type: 1}});
688
- expect(request.assets[4]).to.be.eql({id: 2, required: 1, img: {w: 300, h: 200, type: 3}});
689
- expect(request.assets[5]).to.be.eql({id: 11, required: 0, data: {type: 3}});
690
- expect(request.assets[6]).to.be.eql({id: 8, required: 0, data: {type: 6}});
691
- expect(request.assets[7]).to.be.eql({id: 10, required: 0, data: {type: 12}});
692
- expect(request.assets[8]).to.be.eql({id: 5, required: 0, data: {type: 1}});
693
- expect(request.assets[9]).to.be.eql({id: 14, required: 0, data: {type: 11}});
718
+ expect(request.assets[1]).to.be.eql({id: 1, required: 1, data: {type: 2}});
719
+ expect(request.assets[2]).to.be.eql({id: 2, required: 1, data: {type: 10}});
720
+ expect(request.assets[3]).to.be.eql({id: 3, required: 1, img: {wmin: 50, hmin: 50, type: 1}});
721
+ expect(request.assets[4]).to.be.eql({id: 4, required: 1, img: {w: 300, h: 200, type: 3}});
722
+ expect(request.assets[5]).to.be.eql({id: 5, required: 0, data: {type: 3}});
723
+ expect(request.assets[6]).to.be.eql({id: 6, required: 0, data: {type: 6}});
724
+ expect(request.assets[7]).to.be.eql({id: 7, required: 0, data: {type: 12}});
725
+ expect(request.assets[8]).to.be.eql({id: 8, required: 0, data: {type: 1}});
726
+ expect(request.assets[9]).to.be.eql({id: 9, required: 0, data: {type: 11}});
694
727
  });
695
728
 
696
729
  it('native response processing', () => {
@@ -707,15 +740,21 @@ describe('Adkernel adapter', function () {
707
740
  expect(resp.meta.secondaryCatIds).to.be.eql(['IAB1-4', 'IAB8-16', 'IAB25-5']);
708
741
  expect(resp).to.have.property('mediaType', NATIVE);
709
742
  expect(resp).to.have.property('native');
710
- expect(resp.native).to.have.property('clickUrl', 'http://rtb.com/click?i=pTuOlf5KHUo_0');
711
- expect(resp.native.impressionTrackers).to.be.eql(['http://rtb.com/win?i=pTuOlf5KHUo_0&f=imp']);
712
- expect(resp.native).to.have.property('title', 'Title');
713
- expect(resp.native).to.have.property('body', 'Description');
714
- expect(resp.native).to.have.property('body2', 'Additional description');
715
- expect(resp.native.icon).to.be.eql({url: 'http://rtb.com/thumbnail?i=pTuOlf5KHUo_0&imgt=icon', width: 50, height: 50});
716
- expect(resp.native.image).to.be.eql({url: 'http://rtb.com/thumbnail?i=pTuOlf5KHUo_0', width: 300, height: 200});
717
- expect(resp.native).to.have.property('sponsoredBy', 'Sponsor.com');
718
- expect(resp.native).to.have.property('displayUrl', 'displayurl.com');
743
+ expect(resp.native).to.have.property('ortb');
744
+
745
+ expect(resp.native.ortb).to.be.eql({
746
+ assets: [
747
+ {id: 0, title: {text: 'Title'}},
748
+ {id: 3, data: {value: 'Description'}},
749
+ {id: 4, data: {value: 'Additional description'}},
750
+ {id: 1, img: {url: 'http://rtb.com/thumbnail?i=pTuOlf5KHUo_0&imgt=icon', w: 50, h: 50}},
751
+ {id: 2, img: {url: 'http://rtb.com/thumbnail?i=pTuOlf5KHUo_0', w: 300, h: 200}},
752
+ {id: 5, data: {value: 'Sponsor.com'}},
753
+ {id: 14, data: {value: 'displayurl.com'}}
754
+ ],
755
+ link: {url: 'http://rtb.com/click?i=pTuOlf5KHUo_0'},
756
+ imptrackers: ['http://rtb.com/win?i=pTuOlf5KHUo_0&f=imp']
757
+ });
719
758
  });
720
759
  });
721
760
  });
@@ -3,7 +3,7 @@ import analyticsAdapter, { command as analyticsCommand, COMMAND } from 'modules/
3
3
  import { AUCTION_COMPLETED } from 'src/auction.js';
4
4
  import { expect } from 'chai';
5
5
  import * as events from 'src/events.js';
6
- import CONSTANTS from 'src/constants.json';
6
+ import { EVENTS } from 'src/constants.js';
7
7
  import * as utils from 'src/utils.js';
8
8
  import { loadExternalScriptStub } from 'test/mocks/adloaderStub.js';
9
9
 
@@ -143,10 +143,10 @@ describe('Adloox Analytics Adapter', function () {
143
143
  return arg.tagName === 'LINK' && arg.getAttribute('rel') === 'preload' && arg.getAttribute('as') === 'script' && href_uri.href === uri.href;
144
144
  };
145
145
 
146
- events.emit(CONSTANTS.EVENTS.AUCTION_END, auctionDetails);
146
+ events.emit(EVENTS.AUCTION_END, auctionDetails);
147
147
  expect(insertElementStub.calledWith(sinon.match(isLinkPreloadAsScript))).to.true;
148
148
 
149
- events.emit(CONSTANTS.EVENTS.AUCTION_END, auctionDetails);
149
+ events.emit(EVENTS.AUCTION_END, auctionDetails);
150
150
  expect(insertElementStub.callCount).to.equal(1);
151
151
 
152
152
  done();
@@ -167,7 +167,7 @@ describe('Adloox Analytics Adapter', function () {
167
167
  const querySelectorStub = sandbox.stub(document, 'querySelector');
168
168
  querySelectorStub.withArgs(`#${bid.adUnitCode}`).returns(slot);
169
169
 
170
- events.emit(CONSTANTS.EVENTS.BID_WON, bid);
170
+ events.emit(EVENTS.BID_WON, bid);
171
171
 
172
172
  const [urlInserted, moduleCode] = loadExternalScriptStub.getCall(0).args;
173
173
 
@@ -196,7 +196,7 @@ describe('Adloox Analytics Adapter', function () {
196
196
  const querySelectorStub = sandbox.stub(document, 'querySelector');
197
197
  querySelectorStub.withArgs(`#${bid.adUnitCode}`).returns(slot);
198
198
 
199
- events.emit(CONSTANTS.EVENTS.BID_WON, bidIgnore);
199
+ events.emit(EVENTS.BID_WON, bidIgnore);
200
200
 
201
201
  expect(parent.querySelector('script')).is.null;
202
202
 
@@ -238,7 +238,7 @@ describe('Adloox Analytics Adapter', function () {
238
238
 
239
239
  it('should inject tracking event', function (done) {
240
240
  const data = {
241
- eventType: CONSTANTS.EVENTS.BID_WON,
241
+ eventType: EVENTS.BID_WON,
242
242
  args: bid
243
243
  };
244
244
 
@@ -12,7 +12,7 @@ describe('adnuntiusBidAdapter', function() {
12
12
  const EURO_URL = 'https://europe.delivery.adnuntius.com/i?tzo=';
13
13
  const usi = utils.generateUUID()
14
14
 
15
- const meta = [{key: 'valueless'}, {value: 'keyless'}, {key: 'voidAuIds'}, {key: 'voidAuIds', value: [{auId: '11118b6bc', exp: misc.getUnixTimestamp()}, {exp: misc.getUnixTimestamp(1)}]}, {key: 'valid', value: 'also-valid', exp: misc.getUnixTimestamp(1)}, {key: 'expired', value: 'fwefew', exp: misc.getUnixTimestamp()}, {key: 'usi', value: 'should be skipped because timestamp', exp: misc.getUnixTimestamp()}, {key: 'usi', value: usi, exp: misc.getUnixTimestamp(100)}, {key: 'usi', value: 'should be skipped because timestamp', exp: misc.getUnixTimestamp()}]
15
+ const meta = [{key: 'valueless'}, {value: 'keyless'}, {key: 'voidAuIds'}, {key: 'voidAuIds', value: [{auId: '11118b6bc', exp: misc.getUnixTimestamp()}, {exp: misc.getUnixTimestamp(1)}]}, {key: 'valid-withnetwork', value: 'also-valid-network', network: 'the-network', exp: misc.getUnixTimestamp(1)}, {key: 'valid', value: 'also-valid', exp: misc.getUnixTimestamp(1)}, {key: 'expired', value: 'fwefew', exp: misc.getUnixTimestamp()}, {key: 'usi', value: 'should be skipped because timestamp', exp: misc.getUnixTimestamp(), network: 'adnuntius'}, {key: 'usi', value: usi, exp: misc.getUnixTimestamp(100), network: 'adnuntius'}, {key: 'usi', value: 'should be skipped because timestamp', exp: misc.getUnixTimestamp()}]
16
16
  let storage;
17
17
 
18
18
  before(() => {
@@ -37,12 +37,12 @@ describe('adnuntiusBidAdapter', function() {
37
37
  });
38
38
 
39
39
  const tzo = new Date().getTimezoneOffset();
40
- const ENDPOINT_URL_BASE = `${URL}${tzo}&format=json`;
40
+ const ENDPOINT_URL_BASE = `${URL}${tzo}&format=prebid`;
41
41
  const ENDPOINT_URL = `${ENDPOINT_URL_BASE}&userId=${usi}`;
42
42
  const ENDPOINT_URL_VIDEO = `${ENDPOINT_URL_BASE}&userId=${usi}&tt=vast4`;
43
43
  const ENDPOINT_URL_NOCOOKIE = `${ENDPOINT_URL_BASE}&userId=${usi}&noCookies=true`;
44
44
  const ENDPOINT_URL_SEGMENTS = `${ENDPOINT_URL_BASE}&segments=segment1,segment2,segment3&userId=${usi}`;
45
- const ENDPOINT_URL_CONSENT = `${EURO_URL}${tzo}&format=json&consentString=consentString&gdpr=1&userId=${usi}`;
45
+ const ENDPOINT_URL_CONSENT = `${EURO_URL}${tzo}&format=prebid&consentString=consentString&gdpr=1&userId=${usi}`;
46
46
  const adapter = newBidder(spec);
47
47
 
48
48
  const bidderRequests = [
@@ -257,7 +257,8 @@ describe('adnuntiusBidAdapter', function() {
257
257
  'usi': 'from-api-server dude',
258
258
  'voidAuIds': '00000000000abcde;00000000000fffff',
259
259
  'randomApiKey': 'randomApiValue'
260
- }
260
+ },
261
+ 'network': 'some-network-id'
261
262
  }
262
263
  }
263
264
  const serverVideoResponse = {
@@ -464,7 +465,7 @@ describe('adnuntiusBidAdapter', function() {
464
465
  expect(request[0]).to.have.property('url');
465
466
  expect(request[0].url).to.equal(ENDPOINT_URL);
466
467
  expect(request[0]).to.have.property('data');
467
- expect(request[0].data).to.equal('{"adUnits":[{"auId":"000000000008b6bc","targetId":"123","maxDeals":1,"dimensions":[[640,480],[600,400]]},{"auId":"0000000000000551","targetId":"adn-0000000000000551","dimensions":[[1640,1480],[1600,1400]]}],"metaData":{"valid":"also-valid"}}');
468
+ expect(request[0].data).to.equal('{"adUnits":[{"auId":"000000000008b6bc","targetId":"123","maxDeals":1,"dimensions":[[640,480],[600,400]]},{"auId":"0000000000000551","targetId":"adn-0000000000000551","dimensions":[[1640,1480],[1600,1400]]}]}');
468
469
  });
469
470
 
470
471
  it('Test requests with no local storage', function() {
@@ -695,7 +696,7 @@ describe('adnuntiusBidAdapter', function() {
695
696
  network: 'adnuntius'
696
697
  }
697
698
  }
698
- ]
699
+ ];
699
700
  const request = config.runWithBidder('adnuntius', () => spec.buildRequests(req, { bids: req }));
700
701
  expect(request.length).to.equal(1);
701
702
  expect(request[0]).to.have.property('url')
@@ -913,10 +914,11 @@ describe('adnuntiusBidAdapter', function() {
913
914
  expect(interpretedResponse[1].dealCount).to.equal(0);
914
915
 
915
916
  const results = JSON.parse(storage.getDataFromLocalStorage('adn.metaData'));
916
- const usiEntry = results.find(entry => entry.key === 'usi');
917
+ const usiEntry = results.find(entry => entry.key === 'usi' && entry.network === 'some-network-id');
917
918
  expect(usiEntry.key).to.equal('usi');
918
919
  expect(usiEntry.value).to.equal('from-api-server dude');
919
920
  expect(usiEntry.exp).to.be.greaterThan(misc.getUnixTimestamp(90));
921
+ expect(usiEntry.network).to.equal('some-network-id')
920
922
 
921
923
  const voidAuIdsEntry = results.find(entry => entry.key === 'voidAuIds');
922
924
  expect(voidAuIdsEntry.key).to.equal('voidAuIds');
@@ -937,6 +939,7 @@ describe('adnuntiusBidAdapter', function() {
937
939
  const randomApiEntry = results.find(entry => entry.key === 'randomApiKey');
938
940
  expect(randomApiEntry.key).to.equal('randomApiKey');
939
941
  expect(randomApiEntry.value).to.equal('randomApiValue');
942
+ expect(randomApiEntry.network).to.equal('some-network-id');
940
943
  expect(randomApiEntry.exp).to.be.greaterThan(misc.getUnixTimestamp(90));
941
944
  });
942
945
 
@@ -1,9 +1,9 @@
1
1
  import adomikAnalytics from 'modules/adomikAnalyticsAdapter.js';
2
2
  import { expect } from 'chai';
3
+ import {EVENTS} from 'src/constants.js';
3
4
 
4
5
  let events = require('src/events');
5
6
  let adapterManager = require('src/adapterManager').default;
6
- let constants = require('src/constants.json');
7
7
 
8
8
  describe('Adomik Prebid Analytic', function () {
9
9
  let sendEventStub;
@@ -70,7 +70,7 @@ describe('Adomik Prebid Analytic', function () {
70
70
  });
71
71
 
72
72
  // Step 2: Send init auction event
73
- events.emit(constants.EVENTS.AUCTION_INIT, {config: initOptions, auctionId: 'test-test-test'});
73
+ events.emit(EVENTS.AUCTION_INIT, {config: initOptions, auctionId: 'test-test-test'});
74
74
 
75
75
  expect(adomikAnalytics.currentContext).to.deep.equal({
76
76
  uid: '123456',
@@ -81,7 +81,7 @@ describe('Adomik Prebid Analytic', function () {
81
81
  });
82
82
 
83
83
  // Step 3: Send bid requested event
84
- events.emit(constants.EVENTS.BID_REQUESTED, { bids: [bid] });
84
+ events.emit(EVENTS.BID_REQUESTED, { bids: [bid] });
85
85
 
86
86
  expect(adomikAnalytics.bucketEvents.length).to.equal(1);
87
87
  expect(adomikAnalytics.bucketEvents[0]).to.deep.equal({
@@ -93,7 +93,7 @@ describe('Adomik Prebid Analytic', function () {
93
93
  });
94
94
 
95
95
  // Step 4: Send bid response event
96
- events.emit(constants.EVENTS.BID_RESPONSE, bid);
96
+ events.emit(EVENTS.BID_RESPONSE, bid);
97
97
 
98
98
  expect(adomikAnalytics.bucketEvents.length).to.equal(2);
99
99
  expect(adomikAnalytics.bucketEvents[1]).to.deep.equal({
@@ -114,17 +114,17 @@ describe('Adomik Prebid Analytic', function () {
114
114
  });
115
115
 
116
116
  // Step 5: Send bid won event
117
- events.emit(constants.EVENTS.BID_WON, bid);
117
+ events.emit(EVENTS.BID_WON, bid);
118
118
 
119
119
  expect(adomikAnalytics.bucketEvents.length).to.equal(2);
120
120
 
121
121
  // Step 6: Send bid timeout event
122
- events.emit(constants.EVENTS.BID_TIMEOUT, {});
122
+ events.emit(EVENTS.BID_TIMEOUT, {});
123
123
 
124
124
  expect(adomikAnalytics.currentContext.timeouted).to.equal(true);
125
125
 
126
126
  // Step 7: Send auction end event
127
- events.emit(constants.EVENTS.AUCTION_END, {});
127
+ events.emit(EVENTS.AUCTION_END, {});
128
128
 
129
129
  setTimeout(function() {
130
130
  sinon.assert.callCount(sendEventStub, 1);
@@ -2,9 +2,9 @@ import adxcgAnalyticsAdapter from 'modules/adxcgAnalyticsAdapter.js';
2
2
  import { expect } from 'chai';
3
3
  import adapterManager from 'src/adapterManager.js';
4
4
  import { server } from 'test/mocks/xhr.js';
5
+ import { EVENTS } from 'src/constants.js';
5
6
 
6
7
  let events = require('src/events');
7
- let constants = require('src/constants.json');
8
8
 
9
9
  describe('adxcg analytics adapter', function () {
10
10
  beforeEach(function () {
@@ -171,21 +171,21 @@ describe('adxcg analytics adapter', function () {
171
171
 
172
172
  it('builds and sends auction data', function () {
173
173
  // Step 1: Send auction init event
174
- events.emit(constants.EVENTS.AUCTION_INIT, {
174
+ events.emit(EVENTS.AUCTION_INIT, {
175
175
  timestamp: auctionTimestamp
176
176
  });
177
177
 
178
178
  // Step 2: Send bid requested event
179
- events.emit(constants.EVENTS.BID_REQUESTED, bidRequest);
179
+ events.emit(EVENTS.BID_REQUESTED, bidRequest);
180
180
 
181
181
  // Step 3: Send bid response event
182
- events.emit(constants.EVENTS.BID_RESPONSE, bidResponse);
182
+ events.emit(EVENTS.BID_RESPONSE, bidResponse);
183
183
 
184
184
  // Step 4: Send bid time out event
185
- events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeoutArgsV1);
185
+ events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgsV1);
186
186
 
187
187
  // Step 5: Send auction end event
188
- events.emit(constants.EVENTS.AUCTION_END, {});
188
+ events.emit(EVENTS.AUCTION_END, {});
189
189
 
190
190
  expect(server.requests.length).to.equal(1);
191
191
 
@@ -196,7 +196,7 @@ describe('adxcg analytics adapter', function () {
196
196
  expect(realAfterBid.bidTimeout).to.deep.equal(['bidderOne', 'bidderTwo']);
197
197
 
198
198
  // Step 6: Send auction bid won event
199
- events.emit(constants.EVENTS.BID_WON, wonRequest);
199
+ events.emit(EVENTS.BID_WON, wonRequest);
200
200
 
201
201
  expect(server.requests.length).to.equal(2);
202
202
  let winEventData = JSON.parse(server.requests[1].requestBody);