prebid.js 7.22.0 → 7.24.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 (314) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/aaxBlockmeterRtdProvider.js +1 -0
  3. package/dist/adagioBidAdapter.js +1 -1
  4. package/dist/adbookpspBidAdapter.js +1 -1
  5. package/dist/adgenerationBidAdapter.js +1 -1
  6. package/dist/admaticBidAdapter.js +1 -0
  7. package/dist/adrelevantisBidAdapter.js +1 -1
  8. package/dist/adtrgtmeBidAdapter.js +1 -1
  9. package/dist/adxcgBidAdapter.js +1 -1
  10. package/dist/adyoulikeBidAdapter.js +1 -1
  11. package/dist/ajaBidAdapter.js +1 -1
  12. package/dist/amxBidAdapter.js +1 -1
  13. package/dist/amxIdSystem.js +1 -1
  14. package/dist/analyticsAdapter.js +1 -1
  15. package/dist/appierAnalyticsAdapter.js +1 -1
  16. package/dist/appnexusBidAdapter.js +1 -1
  17. package/dist/asoBidAdapter.js +1 -1
  18. package/dist/audiencerunBidAdapter.js +1 -1
  19. package/dist/axonixBidAdapter.js +1 -1
  20. package/dist/bidViewability.js +1 -1
  21. package/dist/bidViewabilityIO.js +1 -1
  22. package/dist/bidglassBidAdapter.js +1 -1
  23. package/dist/big-richmediaBidAdapter.js +1 -1
  24. package/dist/bluebillywigBidAdapter.js +1 -1
  25. package/dist/bridgewellBidAdapter.js +1 -1
  26. package/dist/brightMountainMediaBidAdapter.js +1 -1
  27. package/dist/browsiRtdProvider.js +1 -1
  28. package/dist/carodaBidAdapter.js +1 -1
  29. package/dist/chtnwBidAdapter.js +1 -0
  30. package/dist/cleanioRtdProvider.js +1 -1
  31. package/dist/concertBidAdapter.js +1 -1
  32. package/dist/connectIdSystem.js +1 -1
  33. package/dist/connectadBidAdapter.js +1 -1
  34. package/dist/consentManagement.js +1 -1
  35. package/dist/consentManagementUsp.js +1 -1
  36. package/dist/consumableBidAdapter.js +1 -1
  37. package/dist/conversantBidAdapter.js +1 -1
  38. package/dist/craftBidAdapter.js +1 -1
  39. package/dist/criteoBidAdapter.js +1 -1
  40. package/dist/currency.js +1 -1
  41. package/dist/dependencies.json +19 -0
  42. package/dist/dfpAdServerVideo.js +1 -1
  43. package/dist/dgkeywordRtdProvider.js +1 -1
  44. package/dist/dspxBidAdapter.js +1 -1
  45. package/dist/eplanningBidAdapter.js +1 -1
  46. package/dist/finativeBidAdapter.js +1 -1
  47. package/dist/gdprEnforcement.js +1 -1
  48. package/dist/glimpseBidAdapter.js +1 -1
  49. package/dist/gmosspBidAdapter.js +1 -1
  50. package/dist/goldbachBidAdapter.js +1 -1
  51. package/dist/googleAnalyticsAdapter.js +1 -1
  52. package/dist/gridBidAdapter.js +1 -1
  53. package/dist/gridNMBidAdapter.js +1 -1
  54. package/dist/growthCodeIdSystem.js +1 -1
  55. package/dist/gumgumBidAdapter.js +1 -1
  56. package/dist/h12mediaBidAdapter.js +1 -1
  57. package/dist/id5AnalyticsAdapter.js +1 -1
  58. package/dist/id5IdSystem.js +1 -1
  59. package/dist/impactifyBidAdapter.js +1 -1
  60. package/dist/improvedigitalBidAdapter.js +1 -1
  61. package/dist/inmarBidAdapter.js +1 -1
  62. package/dist/insticatorBidAdapter.js +1 -1
  63. package/dist/instreamTracking.js +1 -1
  64. package/dist/ixBidAdapter.js +1 -1
  65. package/dist/jixieBidAdapter.js +1 -1
  66. package/dist/justpremiumBidAdapter.js +1 -1
  67. package/dist/jwplayerVideoProvider.js +1 -0
  68. package/dist/kargoBidAdapter.js +1 -1
  69. package/dist/konduitAnalyticsAdapter.js +1 -1
  70. package/dist/kueezBidAdapter.js +1 -1
  71. package/dist/kueezRtbBidAdapter.js +1 -0
  72. package/dist/lassoBidAdapter.js +1 -1
  73. package/dist/lifestreetBidAdapter.js +1 -1
  74. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  75. package/dist/logicadBidAdapter.js +1 -1
  76. package/dist/loglyliftBidAdapter.js +1 -1
  77. package/dist/magniteAnalyticsAdapter.js +1 -1
  78. package/dist/malltvAnalyticsAdapter.js +1 -1
  79. package/dist/marsmediaBidAdapter.js +1 -1
  80. package/dist/mediafuseBidAdapter.js +1 -1
  81. package/dist/mediakeysBidAdapter.js +1 -1
  82. package/dist/mediasquareBidAdapter.js +1 -1
  83. package/dist/mgidBidAdapter.js +1 -1
  84. package/dist/mgidRtdProvider.js +1 -0
  85. package/dist/minutemediaBidAdapter.js +1 -1
  86. package/dist/multibid.js +1 -1
  87. package/dist/not-for-prod/prebid.js +153 -141
  88. package/dist/oguryBidAdapter.js +1 -1
  89. package/dist/onetagBidAdapter.js +1 -1
  90. package/dist/ooloAnalyticsAdapter.js +1 -1
  91. package/dist/openxOrtbBidAdapter.js +1 -1
  92. package/dist/ortbConverter.js +1 -0
  93. package/dist/outbrainBidAdapter.js +1 -1
  94. package/dist/oxxionRtdProvider.js +1 -0
  95. package/dist/parrableIdSystem.js +1 -1
  96. package/dist/pbsExtensions.js +1 -0
  97. package/dist/permutiveRtdProvider.js +1 -1
  98. package/dist/pixfutureBidAdapter.js +1 -1
  99. package/dist/prebid-core.js +1 -1
  100. package/dist/prebidServerBidAdapter.js +1 -1
  101. package/dist/priceFloors.js +1 -1
  102. package/dist/pubCommonId.js +1 -1
  103. package/dist/publinkIdSystem.js +1 -1
  104. package/dist/pubmaticBidAdapter.js +1 -1
  105. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  106. package/dist/pxyzBidAdapter.js +1 -1
  107. package/dist/quantcastBidAdapter.js +1 -1
  108. package/dist/readpeakBidAdapter.js +1 -1
  109. package/dist/relaidoBidAdapter.js +1 -1
  110. package/dist/rhythmoneBidAdapter.js +1 -1
  111. package/dist/riseBidAdapter.js +1 -1
  112. package/dist/rtdModule.js +1 -1
  113. package/dist/rubiconAnalyticsAdapter.js +1 -1
  114. package/dist/rubiconBidAdapter.js +1 -1
  115. package/dist/schain.js +1 -1
  116. package/dist/seedingAllianceBidAdapter.js +1 -1
  117. package/dist/seedtagBidAdapter.js +1 -1
  118. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  119. package/dist/sharethroughBidAdapter.js +1 -1
  120. package/dist/shinezBidAdapter.js +1 -1
  121. package/dist/smaatoBidAdapter.js +1 -1
  122. package/dist/smartadserverBidAdapter.js +1 -1
  123. package/dist/smartxBidAdapter.js +1 -1
  124. package/dist/smilewantedBidAdapter.js +1 -1
  125. package/dist/sonobiBidAdapter.js +1 -1
  126. package/dist/sovrnAnalyticsAdapter.js +1 -1
  127. package/dist/sovrnBidAdapter.js +1 -1
  128. package/dist/spotxBidAdapter.js +1 -1
  129. package/dist/sspBCBidAdapter.js +1 -1
  130. package/dist/sublimeBidAdapter.js +1 -1
  131. package/dist/synacormediaBidAdapter.js +1 -1
  132. package/dist/targetVideoBidAdapter.js +1 -1
  133. package/dist/teadsBidAdapter.js +1 -1
  134. package/dist/teadsIdSystem.js +1 -1
  135. package/dist/trionBidAdapter.js +1 -1
  136. package/dist/tripleliftBidAdapter.js +1 -1
  137. package/dist/ttdBidAdapter.js +1 -1
  138. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  139. package/dist/underdogmediaBidAdapter.js +1 -1
  140. package/dist/undertoneBidAdapter.js +1 -1
  141. package/dist/userId.js +1 -1
  142. package/dist/vidazooBidAdapter.js +1 -1
  143. package/dist/video.js +1 -0
  144. package/dist/videoModule.js +1 -0
  145. package/dist/videobyteBidAdapter.js +1 -1
  146. package/dist/videojsVideoProvider.js +1 -0
  147. package/dist/visxBidAdapter.js +1 -1
  148. package/dist/vuukleBidAdapter.js +1 -1
  149. package/dist/widespaceBidAdapter.js +1 -1
  150. package/dist/winrBidAdapter.js +1 -1
  151. package/dist/yahoosspBidAdapter.js +1 -1
  152. package/dist/yieldmoBidAdapter.js +1 -1
  153. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  154. package/integrationExamples/gpt/mgidRtdProvider_example.html +143 -0
  155. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +98 -0
  156. package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +89 -0
  157. package/integrationExamples/videoModule/jwplayer/eventListeners.html +244 -0
  158. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +122 -0
  159. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +80 -0
  160. package/integrationExamples/videoModule/jwplayer/playlist.html +122 -0
  161. package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +126 -0
  162. package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +132 -0
  163. package/integrationExamples/videoModule/videojs/eventListeners.html +238 -0
  164. package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +138 -0
  165. package/integrationExamples/videoModule/videojs/mediaMetadata.html +103 -0
  166. package/integrationExamples/videoModule/videojs/playlist.html +151 -0
  167. package/libraries/ortbConverter/README.md +378 -0
  168. package/libraries/ortbConverter/converter.js +135 -0
  169. package/libraries/ortbConverter/lib/composer.js +43 -0
  170. package/libraries/ortbConverter/lib/mergeProcessors.js +9 -0
  171. package/libraries/ortbConverter/lib/sizes.js +14 -0
  172. package/libraries/ortbConverter/processors/banner.js +40 -0
  173. package/libraries/ortbConverter/processors/default.js +167 -0
  174. package/libraries/ortbConverter/processors/mediaType.js +21 -0
  175. package/libraries/ortbConverter/processors/native.js +37 -0
  176. package/libraries/ortbConverter/processors/video.js +66 -0
  177. package/libraries/pbsExtensions/pbsExtensions.js +12 -0
  178. package/libraries/pbsExtensions/processors/aliases.js +17 -0
  179. package/libraries/pbsExtensions/processors/mediaType.js +23 -0
  180. package/libraries/pbsExtensions/processors/params.js +22 -0
  181. package/libraries/pbsExtensions/processors/pbs.js +99 -0
  182. package/libraries/pbsExtensions/processors/requestExtPrebid.js +30 -0
  183. package/libraries/pbsExtensions/processors/video.js +23 -0
  184. package/libraries/video/constants/enums.js +5 -0
  185. package/libraries/video/constants/events.js +97 -0
  186. package/libraries/video/constants/ortb.js +169 -0
  187. package/libraries/video/constants/vendorCodes.js +6 -0
  188. package/libraries/video/shared/eventHandler.js +18 -0
  189. package/libraries/video/shared/parentModule.js +82 -0
  190. package/libraries/video/shared/state.js +47 -0
  191. package/libraries/video/shared/vastXmlBuilder.js +77 -0
  192. package/libraries/video/shared/vastXmlEditor.js +115 -0
  193. package/modules/.submodules.json +7 -1
  194. package/modules/aaxBlockmeterRtdProvider.js +59 -0
  195. package/modules/aaxBlockmeterRtdProvider.md +48 -0
  196. package/modules/admaticBidAdapter.js +147 -0
  197. package/modules/admaticBidAdapter.md +48 -0
  198. package/modules/amxBidAdapter.js +1 -0
  199. package/modules/appnexusBidAdapter.js +38 -1
  200. package/modules/chtnwBidAdapter.js +110 -0
  201. package/modules/chtnwBidAdapter.md +31 -0
  202. package/modules/concertBidAdapter.js +44 -2
  203. package/modules/connectIdSystem.js +36 -23
  204. package/modules/connectIdSystem.md +3 -2
  205. package/modules/consentManagement.js +22 -1
  206. package/modules/consentManagementUsp.js +29 -7
  207. package/modules/criteoBidAdapter.js +25 -5
  208. package/modules/currency.js +9 -0
  209. package/modules/dgkeywordRtdProvider.js +3 -3
  210. package/modules/gridNMBidAdapter.js +10 -14
  211. package/modules/growthCodeIdSystem.js +9 -5
  212. package/modules/gumgumBidAdapter.js +4 -0
  213. package/modules/improvedigitalBidAdapter.js +191 -470
  214. package/modules/ixBidAdapter.js +54 -71
  215. package/modules/jwplayerVideoProvider.js +929 -0
  216. package/modules/jwplayerVideoProvider.md +25 -0
  217. package/modules/kargoBidAdapter.js +1 -1
  218. package/modules/kueezRtbBidAdapter.js +278 -0
  219. package/modules/kueezRtbBidAdapter.md +35 -0
  220. package/modules/magniteAnalyticsAdapter.js +6 -1
  221. package/modules/mgidRtdProvider.js +190 -0
  222. package/modules/mgidRtdProvider.md +51 -0
  223. package/modules/multibid/index.js +12 -0
  224. package/modules/openxOrtbBidAdapter.js +120 -275
  225. package/modules/oxxionRtdProvider.js +119 -0
  226. package/modules/oxxionRtdProvider.md +48 -0
  227. package/modules/permutiveRtdProvider.js +2 -1
  228. package/modules/permutiveRtdProvider.md +36 -1
  229. package/modules/prebidServerBidAdapter/index.js +19 -716
  230. package/modules/prebidServerBidAdapter/ortbConverter.js +274 -0
  231. package/modules/priceFloors.js +73 -1
  232. package/modules/pubmaticBidAdapter.js +21 -29
  233. package/modules/rtdModule/index.js +22 -1
  234. package/modules/schain.js +24 -1
  235. package/modules/spotxBidAdapter.js +16 -15
  236. package/modules/synacormediaBidAdapter.js +1 -1
  237. package/modules/teadsIdSystem.js +5 -0
  238. package/modules/tripleliftBidAdapter.js +1 -1
  239. package/modules/userId/eids.js +3 -10
  240. package/modules/userId/index.js +64 -6
  241. package/modules/videoModule/addingSubmodule.md +521 -0
  242. package/modules/videoModule/coreVideo.js +234 -0
  243. package/modules/videoModule/gamAdServerSubmodule.js +27 -0
  244. package/modules/videoModule/index.js +244 -0
  245. package/modules/videoModule/videoImpressionVerifier.js +206 -0
  246. package/modules/videojsVideoProvider.js +854 -0
  247. package/modules/videojsVideoProvider.md +17 -0
  248. package/package.json +12 -8
  249. package/src/adRendering.js +1 -1
  250. package/src/adapterManager.js +56 -7
  251. package/src/adloader.js +3 -1
  252. package/src/auction.js +6 -1
  253. package/src/events.js +5 -1
  254. package/src/pbjsORTB.js +35 -0
  255. package/src/prebid.js +137 -112
  256. package/src/targeting.js +10 -2
  257. package/src/utils/currency.js +16 -0
  258. package/src/utils.js +21 -0
  259. package/test/spec/auctionmanager_spec.js +15 -0
  260. package/test/spec/modules/aaxBlockmeter_spec.js +58 -0
  261. package/test/spec/modules/admaticBidAdapter_spec.js +46 -0
  262. package/test/spec/modules/chtnwBidAdapter_spec.js +105 -0
  263. package/test/spec/modules/concertBidAdapter_spec.js +56 -0
  264. package/test/spec/modules/connectIdSystem_spec.js +175 -5
  265. package/test/spec/modules/consentManagementUsp_spec.js +64 -18
  266. package/test/spec/modules/criteoBidAdapter_spec.js +28 -0
  267. package/test/spec/modules/dgkeywordRtdProvider_spec.js +3 -3
  268. package/test/spec/modules/eids_spec.js +10 -7
  269. package/test/spec/modules/ftrackIdSystem_spec.js +34 -22
  270. package/test/spec/modules/gumgumBidAdapter_spec.js +15 -0
  271. package/test/spec/modules/improvedigitalBidAdapter_spec.js +231 -211
  272. package/test/spec/modules/ixBidAdapter_spec.js +412 -350
  273. package/test/spec/modules/kueezRtbBidAdapter_spec.js +396 -0
  274. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +26 -0
  275. package/test/spec/modules/mgidRtdProvider_spec.js +366 -0
  276. package/test/spec/modules/openxOrtbBidAdapter_spec.js +77 -49
  277. package/test/spec/modules/oxxionRtdProvider_spec.js +142 -0
  278. package/test/spec/modules/permutiveRtdProvider_spec.js +64 -5
  279. package/test/spec/modules/prebidServerBidAdapter_spec.js +139 -137
  280. package/test/spec/modules/realTimeDataModule_spec.js +65 -0
  281. package/test/spec/modules/tripleliftBidAdapter_spec.js +14 -0
  282. package/test/spec/modules/userId_spec.js +67 -1
  283. package/test/spec/modules/videoModule/coreVideo_spec.js +98 -0
  284. package/test/spec/modules/videoModule/pbVideo_spec.js +362 -0
  285. package/test/spec/modules/videoModule/shared/parentModule_spec.js +73 -0
  286. package/test/spec/modules/videoModule/shared/state_spec.js +26 -0
  287. package/test/spec/modules/videoModule/shared/vastXmlBuilder_spec.js +103 -0
  288. package/test/spec/modules/videoModule/shared/vastXmlEditor_spec.js +209 -0
  289. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +846 -0
  290. package/test/spec/modules/videoModule/submodules/videojsVideoProvider_spec.js +391 -0
  291. package/test/spec/modules/videoModule/videoImpressionVerifier_spec.js +112 -0
  292. package/test/spec/ortbConverter/banner_spec.js +203 -0
  293. package/test/spec/ortbConverter/composer_spec.js +69 -0
  294. package/test/spec/ortbConverter/converter_spec.js +283 -0
  295. package/test/spec/ortbConverter/currency_spec.js +40 -0
  296. package/test/spec/ortbConverter/default_processors_spec.js +61 -0
  297. package/test/spec/ortbConverter/gdpr_spec.js +38 -0
  298. package/test/spec/ortbConverter/mediaTypes_spec.js +67 -0
  299. package/test/spec/ortbConverter/mergeProcessors_spec.js +59 -0
  300. package/test/spec/ortbConverter/multibid_spec.js +35 -0
  301. package/test/spec/ortbConverter/native_spec.js +95 -0
  302. package/test/spec/ortbConverter/pbjsORTB_spec.js +67 -0
  303. package/test/spec/ortbConverter/pbsExtensions/aliases_spec.js +57 -0
  304. package/test/spec/ortbConverter/pbsExtensions/params_spec.js +96 -0
  305. package/test/spec/ortbConverter/pbsExtensions/video_spec.js +52 -0
  306. package/test/spec/ortbConverter/priceFloors_spec.js +143 -0
  307. package/test/spec/ortbConverter/schain_spec.js +33 -0
  308. package/test/spec/ortbConverter/userId_spec.js +21 -0
  309. package/test/spec/ortbConverter/usp_spec.js +15 -0
  310. package/test/spec/ortbConverter/video_spec.js +189 -0
  311. package/test/spec/unit/core/adapterManager_spec.js +102 -0
  312. package/test/spec/unit/core/targeting_spec.js +34 -0
  313. package/test/spec/unit/pbjs_api_spec.js +124 -45
  314. package/test/spec/utils_spec.js +45 -1
@@ -16,15 +16,15 @@ import {
16
16
  parseQueryStringParameters,
17
17
  safeJSONParse
18
18
  } from '../src/utils.js';
19
- import {BANNER, VIDEO, NATIVE} from '../src/mediaTypes.js';
20
- import {config} from '../src/config.js';
19
+ import { BANNER, VIDEO, NATIVE } from '../src/mediaTypes.js';
20
+ import { config } from '../src/config.js';
21
21
  import CONSTANTS from '../src/constants.json';
22
- import {getStorageManager} from '../src/storageManager.js';
22
+ import { getStorageManager } from '../src/storageManager.js';
23
23
  import * as events from '../src/events.js';
24
- import {find} from '../src/polyfill.js';
25
- import {registerBidder} from '../src/adapters/bidderFactory.js';
26
- import {INSTREAM, OUTSTREAM} from '../src/video.js';
27
- import {Renderer} from '../src/Renderer.js';
24
+ import { find } from '../src/polyfill.js';
25
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
26
+ import { INSTREAM, OUTSTREAM } from '../src/video.js';
27
+ import { Renderer } from '../src/Renderer.js';
28
28
 
29
29
  const BIDDER_CODE = 'ix';
30
30
  const ALIAS_BIDDER_CODE = 'roundel';
@@ -38,7 +38,6 @@ const BANNER_TIME_TO_LIVE = 300;
38
38
  const VIDEO_TIME_TO_LIVE = 3600; // 1hr
39
39
  const NATIVE_TIME_TO_LIVE = 3600; // Since native can have video, use ttl same as video
40
40
  const NET_REVENUE = true;
41
- const MAX_REQUEST_SIZE = 8000;
42
41
  const MAX_REQUEST_LIMIT = 4;
43
42
  const OUTSTREAM_MINIMUM_PLAYER_SIZE = [144, 144];
44
43
  const PRICE_TO_DOLLAR_FACTOR = {
@@ -102,13 +101,13 @@ const VIDEO_PARAMS_ALLOW_LIST = [
102
101
  const LOCAL_STORAGE_KEY = 'ixdiag';
103
102
  export const LOCAL_STORAGE_FEATURE_TOGGLES_KEY = `${BIDDER_CODE}_features`;
104
103
  let hasRegisteredHandler = false;
105
- export const storage = getStorageManager({gvlid: GLOBAL_VENDOR_ID, bidderCode: BIDDER_CODE});
104
+ export const storage = getStorageManager({ gvlid: GLOBAL_VENDOR_ID, bidderCode: BIDDER_CODE });
106
105
  export const FEATURE_TOGGLES = {
107
106
  featureToggles: {},
108
- isFeatureEnabled: function(ft) {
107
+ isFeatureEnabled: function (ft) {
109
108
  return deepAccess(this.featureToggles, `features.${ft}.activated`)
110
109
  },
111
- getFeatureToggles: function() {
110
+ getFeatureToggles: function () {
112
111
  if (storage.localStorageIsEnabled()) {
113
112
  const parsedToggles = safeJSONParse(storage.getDataFromLocalStorage(LOCAL_STORAGE_FEATURE_TOGGLES_KEY));
114
113
  if (deepAccess(parsedToggles, 'expiry') && parsedToggles.expiry >= new Date().getTime()) {
@@ -118,7 +117,7 @@ export const FEATURE_TOGGLES = {
118
117
  }
119
118
  }
120
119
  },
121
- setFeatureToggles: function(serverResponse) {
120
+ setFeatureToggles: function (serverResponse) {
122
121
  const responseBody = serverResponse.body;
123
122
  const expiryTime = new Date();
124
123
  const toggles = deepAccess(responseBody, 'ext.features');
@@ -133,7 +132,7 @@ export const FEATURE_TOGGLES = {
133
132
  }
134
133
  }
135
134
  },
136
- clearFeatureToggles: function() {
135
+ clearFeatureToggles: function () {
137
136
  this.featureToggles = {};
138
137
  if (storage.localStorageIsEnabled()) {
139
138
  storage.removeDataFromLocalStorage(LOCAL_STORAGE_FEATURE_TOGGLES_KEY);
@@ -159,7 +158,7 @@ const MEDIA_TYPES = {
159
158
  * @return {object} A impression object that will be sent to ad server.
160
159
  */
161
160
  function bidToBannerImp(bid) {
162
- const imp = bidToImp(bid);
161
+ const imp = bidToImp(bid, BANNER);
163
162
  imp.banner = {};
164
163
  const impSize = deepAccess(bid, 'params.size');
165
164
  if (impSize) {
@@ -181,7 +180,7 @@ function bidToBannerImp(bid) {
181
180
  * @return {object} A impression object that will be sent to ad server.
182
181
  */
183
182
  function bidToVideoImp(bid) {
184
- const imp = bidToImp(bid);
183
+ const imp = bidToImp(bid, VIDEO);
185
184
  const videoAdUnitRef = deepAccess(bid, 'mediaTypes.video');
186
185
  const videoParamRef = deepAccess(bid, 'params.video');
187
186
  const videoParamErrors = checkVideoParams(videoAdUnitRef, videoParamRef);
@@ -249,7 +248,7 @@ function bidToVideoImp(bid) {
249
248
  * @return {object} A impression object that will be sent to ad server.
250
249
  */
251
250
  function bidToNativeImp(bid) {
252
- const imp = bidToImp(bid);
251
+ const imp = bidToImp(bid, NATIVE);
253
252
 
254
253
  const request = bid.nativeOrtbRequest
255
254
  request.eventtrackers = [{
@@ -276,13 +275,28 @@ function bidToNativeImp(bid) {
276
275
  * @param {object} bid PBJS bid object
277
276
  * @returns {object} IX impression object
278
277
  */
279
- function bidToImp(bid) {
278
+ function bidToImp(bid, mediaType) {
280
279
  const imp = {};
281
280
 
282
281
  imp.id = bid.bidId;
283
282
 
284
283
  imp.ext = {};
285
- imp.ext.siteID = bid.params.siteId.toString();
284
+
285
+ if (deepAccess(bid, `params.${mediaType}.siteId`) && !isNaN(Number(bid.params[mediaType].siteId))) {
286
+ switch (mediaType) {
287
+ case BANNER:
288
+ imp.ext.siteID = bid.params.banner.siteId.toString();
289
+ break;
290
+ case VIDEO:
291
+ imp.ext.siteID = bid.params.video.siteId.toString();
292
+ break;
293
+ case NATIVE:
294
+ imp.ext.siteID = bid.params.native.siteId.toString();
295
+ break;
296
+ }
297
+ } else {
298
+ imp.ext.siteID = bid.params.siteId.toString();
299
+ }
286
300
 
287
301
  // populate imp level sid
288
302
  if (bid.params.hasOwnProperty('id') && (typeof bid.params.id === 'string' || typeof bid.params.id === 'number')) {
@@ -391,7 +405,7 @@ function parseBid(rawBid, currency, bidRequest) {
391
405
  bid.mediaTypes = bidRequest.mediaTypes;
392
406
  bid.ttl = isValidExpiry ? rawBid.exp : VIDEO_TIME_TO_LIVE;
393
407
  } else if (parsedAdm && parsedAdm.native) {
394
- bid.native = {ortb: parsedAdm.native};
408
+ bid.native = { ortb: parsedAdm.native };
395
409
  bid.width = rawBid.w ? rawBid.w : 1;
396
410
  bid.height = rawBid.h ? rawBid.h : 1;
397
411
  bid.mediaType = NATIVE;
@@ -586,6 +600,12 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
586
600
  let userEids = eidInfo.toSend;
587
601
  const pageUrl = deepAccess(bidderRequest, 'refererInfo.page');
588
602
 
603
+ let MAX_REQUEST_SIZE = 8000;
604
+ // Modify request size limit if its FT is enabeld.
605
+ if (FEATURE_TOGGLES.isFeatureEnabled('pbjs_use_32kb_size_limit')) {
606
+ MAX_REQUEST_SIZE = 32000
607
+ }
608
+
589
609
  // RTI ids will be included in the bid request if the function getIdentityInfo() is loaded
590
610
  // and if the data for the partner exist
591
611
  if (window.headertag && typeof window.headertag.getIdentityInfo === 'function') {
@@ -642,6 +662,9 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
642
662
  r.ext.ixdiag.err = cachedErrors;
643
663
  }
644
664
 
665
+ // Add number of available imps to ixDiag.
666
+ r.ext.ixdiag.imps = Object.keys(impressions).length;
667
+
645
668
  // set source.tid to auctionId for outgoing request to Exchange.
646
669
  r.source = {
647
670
  tid: validBidRequests[0].auctionId,
@@ -708,18 +731,6 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
708
731
  siteID = validBidRequests[0].params.siteId;
709
732
  payload.s = siteID;
710
733
 
711
- if (!FEATURE_TOGGLES.isFeatureEnabled('pbjs_enable_post')) {
712
- if (version) {
713
- payload.v = version;
714
- }
715
- payload.ac = 'j';
716
- payload.sd = 1;
717
-
718
- if (version === VIDEO_ENDPOINT_VERSION) {
719
- payload.nf = 1;
720
- }
721
- }
722
-
723
734
  // Parse additional runtime configs.
724
735
  const bidderCode = (bidderRequest && bidderRequest.bidderCode) || 'ix';
725
736
  const otherIxConfig = config.getConfig(bidderCode);
@@ -762,13 +773,6 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
762
773
  logError('IX Bid Adapter: IX config FPD request size has exceeded maximum request size.', { bidder: BIDDER_CODE, code: ERROR_CODES.IX_FPD_EXCEEDS_MAX_SIZE });
763
774
  }
764
775
  }
765
-
766
- if (!FEATURE_TOGGLES.isFeatureEnabled('pbjs_enable_post')) {
767
- // Create t in payload if timeout is configured.
768
- if (typeof otherIxConfig.timeout === 'number') {
769
- payload.t = otherIxConfig.timeout;
770
- }
771
- }
772
776
  }
773
777
 
774
778
  for (let adUnitIndex = 0; adUnitIndex < transactionIds.length; adUnitIndex++) {
@@ -909,36 +913,21 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
909
913
  const isLastAdUnit = adUnitIndex === transactionIds.length - 1;
910
914
 
911
915
  if (wasAdUnitImpressionsTrimmed || isLastAdUnit) {
912
- const clonedPayload = deepClone(payload);
913
916
  if (!isLastAdUnit || requestSequenceNumber) {
914
917
  r.ext.ixdiag.sn = requestSequenceNumber;
915
- clonedPayload.sn = requestSequenceNumber;
916
918
  }
917
919
 
918
920
  requestSequenceNumber++;
919
- clonedPayload.r = JSON.stringify(r);
920
-
921
- let requestData;
922
-
923
- if (FEATURE_TOGGLES.isFeatureEnabled('pbjs_enable_post')) {
924
- requestData = {
925
- method: 'POST',
926
- url: baseUrl + '?s=' + payload.s,
927
- data: deepClone(r),
928
- option: {
929
- contentType: 'text/plain',
930
- },
931
- validBidRequests
932
- }
933
- } else {
934
- requestData = {
935
- method: 'GET',
936
- url: baseUrl,
937
- data: clonedPayload,
938
- validBidRequests
939
- }
940
- }
941
- requests.push(requestData);
921
+
922
+ requests.push({
923
+ method: 'POST',
924
+ url: baseUrl + '?s=' + siteID,
925
+ data: deepClone(r),
926
+ option: {
927
+ contentType: 'text/plain',
928
+ },
929
+ validBidRequests
930
+ });
942
931
 
943
932
  currentRequestSize = baseRequestSize;
944
933
  r.imp = [];
@@ -1452,7 +1441,7 @@ export const spec = {
1452
1441
 
1453
1442
  // Step 1: Create impresssions from IX params
1454
1443
  validBidRequests.forEach((validBidRequest) => {
1455
- const adUnitMediaTypes = Object.keys(deepAccess(validBidRequest, 'mediaTypes', {}))
1444
+ const adUnitMediaTypes = Object.keys(deepAccess(validBidRequest, 'mediaTypes', {}));
1456
1445
 
1457
1446
  for (const type in adUnitMediaTypes) {
1458
1447
  switch (adUnitMediaTypes[type]) {
@@ -1532,13 +1521,7 @@ export const spec = {
1532
1521
 
1533
1522
  // Transform rawBid in bid response to the format that will be accepted by prebid.
1534
1523
  const innerBids = seatbid[i].bid;
1535
- let requestBid;
1536
-
1537
- if (FEATURE_TOGGLES.isFeatureEnabled('pbjs_enable_post')) {
1538
- requestBid = bidderRequest.data;
1539
- } else {
1540
- requestBid = safeJSONParse(bidderRequest.data.r);
1541
- }
1524
+ const requestBid = bidderRequest.data;
1542
1525
 
1543
1526
  for (let j = 0; j < innerBids.length; j++) {
1544
1527
  const bidRequest = getBidRequest(innerBids[j].impid, requestBid.imp, bidderRequest.validBidRequests);