prebid.js 7.8.0 → 7.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +0 -2
  2. package/RELEASE_SCHEDULE.md +1 -1
  3. package/allowedModules.js +3 -0
  4. package/babelConfig.js +10 -4
  5. package/dist/33acrossBidAdapter.js +1 -1
  6. package/dist/adWMGAnalyticsAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adbookpspBidAdapter.js +1 -1
  10. package/dist/adgenerationBidAdapter.js +1 -1
  11. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adlooxAdServerVideo.js +1 -1
  14. package/dist/adlooxAnalyticsAdapter.js +1 -1
  15. package/dist/adlooxRtdProvider.js +1 -1
  16. package/dist/adnuntiusBidAdapter.js +1 -1
  17. package/dist/adomikAnalyticsAdapter.js +1 -1
  18. package/dist/adrelevantisBidAdapter.js +1 -1
  19. package/dist/adtelligentBidAdapter.js +1 -1
  20. package/dist/adtrgtmeBidAdapter.js +1 -0
  21. package/dist/adxcgAnalyticsAdapter.js +1 -1
  22. package/dist/adxcgBidAdapter.js +1 -1
  23. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  24. package/dist/adyoulikeBidAdapter.js +1 -1
  25. package/dist/ajaBidAdapter.js +1 -1
  26. package/dist/amxBidAdapter.js +1 -1
  27. package/dist/amxIdSystem.js +1 -1
  28. package/dist/analyticsAdapter.js +1 -0
  29. package/dist/andBeyondMediaBidAdapter.js +1 -0
  30. package/dist/aniviewBidAdapter.js +1 -1
  31. package/dist/appierAnalyticsAdapter.js +1 -1
  32. package/dist/appnexusBidAdapter.js +1 -1
  33. package/dist/asoBidAdapter.js +1 -1
  34. package/dist/atsAnalyticsAdapter.js +1 -1
  35. package/dist/audiencerunBidAdapter.js +1 -1
  36. package/dist/axonixBidAdapter.js +1 -1
  37. package/dist/bidglassBidAdapter.js +1 -1
  38. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  39. package/dist/big-richmediaBidAdapter.js +1 -1
  40. package/dist/bluebillywigBidAdapter.js +1 -1
  41. package/dist/boldwinBidAdapter.js +1 -1
  42. package/dist/bridgewellBidAdapter.js +1 -1
  43. package/dist/brightMountainMediaBidAdapter.js +1 -1
  44. package/dist/browsiRtdProvider.js +1 -1
  45. package/dist/byDataAnalyticsAdapter.js +1 -1
  46. package/dist/c1xBidAdapter.js +1 -0
  47. package/dist/cleanioRtdProvider.js +1 -1
  48. package/dist/concertAnalyticsAdapter.js +1 -1
  49. package/dist/concertBidAdapter.js +1 -1
  50. package/dist/connectadBidAdapter.js +1 -1
  51. package/dist/consentManagementUsp.js +1 -1
  52. package/dist/consumableBidAdapter.js +1 -1
  53. package/dist/conversantBidAdapter.js +1 -1
  54. package/dist/cpmstarBidAdapter.js +1 -1
  55. package/dist/craftBidAdapter.js +1 -1
  56. package/dist/criteoBidAdapter.js +1 -1
  57. package/dist/datablocksAnalyticsAdapter.js +1 -1
  58. package/dist/datawrkzBidAdapter.js +1 -0
  59. package/dist/debugging-standalone.js +1 -1
  60. package/dist/dependencies.json +171 -0
  61. package/dist/dspxBidAdapter.js +1 -1
  62. package/dist/eplanningAnalyticsAdapter.js +1 -1
  63. package/dist/eplanningBidAdapter.js +1 -1
  64. package/dist/finativeBidAdapter.js +1 -1
  65. package/dist/fintezaAnalyticsAdapter.js +1 -1
  66. package/dist/freewheel-sspBidAdapter.js +1 -1
  67. package/dist/getOrigin.js +1 -1
  68. package/dist/glimpseBidAdapter.js +1 -1
  69. package/dist/gmosspBidAdapter.js +1 -1
  70. package/dist/goldbachBidAdapter.js +1 -1
  71. package/dist/gridBidAdapter.js +1 -1
  72. package/dist/gridNMBidAdapter.js +1 -1
  73. package/dist/gumgumBidAdapter.js +1 -1
  74. package/dist/h12mediaBidAdapter.js +1 -1
  75. package/dist/hadronAnalyticsAdapter.js +1 -1
  76. package/dist/id5AnalyticsAdapter.js +1 -1
  77. package/dist/id5IdSystem.js +1 -1
  78. package/dist/impactifyBidAdapter.js +1 -1
  79. package/dist/improvedigitalBidAdapter.js +1 -1
  80. package/dist/imuIdSystem.js +1 -1
  81. package/dist/inmarBidAdapter.js +1 -1
  82. package/dist/insticatorBidAdapter.js +1 -1
  83. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  84. package/dist/ixBidAdapter.js +1 -1
  85. package/dist/jixieBidAdapter.js +1 -1
  86. package/dist/justpremiumBidAdapter.js +1 -1
  87. package/dist/kargoAnalyticsAdapter.js +1 -1
  88. package/dist/kargoBidAdapter.js +1 -1
  89. package/dist/konduitAnalyticsAdapter.js +1 -1
  90. package/dist/kueezBidAdapter.js +1 -1
  91. package/dist/lassoBidAdapter.js +1 -1
  92. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  93. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  94. package/dist/logicadBidAdapter.js +1 -1
  95. package/dist/loglyliftBidAdapter.js +1 -1
  96. package/dist/malltvAnalyticsAdapter.js +1 -1
  97. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  98. package/dist/marsmediaBidAdapter.js +1 -1
  99. package/dist/mediafuseBidAdapter.js +1 -1
  100. package/dist/mediakeysBidAdapter.js +1 -1
  101. package/dist/medianetAnalyticsAdapter.js +1 -1
  102. package/dist/mediasquareBidAdapter.js +1 -1
  103. package/dist/mgidBidAdapter.js +1 -1
  104. package/dist/minutemediaBidAdapter.js +1 -1
  105. package/dist/nextMillenniumBidAdapter.js +1 -1
  106. package/dist/nobidBidAdapter.js +1 -1
  107. package/dist/not-for-prod/prebid.js +182 -176
  108. package/dist/oguryBidAdapter.js +1 -1
  109. package/dist/onetagBidAdapter.js +1 -1
  110. package/dist/ooloAnalyticsAdapter.js +1 -1
  111. package/dist/openxAnalyticsAdapter.js +1 -1
  112. package/dist/openxBidAdapter.js +1 -1
  113. package/dist/openxOrtbBidAdapter.js +1 -1
  114. package/dist/optimonAnalyticsAdapter.js +1 -1
  115. package/dist/outbrainBidAdapter.js +1 -1
  116. package/dist/ozoneBidAdapter.js +1 -1
  117. package/dist/parrableIdSystem.js +1 -1
  118. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  119. package/dist/pixfutureBidAdapter.js +1 -1
  120. package/dist/prebid-core.js +1 -1
  121. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  122. package/dist/publinkIdSystem.js +1 -1
  123. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  124. package/dist/pubmaticBidAdapter.js +1 -1
  125. package/dist/pubperfAnalyticsAdapter.js +1 -1
  126. package/dist/pubstackAnalyticsAdapter.js +1 -1
  127. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  128. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  129. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  130. package/dist/pxyzBidAdapter.js +1 -1
  131. package/dist/quantcastBidAdapter.js +1 -1
  132. package/dist/readpeakBidAdapter.js +1 -1
  133. package/dist/realvuAnalyticsAdapter.js +1 -1
  134. package/dist/relaidoBidAdapter.js +1 -1
  135. package/dist/relevantAnalyticsAdapter.js +1 -1
  136. package/dist/rhythmoneBidAdapter.js +1 -1
  137. package/dist/riseBidAdapter.js +1 -1
  138. package/dist/rivrAnalyticsAdapter.js +1 -1
  139. package/dist/roxotAnalyticsAdapter.js +1 -1
  140. package/dist/rtbhouseBidAdapter.js +1 -1
  141. package/dist/rubiconAnalyticsAdapter.js +1 -1
  142. package/dist/rubiconBidAdapter.js +1 -1
  143. package/dist/scaleableAnalyticsAdapter.js +1 -1
  144. package/dist/seedingAllianceBidAdapter.js +1 -1
  145. package/dist/seedtagBidAdapter.js +1 -1
  146. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  147. package/dist/sharethroughBidAdapter.js +1 -1
  148. package/dist/shinezBidAdapter.js +1 -1
  149. package/dist/showheroes-bsBidAdapter.js +1 -1
  150. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  151. package/dist/smaatoBidAdapter.js +1 -1
  152. package/dist/smartadserverBidAdapter.js +1 -1
  153. package/dist/smartxBidAdapter.js +1 -1
  154. package/dist/smilewantedBidAdapter.js +1 -1
  155. package/dist/snigelBidAdapter.js +1 -0
  156. package/dist/sonobiAnalyticsAdapter.js +1 -1
  157. package/dist/sonobiBidAdapter.js +1 -1
  158. package/dist/sovrnAnalyticsAdapter.js +1 -1
  159. package/dist/sovrnBidAdapter.js +1 -1
  160. package/dist/sspBCBidAdapter.js +1 -1
  161. package/dist/staqAnalyticsAdapter.js +1 -1
  162. package/dist/sublimeBidAdapter.js +1 -1
  163. package/dist/synacormediaBidAdapter.js +1 -1
  164. package/dist/tappxBidAdapter.js +1 -1
  165. package/dist/targetVideoBidAdapter.js +1 -1
  166. package/dist/teadsBidAdapter.js +1 -1
  167. package/dist/terceptAnalyticsAdapter.js +1 -1
  168. package/dist/trionBidAdapter.js +1 -1
  169. package/dist/tripleliftBidAdapter.js +1 -1
  170. package/dist/trustpidSystem.js +1 -1
  171. package/dist/ttdBidAdapter.js +1 -1
  172. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  173. package/dist/underdogmediaBidAdapter.js +1 -1
  174. package/dist/undertoneBidAdapter.js +1 -1
  175. package/dist/userId.js +1 -1
  176. package/dist/vidazooBidAdapter.js +1 -1
  177. package/dist/videobyteBidAdapter.js +1 -1
  178. package/dist/visxBidAdapter.js +1 -1
  179. package/dist/vuukleBidAdapter.js +1 -1
  180. package/dist/widespaceBidAdapter.js +1 -1
  181. package/dist/winrBidAdapter.js +1 -1
  182. package/dist/yahoosspBidAdapter.js +1 -1
  183. package/dist/yieldmoBidAdapter.js +1 -1
  184. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  185. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  186. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  187. package/dist/zeta_global_sspBidAdapter.js +1 -1
  188. package/gulpHelpers.js +22 -55
  189. package/gulpfile.js +12 -5
  190. package/integrationExamples/gpt/1plusXRtdProviderExample.html +2 -4
  191. package/integrationExamples/gpt/airgridRtdProvider_example.html +1 -4
  192. package/integrationExamples/gpt/amp/remote.html +1 -1
  193. package/integrationExamples/gpt/blueconicRtdProvider_example.html +2 -4
  194. package/integrationExamples/gpt/hadronRtdProvider_example.html +1 -3
  195. package/integrationExamples/gpt/inskin_example.html +1 -3
  196. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  197. package/integrationExamples/gpt/prebidServer_example.html +1 -3
  198. package/integrationExamples/gpt/serverbidServer_example.html +1 -3
  199. package/integrationExamples/gpt/userId_example.html +1 -3
  200. package/integrationExamples/postbid/oas/postbid-config.js +5 -5
  201. package/karma.conf.maker.js +2 -13
  202. package/libraries/LIBRARIES.md +5 -0
  203. package/{src → libraries/analyticsAdapter}/AnalyticsAdapter.js +5 -6
  204. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example.js +1 -1
  205. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example2.js +1 -1
  206. package/modules/.submodules.json +0 -12
  207. package/modules/1plusXRtdProvider.js +1 -1
  208. package/modules/33acrossBidAdapter.js +3 -3
  209. package/modules/adWMGAnalyticsAdapter.js +1 -1
  210. package/modules/adagioAnalyticsAdapter.js +1 -1
  211. package/modules/adagioBidAdapter.js +3 -4
  212. package/modules/adgenerationBidAdapter.js +1 -1
  213. package/modules/adkernelAdnAnalyticsAdapter.js +1 -1
  214. package/modules/adkernelBidAdapter.js +2 -1
  215. package/modules/adlooxAnalyticsAdapter.js +1 -1
  216. package/modules/admixerBidAdapter.js +1 -1
  217. package/modules/adnowBidAdapter.js +1 -1
  218. package/modules/adnuntiusBidAdapter.js +3 -1
  219. package/modules/adomikAnalyticsAdapter.js +1 -1
  220. package/modules/adpod.js +1 -1
  221. package/modules/adrelevantisBidAdapter.js +2 -2
  222. package/modules/adriverBidAdapter.js +1 -1
  223. package/modules/adtargetBidAdapter.js +1 -1
  224. package/modules/adtelligentBidAdapter.js +4 -2
  225. package/modules/adtrgtmeBidAdapter.js +333 -0
  226. package/modules/adtrgtmeBidAdapter.md +69 -0
  227. package/modules/adtrueBidAdapter.js +1 -1
  228. package/modules/adxcgAnalyticsAdapter.js +1 -1
  229. package/modules/adxpremiumAnalyticsAdapter.js +2 -2
  230. package/modules/adyoulikeBidAdapter.js +12 -8
  231. package/modules/akamaiDapRtdProvider.js +2 -2
  232. package/modules/andBeyondMediaBidAdapter.js +202 -0
  233. package/modules/andBeyondMediaBidAdapter.md +79 -0
  234. package/modules/aniviewBidAdapter.js +2 -2
  235. package/modules/apacdexBidAdapter.js +3 -3
  236. package/modules/appierAnalyticsAdapter.js +1 -1
  237. package/modules/appnexusBidAdapter.js +9 -9
  238. package/modules/apstreamBidAdapter.js +2 -2
  239. package/modules/atsAnalyticsAdapter.js +1 -1
  240. package/modules/betweenBidAdapter.js +1 -1
  241. package/modules/bidwatchAnalyticsAdapter.js +71 -12
  242. package/modules/bizzclickBidAdapter.js +1 -1
  243. package/modules/bliinkBidAdapter.js +1 -1
  244. package/modules/boldwinBidAdapter.js +16 -7
  245. package/modules/boldwinBidAdapter.md +17 -0
  246. package/modules/brightMountainMediaBidAdapter.js +1 -1
  247. package/modules/browsiRtdProvider.js +26 -12
  248. package/modules/byDataAnalyticsAdapter.js +2 -2
  249. package/modules/c1xBidAdapter.js +209 -0
  250. package/modules/c1xBidAdapter.md +70 -0
  251. package/modules/cleanioRtdProvider.js +29 -0
  252. package/modules/cleanmedianetBidAdapter.js +1 -1
  253. package/modules/colossussspBidAdapter.js +2 -2
  254. package/modules/concertAnalyticsAdapter.js +1 -1
  255. package/modules/consentManagementUsp.js +2 -2
  256. package/modules/consumableBidAdapter.js +21 -3
  257. package/modules/cpmstarBidAdapter.js +23 -13
  258. package/modules/criteoBidAdapter.js +47 -5
  259. package/modules/cwireBidAdapter.js +1 -1
  260. package/modules/datablocksAnalyticsAdapter.js +1 -1
  261. package/modules/datablocksBidAdapter.js +1 -1
  262. package/modules/datawrkzBidAdapter.js +633 -0
  263. package/modules/datawrkzBidAdapter.md +160 -0
  264. package/modules/dfpAdServerVideo.js +2 -2
  265. package/modules/dgkeywordRtdProvider.js +1 -1
  266. package/modules/dspxBidAdapter.js +1 -1
  267. package/modules/e_volutionBidAdapter.js +3 -3
  268. package/modules/ebdrBidAdapter.js +1 -1
  269. package/modules/emx_digitalBidAdapter.js +1 -1
  270. package/modules/eplanningAnalyticsAdapter.js +1 -1
  271. package/modules/eplanningBidAdapter.js +3 -3
  272. package/modules/fabrickIdSystem.js +2 -2
  273. package/modules/fintezaAnalyticsAdapter.js +2 -2
  274. package/modules/freewheel-sspBidAdapter.js +1 -1
  275. package/modules/gamoshiBidAdapter.js +1 -1
  276. package/modules/getintentBidAdapter.js +1 -1
  277. package/modules/gjirafaBidAdapter.js +2 -2
  278. package/modules/goldbachBidAdapter.js +8 -8
  279. package/modules/gothamadsBidAdapter.js +2 -2
  280. package/modules/gridBidAdapter.js +1 -1
  281. package/modules/gridNMBidAdapter.js +1 -1
  282. package/modules/gumgumBidAdapter.js +3 -3
  283. package/modules/h12mediaBidAdapter.js +1 -1
  284. package/modules/hadronAnalyticsAdapter.js +3 -3
  285. package/modules/hadronRtdProvider.js +1 -1
  286. package/modules/id5AnalyticsAdapter.js +2 -2
  287. package/modules/impactifyBidAdapter.js +1 -1
  288. package/modules/improvedigitalBidAdapter.js +5 -2
  289. package/modules/imuIdSystem.js +40 -28
  290. package/modules/imuIdSystem.md +1 -0
  291. package/modules/inskinBidAdapter.js +1 -1
  292. package/modules/integr8BidAdapter.js +2 -2
  293. package/modules/intentIqIdSystem.js +2 -2
  294. package/modules/interactiveOffersBidAdapter.js +1 -1
  295. package/modules/invisiblyAnalyticsAdapter.js +1 -1
  296. package/modules/iqmBidAdapter.js +1 -1
  297. package/modules/ixBidAdapter.js +15 -15
  298. package/modules/kargoAnalyticsAdapter.js +1 -1
  299. package/modules/kargoBidAdapter.js +4 -5
  300. package/modules/konduitAnalyticsAdapter.js +1 -1
  301. package/modules/krushmediaBidAdapter.js +2 -2
  302. package/modules/kueezBidAdapter.js +2 -2
  303. package/modules/lassoBidAdapter.js +3 -3
  304. package/modules/livewrappedAnalyticsAdapter.js +4 -4
  305. package/modules/liveyieldAnalyticsAdapter.js +1 -1
  306. package/modules/lkqdBidAdapter.js +3 -3
  307. package/modules/loganBidAdapter.js +2 -2
  308. package/modules/luponmediaBidAdapter.js +3 -3
  309. package/modules/malltvAnalyticsAdapter.js +1 -1
  310. package/modules/malltvBidAdapter.js +2 -2
  311. package/modules/marsmediaAnalyticsAdapter.js +1 -1
  312. package/modules/mediafuseBidAdapter.js +8 -8
  313. package/modules/mediakeysBidAdapter.js +2 -2
  314. package/modules/medianetAnalyticsAdapter.js +1 -1
  315. package/modules/merkleIdSystem.js +2 -2
  316. package/modules/mgidBidAdapter.js +2 -2
  317. package/modules/microadBidAdapter.js +1 -1
  318. package/modules/mobfoxpbBidAdapter.js +2 -2
  319. package/modules/newspassidBidAdapter.js +1 -1
  320. package/modules/nextMillenniumBidAdapter.js +21 -2
  321. package/modules/nobidBidAdapter.js +3 -3
  322. package/modules/novatiqIdSystem.js +1 -1
  323. package/modules/oguryBidAdapter.js +1 -1
  324. package/modules/ooloAnalyticsAdapter.js +1 -1
  325. package/modules/open8BidAdapter.js +1 -1
  326. package/modules/openwebBidAdapter.js +1 -1
  327. package/modules/openxAnalyticsAdapter.js +6 -745
  328. package/modules/openxAnalyticsAdapter.md +4 -0
  329. package/modules/openxBidAdapter.js +3 -5
  330. package/modules/openxOrtbBidAdapter.js +8 -4
  331. package/modules/operaadsBidAdapter.js +1 -1
  332. package/modules/optimonAnalyticsAdapter.js +1 -1
  333. package/modules/ozoneBidAdapter.js +102 -271
  334. package/modules/ozoneBidAdapter.md +37 -0
  335. package/modules/pianoDmpAnalyticsAdapter.js +1 -1
  336. package/modules/pixfutureBidAdapter.js +1 -1
  337. package/modules/prebidServerBidAdapter/index.js +7 -7
  338. package/modules/prebidmanagerAnalyticsAdapter.js +2 -2
  339. package/modules/priceFloors.js +1 -1
  340. package/modules/pubmaticAnalyticsAdapter.js +2 -2
  341. package/modules/pubmaticBidAdapter.js +28 -8
  342. package/modules/pubperfAnalyticsAdapter.js +1 -1
  343. package/modules/pubstackAnalyticsAdapter.js +1 -1
  344. package/modules/pubwiseAnalyticsAdapter.js +2 -2
  345. package/modules/pubwiseBidAdapter.js +3 -3
  346. package/modules/pubxBidAdapter.js +1 -1
  347. package/modules/pubxaiAnalyticsAdapter.js +3 -3
  348. package/modules/pulsepointAnalyticsAdapter.js +1 -1
  349. package/modules/pulsepointBidAdapter.js +1 -1
  350. package/modules/quantcastIdSystem.js +1 -1
  351. package/modules/radsBidAdapter.js +1 -1
  352. package/modules/realvuAnalyticsAdapter.js +1 -1
  353. package/modules/relaidoBidAdapter.js +23 -18
  354. package/modules/relevantAnalyticsAdapter.js +1 -1
  355. package/modules/revcontentBidAdapter.js +1 -1
  356. package/modules/richaudienceBidAdapter.js +1 -1
  357. package/modules/riseBidAdapter.js +8 -5
  358. package/modules/riseBidAdapter.md +3 -1
  359. package/modules/rivrAnalyticsAdapter.js +1 -1
  360. package/modules/roxotAnalyticsAdapter.js +1 -1
  361. package/modules/rtbhouseBidAdapter.js +1 -1
  362. package/modules/rubiconAnalyticsAdapter.js +1 -1
  363. package/modules/rubiconBidAdapter.js +2 -2
  364. package/modules/scaleableAnalyticsAdapter.js +1 -1
  365. package/modules/schain.js +1 -1
  366. package/modules/sharethroughAnalyticsAdapter.js +1 -1
  367. package/modules/sharethroughBidAdapter.js +3 -3
  368. package/modules/shinezBidAdapter.js +2 -2
  369. package/modules/showheroes-bsBidAdapter.js +131 -49
  370. package/modules/showheroes-bsBidAdapter.md +49 -0
  371. package/modules/sigmoidAnalyticsAdapter.js +1 -1
  372. package/modules/sirdataRtdProvider.js +3 -3
  373. package/modules/sizeMappingV2.js +1 -1
  374. package/modules/smaatoBidAdapter.js +2 -2
  375. package/modules/smartxBidAdapter.js +2 -2
  376. package/modules/snigelBidAdapter.js +150 -0
  377. package/modules/snigelBidAdapter.md +46 -0
  378. package/modules/sonobiAnalyticsAdapter.js +2 -2
  379. package/modules/sonobiBidAdapter.js +3 -3
  380. package/modules/sovrnAnalyticsAdapter.js +1 -1
  381. package/modules/spotxBidAdapter.js +5 -5
  382. package/modules/sspBCBidAdapter.js +15 -18
  383. package/modules/staqAnalyticsAdapter.js +2 -2
  384. package/modules/synacormediaBidAdapter.js +1 -1
  385. package/modules/taboolaBidAdapter.js +1 -1
  386. package/modules/tappxBidAdapter.js +4 -4
  387. package/modules/targetVideoBidAdapter.js +1 -1
  388. package/modules/terceptAnalyticsAdapter.js +1 -1
  389. package/modules/theAdxBidAdapter.js +2 -2
  390. package/modules/tpmnBidAdapter.js +1 -1
  391. package/modules/trionBidAdapter.js +2 -2
  392. package/modules/tripleliftBidAdapter.js +46 -20
  393. package/modules/trustpidSystem.js +2 -2
  394. package/modules/ttdBidAdapter.js +41 -26
  395. package/modules/ttdBidAdapter.md +4 -10
  396. package/modules/ucfunnelAnalyticsAdapter.js +1 -1
  397. package/modules/underdogmediaBidAdapter.js +1 -1
  398. package/modules/userId/eids.js +5 -0
  399. package/modules/userId/index.js +11 -7
  400. package/modules/vdoaiBidAdapter.js +1 -1
  401. package/modules/vidazooBidAdapter.js +9 -5
  402. package/modules/videoheroesBidAdapter.js +1 -1
  403. package/modules/vidoomyBidAdapter.js +1 -1
  404. package/modules/visxBidAdapter.js +1 -1
  405. package/modules/vrtcalBidAdapter.js +1 -1
  406. package/modules/weboramaRtdProvider.js +3 -3
  407. package/modules/winrBidAdapter.js +1 -1
  408. package/modules/yahoosspBidAdapter.js +4 -3
  409. package/modules/yandexBidAdapter.js +1 -1
  410. package/modules/yieldmoBidAdapter.js +3 -3
  411. package/modules/yieldoneAnalyticsAdapter.js +1 -1
  412. package/modules/yieldoneBidAdapter.js +2 -2
  413. package/modules/yuktamediaAnalyticsAdapter.js +1 -1
  414. package/modules/zeta_global_sspAnalyticsAdapter.js +1 -1
  415. package/modules/zeta_global_sspBidAdapter.js +25 -22
  416. package/package.json +4 -3
  417. package/src/Renderer.js +1 -1
  418. package/src/adapterManager.js +3 -3
  419. package/src/adapters/bidderFactory.js +1 -0
  420. package/src/auction.js +2 -2
  421. package/src/bidfactory.js +1 -1
  422. package/src/config.js +7 -7
  423. package/src/native.js +53 -58
  424. package/src/sizeMapping.js +1 -1
  425. package/src/targeting.js +1 -1
  426. package/src/userSync.js +1 -1
  427. package/src/utils.js +1 -1
  428. package/test/mocks/analyticsStub.js +1 -1
  429. package/test/spec/AnalyticsAdapter_spec.js +1 -1
  430. package/test/spec/config_spec.js +4 -0
  431. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  432. package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -3
  433. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  434. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  435. package/test/spec/modules/adyoulikeBidAdapter_spec.js +8 -3
  436. package/test/spec/modules/andBeyondMediaBidAdapter_spec.js +400 -0
  437. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +17 -1
  438. package/test/spec/modules/boldwinBidAdapter_spec.js +2 -1
  439. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  440. package/test/spec/modules/c1xBidAdapter_spec.js +189 -0
  441. package/test/spec/modules/cleanioRtdProvider_spec.js +23 -0
  442. package/test/spec/modules/concertAnalyticsAdapter_spec.js +2 -1
  443. package/test/spec/modules/consumableBidAdapter_spec.js +139 -0
  444. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  445. package/test/spec/modules/criteoBidAdapter_spec.js +169 -38
  446. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  447. package/test/spec/modules/eids_spec.js +32 -0
  448. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +2 -2
  449. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +2 -1
  450. package/test/spec/modules/improvedigitalBidAdapter_spec.js +4 -4
  451. package/test/spec/modules/imuIdSystem_spec.js +20 -4
  452. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +8 -3
  453. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  454. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +2 -1
  455. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +17 -0
  456. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  457. package/test/spec/modules/openxOrtbBidAdapter_spec.js +32 -1
  458. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +2 -1
  459. package/test/spec/modules/ozoneBidAdapter_spec.js +367 -511
  460. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +4 -0
  461. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -1
  462. package/test/spec/modules/pubmaticBidAdapter_spec.js +111 -5
  463. package/test/spec/modules/pubperfAnalyticsAdapter_spec.js +2 -1
  464. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +2 -1
  465. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +3 -3
  466. package/test/spec/modules/relaidoBidAdapter_spec.js +40 -33
  467. package/test/spec/modules/riseBidAdapter_spec.js +17 -0
  468. package/test/spec/modules/sharethroughBidAdapter_spec.js +10 -1
  469. package/test/spec/modules/showheroes-bsBidAdapter_spec.js +173 -2
  470. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +1 -1
  471. package/test/spec/modules/snigelBidAdapter_spec.js +296 -0
  472. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -1
  473. package/test/spec/modules/sspBCBidAdapter_spec.js +2 -2
  474. package/test/spec/modules/tripleliftBidAdapter_spec.js +378 -10
  475. package/test/spec/modules/ttdBidAdapter_spec.js +113 -34
  476. package/test/spec/modules/userId_spec.js +38 -2
  477. package/test/spec/modules/vidazooBidAdapter_spec.js +39 -24
  478. package/test/spec/modules/yahoosspBidAdapter_spec.js +13 -0
  479. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +5 -1
  480. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +61 -2
  481. package/test/spec/native_spec.js +96 -0
  482. package/test/spec/unit/core/bidderFactory_spec.js +27 -2
  483. package/webpack.conf.js +47 -11
@@ -1,653 +1,21 @@
1
1
  import { expect } from 'chai';
2
- import openxAdapter, {AUCTION_STATES} from 'modules/openxAnalyticsAdapter.js';
3
- import * as events from 'src/events.js';
4
- import CONSTANTS from 'src/constants.json';
2
+ import openxAdapter from 'modules/openxAnalyticsAdapter.js';
5
3
  import * as utils from 'src/utils.js';
6
- import { server } from 'test/mocks/xhr.js';
7
- import {find} from 'src/polyfill.js';
8
-
9
- const {
10
- EVENTS: { AUCTION_INIT, BID_REQUESTED, BID_RESPONSE, BID_TIMEOUT, BID_WON, AUCTION_END }
11
- } = CONSTANTS;
12
- const SLOT_LOADED = 'slotOnload';
13
- const CURRENT_TIME = 1586000000000;
14
4
 
15
5
  describe('openx analytics adapter', function() {
16
- describe('when validating the configuration', function () {
6
+ describe('deprecation message', function () {
17
7
  let spy;
18
8
  beforeEach(function () {
19
- spy = sinon.spy(utils, 'logError');
9
+ spy = sinon.spy(utils, 'logWarn');
20
10
  });
21
11
 
22
12
  afterEach(function() {
23
- utils.logError.restore();
13
+ utils.logWarn.restore();
24
14
  });
25
15
 
26
- it('should require organization id when no configuration is passed', function() {
16
+ it('should warn on enable', function() {
27
17
  openxAdapter.enableAnalytics();
28
- expect(spy.firstCall.args[0]).to.match(/publisherPlatformId/);
29
- expect(spy.firstCall.args[0]).to.match(/to exist/);
30
- });
31
-
32
- it('should require publisher id when no orgId is passed', function() {
33
- openxAdapter.enableAnalytics({
34
- provider: 'openx',
35
- options: {
36
- publisherAccountId: 12345
37
- }
38
- });
39
- expect(spy.firstCall.args[0]).to.match(/publisherPlatformId/);
40
- expect(spy.firstCall.args[0]).to.match(/to exist/);
41
- });
42
-
43
- it('should validate types', function() {
44
- openxAdapter.enableAnalytics({
45
- provider: 'openx',
46
- options: {
47
- orgId: 'test platformId',
48
- sampling: 'invalid-float'
49
- }
50
- });
51
-
52
- expect(spy.firstCall.args[0]).to.match(/sampling/);
53
- expect(spy.firstCall.args[0]).to.match(/type 'number'/);
54
- });
55
- });
56
-
57
- describe('when tracking analytic events', function () {
58
- const AD_UNIT_CODE = 'test-div-1';
59
- const SLOT_LOAD_WAIT_TIME = 10;
60
-
61
- const DEFAULT_V2_ANALYTICS_CONFIG = {
62
- orgId: 'test-org-id',
63
- publisherAccountId: 123,
64
- publisherPlatformId: 'test-platform-id',
65
- configId: 'my_config',
66
- optimizerConfig: 'my my optimizer',
67
- sample: 1.0,
68
- payloadWaitTime: SLOT_LOAD_WAIT_TIME,
69
- payloadWaitTimePadding: SLOT_LOAD_WAIT_TIME
70
- };
71
-
72
- const auctionInit = {
73
- auctionId: 'test-auction-id',
74
- timestamp: CURRENT_TIME,
75
- timeout: 3000,
76
- adUnitCodes: [AD_UNIT_CODE],
77
- };
78
-
79
- const bidRequestedOpenX = {
80
- auctionId: 'test-auction-id',
81
- auctionStart: CURRENT_TIME,
82
- timeout: 2000,
83
- bids: [
84
- {
85
- adUnitCode: AD_UNIT_CODE,
86
- bidId: 'test-openx-request-id',
87
- bidder: 'openx',
88
- params: { unit: 'test-openx-ad-unit-id' },
89
- userId: {
90
- tdid: 'test-tradedesk-id',
91
- empty_id: '',
92
- null_id: null,
93
- bla_id: '',
94
- digitrustid: { data: { id: '1' } },
95
- lipbid: { lipb: '2' }
96
- }
97
- }
98
- ],
99
- start: CURRENT_TIME + 10
100
- };
101
-
102
- const bidRequestedCloseX = {
103
- auctionId: 'test-auction-id',
104
- auctionStart: CURRENT_TIME,
105
- timeout: 1000,
106
- bids: [
107
- {
108
- adUnitCode: AD_UNIT_CODE,
109
- bidId: 'test-closex-request-id',
110
- bidder: 'closex',
111
- params: { unit: 'test-closex-ad-unit-id' },
112
- userId: {
113
- bla_id: '2',
114
- tdid: 'test-tradedesk-id'
115
- }
116
- }
117
- ],
118
- start: CURRENT_TIME + 20
119
- };
120
-
121
- const bidResponseOpenX = {
122
- adUnitCode: AD_UNIT_CODE,
123
- cpm: 0.5,
124
- netRevenue: true,
125
- requestId: 'test-openx-request-id',
126
- mediaType: 'banner',
127
- width: 300,
128
- height: 250,
129
- adId: 'test-openx-ad-id',
130
- auctionId: 'test-auction-id',
131
- creativeId: 'openx-crid',
132
- currency: 'USD',
133
- timeToRespond: 100,
134
- responseTimestamp: CURRENT_TIME + 30,
135
- ts: 'test-openx-ts'
136
- };
137
-
138
- const bidResponseCloseX = {
139
- adUnitCode: AD_UNIT_CODE,
140
- cpm: 0.3,
141
- netRevenue: true,
142
- requestId: 'test-closex-request-id',
143
- mediaType: 'video',
144
- width: 300,
145
- height: 250,
146
- adId: 'test-closex-ad-id',
147
- auctionId: 'test-auction-id',
148
- creativeId: 'closex-crid',
149
- currency: 'USD',
150
- timeToRespond: 200,
151
- dealId: 'test-closex-deal-id',
152
- responseTimestamp: CURRENT_TIME + 40,
153
- ts: 'test-closex-ts'
154
- };
155
-
156
- const bidTimeoutOpenX = {
157
- 0: {
158
- adUnitCode: AD_UNIT_CODE,
159
- auctionId: 'test-auction-id',
160
- bidId: 'test-openx-request-id'
161
- }};
162
-
163
- const bidTimeoutCloseX = {
164
- 0: {
165
- adUnitCode: AD_UNIT_CODE,
166
- auctionId: 'test-auction-id',
167
- bidId: 'test-closex-request-id'
168
- }
169
- };
170
-
171
- const bidWonOpenX = {
172
- requestId: 'test-openx-request-id',
173
- adId: 'test-openx-ad-id',
174
- adUnitCode: AD_UNIT_CODE,
175
- auctionId: 'test-auction-id'
176
- };
177
-
178
- const auctionEnd = {
179
- auctionId: 'test-auction-id',
180
- timestamp: CURRENT_TIME,
181
- auctionEnd: CURRENT_TIME + 100,
182
- timeout: 3000,
183
- adUnitCodes: [AD_UNIT_CODE],
184
- };
185
-
186
- const bidWonCloseX = {
187
- requestId: 'test-closex-request-id',
188
- adId: 'test-closex-ad-id',
189
- adUnitCode: AD_UNIT_CODE,
190
- auctionId: 'test-auction-id'
191
- };
192
-
193
- function simulateAuction(events) {
194
- let highestBid;
195
-
196
- events.forEach(event => {
197
- const [eventType, args] = event;
198
- if (eventType === BID_RESPONSE) {
199
- highestBid = highestBid || args;
200
- if (highestBid.cpm < args.cpm) {
201
- highestBid = args;
202
- }
203
- }
204
-
205
- if (eventType === SLOT_LOADED) {
206
- const slotLoaded = {
207
- slot: {
208
- getAdUnitPath: () => {
209
- return '/12345678/test_ad_unit';
210
- },
211
- getSlotElementId: () => {
212
- return AD_UNIT_CODE;
213
- },
214
- getTargeting: (key) => {
215
- if (key === 'hb_adid') {
216
- return highestBid ? [highestBid.adId] : [];
217
- } else {
218
- return [];
219
- }
220
- }
221
- }
222
- };
223
- openxAdapter.track({ eventType, args: slotLoaded });
224
- } else {
225
- openxAdapter.track({ eventType, args });
226
- }
227
- });
228
- }
229
-
230
- let clock;
231
-
232
- beforeEach(function() {
233
- sinon.stub(events, 'getEvents').returns([]);
234
- clock = sinon.useFakeTimers(CURRENT_TIME);
235
- });
236
-
237
- afterEach(function() {
238
- events.getEvents.restore();
239
- clock.restore();
240
- });
241
-
242
- describe('when there is an auction', function () {
243
- let auction;
244
- let auction2;
245
- beforeEach(function () {
246
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
247
-
248
- simulateAuction([
249
- [AUCTION_INIT, auctionInit],
250
- [SLOT_LOADED]
251
- ]);
252
-
253
- simulateAuction([
254
- [AUCTION_INIT, {...auctionInit, auctionId: 'second-auction-id'}],
255
- [SLOT_LOADED]
256
- ]);
257
-
258
- clock.tick(SLOT_LOAD_WAIT_TIME);
259
- auction = JSON.parse(server.requests[0].requestBody)[0];
260
- auction2 = JSON.parse(server.requests[1].requestBody)[0];
261
- });
262
-
263
- afterEach(function () {
264
- openxAdapter.reset();
265
- openxAdapter.disableAnalytics();
266
- });
267
-
268
- it('should track auction start time', function () {
269
- expect(auction.startTime).to.equal(auctionInit.timestamp);
270
- });
271
-
272
- it('should track auction time limit', function () {
273
- expect(auction.timeLimit).to.equal(auctionInit.timeout);
274
- });
275
-
276
- it('should track the \'default\' test code', function () {
277
- expect(auction.testCode).to.equal('default');
278
- });
279
-
280
- it('should track auction count', function () {
281
- expect(auction.auctionOrder).to.equal(1);
282
- expect(auction2.auctionOrder).to.equal(2);
283
- });
284
-
285
- it('should track the orgId', function () {
286
- expect(auction.orgId).to.equal(DEFAULT_V2_ANALYTICS_CONFIG.orgId);
287
- });
288
-
289
- it('should track the orgId', function () {
290
- expect(auction.publisherPlatformId).to.equal(DEFAULT_V2_ANALYTICS_CONFIG.publisherPlatformId);
291
- });
292
-
293
- it('should track the orgId', function () {
294
- expect(auction.publisherAccountId).to.equal(DEFAULT_V2_ANALYTICS_CONFIG.publisherAccountId);
295
- });
296
-
297
- it('should track the optimizerConfig', function () {
298
- expect(auction.optimizerConfig).to.equal(DEFAULT_V2_ANALYTICS_CONFIG.optimizerConfig);
299
- });
300
-
301
- it('should track the configId', function () {
302
- expect(auction.configId).to.equal(DEFAULT_V2_ANALYTICS_CONFIG.configId);
303
- });
304
-
305
- it('should track the auction Id', function () {
306
- expect(auction.auctionId).to.equal(auctionInit.auctionId);
307
- });
308
- });
309
-
310
- describe('when there is a custom test code', function () {
311
- let auction;
312
- beforeEach(function () {
313
- openxAdapter.enableAnalytics({
314
- options: {
315
- ...DEFAULT_V2_ANALYTICS_CONFIG,
316
- testCode: 'test-code'
317
- }
318
- });
319
-
320
- simulateAuction([
321
- [AUCTION_INIT, auctionInit],
322
- [SLOT_LOADED],
323
- ]);
324
- clock.tick(SLOT_LOAD_WAIT_TIME);
325
- auction = JSON.parse(server.requests[0].requestBody)[0];
326
- });
327
-
328
- afterEach(function () {
329
- openxAdapter.reset();
330
- openxAdapter.disableAnalytics();
331
- });
332
-
333
- it('should track the custom test code', function () {
334
- expect(auction.testCode).to.equal('test-code');
335
- });
336
- });
337
-
338
- describe('when there is campaign (utm) data', function () {
339
- let auction;
340
- beforeEach(function () {
341
-
342
- });
343
-
344
- afterEach(function () {
345
- openxAdapter.reset();
346
- utils.getWindowLocation.restore();
347
- openxAdapter.disableAnalytics();
348
- });
349
-
350
- it('should track values from query params when they exist', function () {
351
- sinon.stub(utils, 'getWindowLocation').returns({search: '?' +
352
- 'utm_campaign=test%20campaign-name&' +
353
- 'utm_source=test-source&' +
354
- 'utm_medium=test-medium&'
355
- });
356
-
357
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
358
-
359
- simulateAuction([
360
- [AUCTION_INIT, auctionInit],
361
- [SLOT_LOADED],
362
- ]);
363
- clock.tick(SLOT_LOAD_WAIT_TIME);
364
- auction = JSON.parse(server.requests[0].requestBody)[0];
365
-
366
- // ensure that value are URI decoded
367
- expect(auction.campaign.name).to.equal('test campaign-name');
368
- expect(auction.campaign.source).to.equal('test-source');
369
- expect(auction.campaign.medium).to.equal('test-medium');
370
- expect(auction.campaign.content).to.be.undefined;
371
- expect(auction.campaign.term).to.be.undefined;
372
- });
373
-
374
- it('should override query params if configuration parameters exist', function () {
375
- sinon.stub(utils, 'getWindowLocation').returns({search: '?' +
376
- 'utm_campaign=test-campaign-name&' +
377
- 'utm_source=test-source&' +
378
- 'utm_medium=test-medium&' +
379
- 'utm_content=test-content&' +
380
- 'utm_term=test-term'
381
- });
382
-
383
- openxAdapter.enableAnalytics({
384
- options: {
385
- ...DEFAULT_V2_ANALYTICS_CONFIG,
386
- campaign: {
387
- name: 'test-config-name',
388
- source: 'test-config-source',
389
- medium: 'test-config-medium'
390
- }
391
- }
392
- });
393
-
394
- simulateAuction([
395
- [AUCTION_INIT, auctionInit],
396
- [SLOT_LOADED],
397
- ]);
398
- clock.tick(SLOT_LOAD_WAIT_TIME);
399
- auction = JSON.parse(server.requests[0].requestBody)[0];
400
-
401
- expect(auction.campaign.name).to.equal('test-config-name');
402
- expect(auction.campaign.source).to.equal('test-config-source');
403
- expect(auction.campaign.medium).to.equal('test-config-medium');
404
- expect(auction.campaign.content).to.equal('test-content');
405
- expect(auction.campaign.term).to.equal('test-term');
406
- });
407
- });
408
-
409
- describe('when there are bid requests', function () {
410
- let auction;
411
- let openxBidder;
412
- let closexBidder;
413
-
414
- beforeEach(function () {
415
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
416
-
417
- simulateAuction([
418
- [AUCTION_INIT, auctionInit],
419
- [BID_REQUESTED, bidRequestedCloseX],
420
- [BID_REQUESTED, bidRequestedOpenX],
421
- [SLOT_LOADED],
422
- ]);
423
- clock.tick(SLOT_LOAD_WAIT_TIME * 2);
424
- auction = JSON.parse(server.requests[0].requestBody)[0];
425
- openxBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx');
426
- closexBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'closex');
427
- });
428
-
429
- afterEach(function () {
430
- openxAdapter.reset();
431
- openxAdapter.disableAnalytics();
432
- });
433
-
434
- it('should track the bidder', function () {
435
- expect(openxBidder.bidder).to.equal('openx');
436
- expect(closexBidder.bidder).to.equal('closex');
437
- });
438
-
439
- it('should track the adunit code', function () {
440
- expect(auction.adUnits[0].code).to.equal(AD_UNIT_CODE);
441
- });
442
-
443
- it('should track the user ids', function () {
444
- expect(auction.userIdProviders).to.deep.equal(['bla_id', 'digitrustid', 'lipbid', 'tdid']);
445
- });
446
-
447
- it('should not have responded', function () {
448
- expect(openxBidder.hasBidderResponded).to.equal(false);
449
- expect(closexBidder.hasBidderResponded).to.equal(false);
450
- });
451
- });
452
-
453
- describe('when there are request timeouts', function () {
454
- let auction;
455
- let openxBidRequest;
456
- let closexBidRequest;
457
-
458
- beforeEach(function () {
459
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
460
-
461
- simulateAuction([
462
- [AUCTION_INIT, auctionInit],
463
- [BID_REQUESTED, bidRequestedCloseX],
464
- [BID_REQUESTED, bidRequestedOpenX],
465
- [BID_TIMEOUT, bidTimeoutCloseX],
466
- [BID_TIMEOUT, bidTimeoutOpenX],
467
- [AUCTION_END, auctionEnd]
468
- ]);
469
- clock.tick(SLOT_LOAD_WAIT_TIME * 2);
470
- auction = JSON.parse(server.requests[0].requestBody)[0];
471
-
472
- openxBidRequest = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx');
473
- closexBidRequest = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'closex');
474
- });
475
-
476
- afterEach(function () {
477
- openxAdapter.reset();
478
- openxAdapter.disableAnalytics();
479
- });
480
-
481
- it('should track the timeout', function () {
482
- expect(openxBidRequest.timedOut).to.equal(true);
483
- expect(closexBidRequest.timedOut).to.equal(true);
484
- });
485
-
486
- it('should track the timeout value ie timeLimit', function () {
487
- expect(openxBidRequest.timeLimit).to.equal(2000);
488
- expect(closexBidRequest.timeLimit).to.equal(1000);
489
- });
490
- });
491
-
492
- describe('when there are bid responses', function () {
493
- let auction;
494
- let openxBidResponse;
495
- let closexBidResponse;
496
-
497
- beforeEach(function () {
498
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
499
-
500
- simulateAuction([
501
- [AUCTION_INIT, auctionInit],
502
- [BID_REQUESTED, bidRequestedCloseX],
503
- [BID_REQUESTED, bidRequestedOpenX],
504
- [BID_RESPONSE, bidResponseOpenX],
505
- [BID_RESPONSE, bidResponseCloseX],
506
- [AUCTION_END, auctionEnd]
507
- ]);
508
-
509
- clock.tick(SLOT_LOAD_WAIT_TIME * 2);
510
- auction = JSON.parse(server.requests[0].requestBody)[0];
511
-
512
- openxBidResponse = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx').bidResponses[0];
513
- closexBidResponse = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'closex').bidResponses[0];
514
- });
515
-
516
- afterEach(function () {
517
- openxAdapter.reset();
518
- openxAdapter.disableAnalytics();
519
- });
520
-
521
- it('should track the cpm in microCPM', function () {
522
- expect(openxBidResponse.microCpm).to.equal(bidResponseOpenX.cpm * 1000000);
523
- expect(closexBidResponse.microCpm).to.equal(bidResponseCloseX.cpm * 1000000);
524
- });
525
-
526
- it('should track if the bid is in net revenue', function () {
527
- expect(openxBidResponse.netRevenue).to.equal(bidResponseOpenX.netRevenue);
528
- expect(closexBidResponse.netRevenue).to.equal(bidResponseCloseX.netRevenue);
529
- });
530
-
531
- it('should track the mediaType', function () {
532
- expect(openxBidResponse.mediaType).to.equal(bidResponseOpenX.mediaType);
533
- expect(closexBidResponse.mediaType).to.equal(bidResponseCloseX.mediaType);
534
- });
535
-
536
- it('should track the currency', function () {
537
- expect(openxBidResponse.currency).to.equal(bidResponseOpenX.currency);
538
- expect(closexBidResponse.currency).to.equal(bidResponseCloseX.currency);
539
- });
540
-
541
- it('should track the ad width and height', function () {
542
- expect(openxBidResponse.width).to.equal(bidResponseOpenX.width);
543
- expect(openxBidResponse.height).to.equal(bidResponseOpenX.height);
544
-
545
- expect(closexBidResponse.width).to.equal(bidResponseCloseX.width);
546
- expect(closexBidResponse.height).to.equal(bidResponseCloseX.height);
547
- });
548
-
549
- it('should track the bid dealId', function () {
550
- expect(openxBidResponse.dealId).to.equal(bidResponseOpenX.dealId); // no deal id defined
551
- expect(closexBidResponse.dealId).to.equal(bidResponseCloseX.dealId); // deal id defined
552
- });
553
-
554
- it('should track the bid\'s latency', function () {
555
- expect(openxBidResponse.latency).to.equal(bidResponseOpenX.timeToRespond);
556
- expect(closexBidResponse.latency).to.equal(bidResponseCloseX.timeToRespond);
557
- });
558
-
559
- it('should not have any bid winners', function () {
560
- expect(openxBidResponse.winner).to.equal(false);
561
- expect(closexBidResponse.winner).to.equal(false);
562
- });
563
-
564
- it('should track the bid currency', function () {
565
- expect(openxBidResponse.currency).to.equal(bidResponseOpenX.currency);
566
- expect(closexBidResponse.currency).to.equal(bidResponseCloseX.currency);
567
- });
568
-
569
- it('should track the auction end time', function () {
570
- expect(auction.endTime).to.equal(auctionEnd.auctionEnd);
571
- });
572
-
573
- it('should track that the auction ended', function () {
574
- expect(auction.state).to.equal(AUCTION_STATES.ENDED);
575
- });
576
- });
577
-
578
- describe('when there are bidder wins', function () {
579
- let auction;
580
- beforeEach(function () {
581
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
582
-
583
- simulateAuction([
584
- [AUCTION_INIT, auctionInit],
585
- [BID_REQUESTED, bidRequestedOpenX],
586
- [BID_REQUESTED, bidRequestedCloseX],
587
- [BID_RESPONSE, bidResponseOpenX],
588
- [BID_RESPONSE, bidResponseCloseX],
589
- [AUCTION_END, auctionEnd],
590
- [BID_WON, bidWonOpenX]
591
- ]);
592
-
593
- clock.tick(SLOT_LOAD_WAIT_TIME * 2);
594
- auction = JSON.parse(server.requests[0].requestBody)[0];
595
- });
596
-
597
- afterEach(function () {
598
- openxAdapter.reset();
599
- openxAdapter.disableAnalytics();
600
- });
601
-
602
- it('should track that bidder as the winner', function () {
603
- let openxBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx');
604
- expect(openxBidder.bidResponses[0]).to.contain({winner: true});
605
- });
606
-
607
- it('should track that bidder as the losers', function () {
608
- let closexBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'closex');
609
- expect(closexBidder.bidResponses[0]).to.contain({winner: false});
610
- });
611
- });
612
-
613
- describe('when a winning bid renders', function () {
614
- let auction;
615
- beforeEach(function () {
616
- openxAdapter.enableAnalytics({options: DEFAULT_V2_ANALYTICS_CONFIG});
617
-
618
- simulateAuction([
619
- [AUCTION_INIT, auctionInit],
620
- [BID_REQUESTED, bidRequestedOpenX],
621
- [BID_REQUESTED, bidRequestedCloseX],
622
- [BID_RESPONSE, bidResponseOpenX],
623
- [BID_RESPONSE, bidResponseCloseX],
624
- [AUCTION_END, auctionEnd],
625
- [BID_WON, bidWonOpenX],
626
- [SLOT_LOADED]
627
- ]);
628
-
629
- clock.tick(SLOT_LOAD_WAIT_TIME * 2);
630
- auction = JSON.parse(server.requests[0].requestBody)[0];
631
- });
632
-
633
- afterEach(function () {
634
- openxAdapter.reset();
635
- openxAdapter.disableAnalytics();
636
- });
637
-
638
- it('should track that winning bid rendered', function () {
639
- let openxBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx');
640
- expect(openxBidder.bidResponses[0]).to.contain({rendered: true});
641
- });
642
-
643
- it('should track that winning bid render time', function () {
644
- let openxBidder = find(auction.adUnits[0].bidRequests, bidderRequest => bidderRequest.bidder === 'openx');
645
- expect(openxBidder.bidResponses[0]).to.contain({renderTime: CURRENT_TIME});
646
- });
647
-
648
- it('should track that the auction completed', function () {
649
- expect(auction.state).to.equal(AUCTION_STATES.COMPLETED);
650
- });
18
+ expect(spy.firstCall.args[0]).to.match(/OpenX Analytics has been deprecated/);
651
19
  });
652
20
  });
653
21
  });
@@ -952,7 +952,7 @@ describe('OpenxRtbAdapter', function () {
952
952
  let bidResponse;
953
953
  let bid;
954
954
 
955
- context('when there is no response', function () {
955
+ context('when there is an nbr response', function () {
956
956
  let bids;
957
957
  beforeEach(function () {
958
958
  bidRequestConfigs = [{
@@ -983,6 +983,37 @@ describe('OpenxRtbAdapter', function () {
983
983
  });
984
984
  });
985
985
 
986
+ context('when there is no response', function () {
987
+ let bids;
988
+ beforeEach(function () {
989
+ bidRequestConfigs = [{
990
+ bidder: 'openx',
991
+ params: {
992
+ unit: '12345678',
993
+ delDomain: 'test-del-domain'
994
+ },
995
+ adUnitCode: 'adunit-code',
996
+ mediaTypes: {
997
+ banner: {
998
+ sizes: [[300, 250], [300, 600]],
999
+ },
1000
+ },
1001
+ bidId: 'test-bid-id',
1002
+ bidderRequestId: 'test-bidder-request-id',
1003
+ auctionId: 'test-auction-id'
1004
+ }];
1005
+
1006
+ bidRequest = spec.buildRequests(bidRequestConfigs, {refererInfo: {}})[0];
1007
+
1008
+ bidResponse = ''; // Unknown error
1009
+ bids = spec.interpretResponse({body: bidResponse}, bidRequest);
1010
+ });
1011
+
1012
+ it('should not return any bids', function () {
1013
+ expect(bids.length).to.equal(0);
1014
+ });
1015
+ });
1016
+
986
1017
  context('when there is a response, the common response properties', function () {
987
1018
  beforeEach(function () {
988
1019
  bidRequestConfigs = [{