prebid.js 9.26.0 → 9.28.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 (305) hide show
  1. package/creative/renderers/native/renderer.js +29 -8
  2. package/dist/33acrossAnalyticsAdapter.js +1 -1
  3. package/dist/33acrossBidAdapter.js +1 -1
  4. package/dist/33acrossIdSystem.js +1 -1
  5. package/dist/BTBidAdapter.js +1 -1
  6. package/dist/acuityadsBidAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adagioRtdProvider.js +1 -1
  10. package/dist/adagioUtils.js +1 -1
  11. package/dist/addefendBidAdapter.js +1 -1
  12. package/dist/adgenerationBidAdapter.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/adqueryBidAdapter.js +1 -1
  17. package/dist/adrelevantisBidAdapter.js +1 -1
  18. package/dist/adstirBidAdapter.js +1 -1
  19. package/dist/adtrgtmeBidAdapter.js +1 -1
  20. package/dist/adxcgAnalyticsAdapter.js +1 -1
  21. package/dist/adxcgBidAdapter.js +1 -1
  22. package/dist/adyoulikeBidAdapter.js +1 -1
  23. package/dist/agmaAnalyticsAdapter.js +1 -1
  24. package/dist/ajaBidAdapter.js +1 -1
  25. package/dist/akamaiDapRtdProvider.js +1 -1
  26. package/dist/amxBidAdapter.js +1 -1
  27. package/dist/amxIdSystem.js +1 -1
  28. package/dist/aniviewBidAdapter.js +1 -1
  29. package/dist/appierAnalyticsAdapter.js +1 -1
  30. package/dist/appnexusBidAdapter.js +1 -1
  31. package/dist/asoBidAdapter.js +1 -1
  32. package/dist/axonixBidAdapter.js +1 -1
  33. package/dist/bidglassBidAdapter.js +1 -1
  34. package/dist/big-richmediaBidAdapter.js +1 -1
  35. package/dist/bitmediaBidAdapter.js +1 -1
  36. package/dist/blueBidAdapter.js +1 -0
  37. package/dist/bridBidAdapter.js +1 -1
  38. package/dist/bridgeuppBidAdapter.js +1 -1
  39. package/dist/bridgewellBidAdapter.js +1 -1
  40. package/dist/brightMountainMediaBidAdapter.js +1 -1
  41. package/dist/carodaBidAdapter.js +1 -1
  42. package/dist/chtnwBidAdapter.js +1 -1
  43. package/dist/chunk-core.js +1 -1
  44. package/dist/conceptxBidAdapter.js +1 -1
  45. package/dist/concertBidAdapter.js +1 -1
  46. package/dist/connectadBidAdapter.js +1 -1
  47. package/dist/consumableBidAdapter.js +1 -1
  48. package/dist/contxtfulBidAdapter.js +1 -1
  49. package/dist/contxtfulRtdProvider.js +1 -1
  50. package/dist/conversantAnalyticsAdapter.js +1 -1
  51. package/dist/conversantBidAdapter.js +1 -1
  52. package/dist/craftBidAdapter.js +1 -1
  53. package/dist/creative-renderer-native.js +1 -1
  54. package/dist/criteoBidAdapter.js +1 -1
  55. package/dist/cwireBidAdapter.js +1 -1
  56. package/dist/dailymotionBidAdapter.js +1 -1
  57. package/dist/dependencies.json +7 -1
  58. package/dist/dspxBidAdapter.js +1 -1
  59. package/dist/dxkultureBidAdapter.js +1 -1
  60. package/dist/eplanningBidAdapter.js +1 -1
  61. package/dist/equativBidAdapter.js +1 -1
  62. package/dist/escalaxBidAdapter.js +1 -1
  63. package/dist/eskimiBidAdapter.js +1 -1
  64. package/dist/euidIdSystem.js +1 -1
  65. package/dist/exadsBidAdapter.js +1 -1
  66. package/dist/feedadBidAdapter.js +1 -1
  67. package/dist/finativeBidAdapter.js +1 -1
  68. package/dist/freewheel-sspBidAdapter.js +1 -1
  69. package/dist/gmosspBidAdapter.js +1 -1
  70. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  71. package/dist/greenbidsBidAdapter.js +1 -1
  72. package/dist/greenbidsRtdProvider.js +1 -1
  73. package/dist/gridBidAdapter.js +1 -1
  74. package/dist/gumgumBidAdapter.js +1 -1
  75. package/dist/h12mediaBidAdapter.js +1 -1
  76. package/dist/hypelabBidAdapter.js +1 -1
  77. package/dist/id5AnalyticsAdapter.js +1 -1
  78. package/dist/id5IdSystem.js +1 -1
  79. package/dist/imdsBidAdapter.js +1 -1
  80. package/dist/improvedigitalBidAdapter.js +1 -1
  81. package/dist/inmobiBidAdapter.js +1 -1
  82. package/dist/insticatorBidAdapter.js +1 -1
  83. package/dist/intentIqAnalyticsAdapter.js +1 -1
  84. package/dist/intentIqConstants.js +1 -1
  85. package/dist/ixBidAdapter.js +1 -1
  86. package/dist/jixieBidAdapter.js +1 -1
  87. package/dist/justpremiumBidAdapter.js +1 -1
  88. package/dist/jwplayerVideoProvider.js +1 -1
  89. package/dist/kargoBidAdapter.js +1 -1
  90. package/dist/kimberliteBidAdapter.js +1 -1
  91. package/dist/konduitAnalyticsAdapter.js +1 -1
  92. package/dist/kueezBidAdapter.js +1 -1
  93. package/dist/lassoBidAdapter.js +1 -1
  94. package/dist/lifestreetBidAdapter.js +1 -1
  95. package/dist/liveIntentId.js +1 -1
  96. package/dist/liveIntentIdSystem.js +1 -1
  97. package/dist/liveIntentRtdProvider.js +1 -0
  98. package/dist/logicadBidAdapter.js +1 -1
  99. package/dist/loglyliftBidAdapter.js +1 -1
  100. package/dist/luceadBidAdapter.js +1 -1
  101. package/dist/mabidderBidAdapter.js +1 -1
  102. package/dist/madsenseBidAdapter.js +1 -1
  103. package/dist/magniteAnalyticsAdapter.js +1 -1
  104. package/dist/malltvAnalyticsAdapter.js +1 -1
  105. package/dist/marsmediaBidAdapter.js +1 -1
  106. package/dist/mediafuseBidAdapter.js +1 -1
  107. package/dist/medianetAnalyticsAdapter.js +1 -1
  108. package/dist/medianetBidAdapter.js +1 -1
  109. package/dist/mediasquareBidAdapter.js +1 -1
  110. package/dist/mgidBidAdapter.js +1 -1
  111. package/dist/minutemediaBidAdapter.js +1 -1
  112. package/dist/missenaBidAdapter.js +1 -1
  113. package/dist/mspa.js +1 -1
  114. package/dist/nativeRendering.js +1 -1
  115. package/dist/nextMillenniumBidAdapter.js +1 -1
  116. package/dist/nexx360BidAdapter.js +1 -1
  117. package/dist/nobidAnalyticsAdapter.js +1 -1
  118. package/dist/nobidBidAdapter.js +1 -1
  119. package/dist/not-for-prod/prebid.js +193 -191
  120. package/dist/oguryBidAdapter.js +1 -1
  121. package/dist/omsBidAdapter.js +1 -1
  122. package/dist/onetagBidAdapter.js +1 -1
  123. package/dist/ooloAnalyticsAdapter.js +1 -1
  124. package/dist/openwebBidAdapter.js +1 -1
  125. package/dist/openxBidAdapter.js +1 -1
  126. package/dist/optidigitalBidAdapter.js +1 -1
  127. package/dist/orbidderBidAdapter.js +1 -1
  128. package/dist/orbitsoftBidAdapter.js +1 -1
  129. package/dist/outbrainBidAdapter.js +1 -1
  130. package/dist/pixfutureBidAdapter.js +1 -1
  131. package/dist/publinkIdSystem.js +1 -1
  132. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  133. package/dist/pubmaticBidAdapter.js +1 -1
  134. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  135. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  136. package/dist/pxyzBidAdapter.js +1 -1
  137. package/dist/quantcastBidAdapter.js +1 -1
  138. package/dist/readpeakBidAdapter.js +1 -1
  139. package/dist/relaidoBidAdapter.js +1 -1
  140. package/dist/retailspotBidAdapter.js +1 -1
  141. package/dist/rhythmoneBidAdapter.js +1 -1
  142. package/dist/riseBidAdapter.js +1 -1
  143. package/dist/riseUtils.js +1 -1
  144. package/dist/rubiconBidAdapter.js +1 -1
  145. package/dist/seedingAllianceBidAdapter.js +1 -1
  146. package/dist/seedtagBidAdapter.js +1 -1
  147. package/dist/sharedIdSystem.js +1 -1
  148. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  149. package/dist/sharethroughBidAdapter.js +1 -1
  150. package/dist/shinezBidAdapter.js +1 -1
  151. package/dist/showheroes-bsBidAdapter.js +1 -1
  152. package/dist/sizeUtils.js +1 -1
  153. package/dist/smaatoBidAdapter.js +1 -1
  154. package/dist/smartadserverBidAdapter.js +1 -1
  155. package/dist/smartxBidAdapter.js +1 -1
  156. package/dist/smilewantedBidAdapter.js +1 -1
  157. package/dist/snigelBidAdapter.js +1 -1
  158. package/dist/sonobiBidAdapter.js +1 -1
  159. package/dist/sovrnBidAdapter.js +1 -1
  160. package/dist/sparteoBidAdapter.js +1 -1
  161. package/dist/sspBCBidAdapter.js +1 -1
  162. package/dist/stnBidAdapter.js +1 -1
  163. package/dist/stvBidAdapter.js +1 -1
  164. package/dist/sublimeBidAdapter.js +1 -1
  165. package/dist/symitriDapRtdProvider.js +1 -1
  166. package/dist/taboolaBidAdapter.js +1 -1
  167. package/dist/tappxBidAdapter.js +1 -1
  168. package/dist/targetVideoBidAdapter.js +1 -1
  169. package/dist/teadsBidAdapter.js +1 -1
  170. package/dist/terceptAnalyticsAdapter.js +1 -1
  171. package/dist/themoneytizerBidAdapter.js +1 -1
  172. package/dist/trionBidAdapter.js +1 -1
  173. package/dist/tripleliftBidAdapter.js +1 -1
  174. package/dist/ttdBidAdapter.js +1 -1
  175. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  176. package/dist/uid2IdSystem.js +1 -1
  177. package/dist/underdogmediaBidAdapter.js +1 -1
  178. package/dist/undertoneBidAdapter.js +1 -1
  179. package/dist/unrulyBidAdapter.js +1 -1
  180. package/dist/userId.js +1 -1
  181. package/dist/vdoaiBidAdapter.js +1 -1
  182. package/dist/vidazooUtils.js +1 -1
  183. package/dist/videobyteBidAdapter.js +1 -1
  184. package/dist/visxBidAdapter.js +1 -1
  185. package/dist/vuukleBidAdapter.js +1 -1
  186. package/dist/widespaceBidAdapter.js +1 -1
  187. package/dist/winrBidAdapter.js +1 -1
  188. package/dist/wurflRtdProvider.js +1 -1
  189. package/dist/yahooAdsBidAdapter.js +1 -1
  190. package/dist/yieldlabBidAdapter.js +1 -1
  191. package/dist/yieldmoBidAdapter.js +1 -1
  192. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  193. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  194. package/integrationExamples/gpt/liveIntentRtdProviderExample.html +164 -0
  195. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +3 -1
  196. package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +2 -0
  197. package/integrationExamples/videoModule/jwplayer/bidsBackHandlerOverride.html +2 -0
  198. package/integrationExamples/videoModule/jwplayer/eventListeners.html +2 -0
  199. package/integrationExamples/videoModule/jwplayer/eventsUI.html +2 -0
  200. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +2 -0
  201. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +3 -1
  202. package/integrationExamples/videoModule/jwplayer/playlist.html +3 -1
  203. package/libraries/creative-renderer-native/renderer.js +1 -1
  204. package/libraries/intentIqConstants/intentIqConstants.js +1 -1
  205. package/libraries/liveIntentId/shared.js +18 -5
  206. package/libraries/mspa/activityControls.js +26 -7
  207. package/libraries/riseUtils/constants.js +20 -0
  208. package/libraries/riseUtils/index.js +143 -38
  209. package/libraries/sizeUtils/sizeUtils.js +25 -0
  210. package/libraries/vidazooUtils/bidderUtils.js +2 -0
  211. package/modules/33acrossIdSystem.js +64 -23
  212. package/modules/33acrossIdSystem.md +2 -1
  213. package/modules/acuityadsBidAdapter.js +1 -1
  214. package/modules/adagioRtdProvider.js +15 -9
  215. package/modules/adlooxAnalyticsAdapter.js +12 -6
  216. package/modules/blueBidAdapter.js +122 -0
  217. package/modules/blueBidAdapter.md +28 -0
  218. package/modules/conceptxBidAdapter.js +2 -0
  219. package/modules/consumableBidAdapter.js +3 -1
  220. package/modules/contxtfulBidAdapter.js +25 -13
  221. package/modules/contxtfulRtdProvider.js +9 -12
  222. package/modules/eplanningBidAdapter.js +5 -1
  223. package/modules/equativBidAdapter.js +13 -18
  224. package/modules/escalaxBidAdapter.js +2 -2
  225. package/modules/eskimiBidAdapter.js +4 -1
  226. package/modules/improvedigitalBidAdapter.js +0 -67
  227. package/modules/intentIqAnalyticsAdapter.js +1 -1
  228. package/modules/ixBidAdapter.js +7 -1
  229. package/modules/jwplayerVideoProvider.js +99 -6
  230. package/modules/liveIntentRtdProvider.js +52 -0
  231. package/modules/liveIntentRtdProvider.md +45 -0
  232. package/modules/minutemediaBidAdapter.js +6 -80
  233. package/modules/minutemediaBidAdapter.md +1 -1
  234. package/modules/missenaBidAdapter.js +2 -0
  235. package/modules/nativeRendering.js +2 -1
  236. package/modules/omsBidAdapter.js +25 -11
  237. package/modules/omsBidAdapter.md +15 -0
  238. package/modules/openwebBidAdapter.js +6 -81
  239. package/modules/openwebBidAdapter.md +1 -1
  240. package/modules/openxBidAdapter.js +19 -6
  241. package/modules/openxBidAdapter.md +46 -1
  242. package/modules/orbitsoftBidAdapter.js +1 -1
  243. package/modules/permutiveRtdProvider.md +6 -5
  244. package/modules/pubmaticAnalyticsAdapter.js +61 -19
  245. package/modules/riseBidAdapter.js +11 -92
  246. package/modules/riseBidAdapter.md +1 -1
  247. package/modules/sharedIdSystem.js +9 -3
  248. package/modules/shinezBidAdapter.js +4 -80
  249. package/modules/shinezBidAdapter.md +2 -2
  250. package/modules/stnBidAdapter.js +7 -86
  251. package/modules/stnBidAdapter.md +1 -1
  252. package/modules/symitriDapRtdProvider.js +4 -4
  253. package/modules/symitriDapRtdProvider.md +2 -2
  254. package/modules/userId/eids.js +32 -5
  255. package/modules/wurflRtdProvider.js +7 -1
  256. package/modules/wurflRtdProvider.md +1 -1
  257. package/modules/yieldlabBidAdapter.js +2 -2
  258. package/modules/zeta_global_sspAnalyticsAdapter.js +5 -2
  259. package/package.json +2 -2
  260. package/src/adapters/bidderFactory.js +7 -6
  261. package/src/adloader.js +0 -1
  262. package/src/native.js +6 -3
  263. package/test/spec/creative/nativeRenderer_spec.js +45 -10
  264. package/test/spec/libraries/mspa/activityControls_spec.js +63 -9
  265. package/test/spec/modules/33acrossIdSystem_spec.js +288 -2
  266. package/test/spec/modules/acuityadsBidAdapter_spec.js +49 -0
  267. package/test/spec/modules/adagioRtdProvider_spec.js +119 -3
  268. package/test/spec/modules/adlooxAdServerVideo_spec.js +0 -1
  269. package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +31 -0
  270. package/test/spec/modules/blueBidAdapter_spec.js +91 -0
  271. package/test/spec/modules/consumableBidAdapter_spec.js +42 -0
  272. package/test/spec/modules/contxtfulRtdProvider_spec.js +37 -2
  273. package/test/spec/modules/eplanningBidAdapter_spec.js +74 -1
  274. package/test/spec/modules/equativBidAdapter_spec.js +5 -6
  275. package/test/spec/modules/excoBidAdapter_spec.js +33 -18
  276. package/test/spec/modules/illuminBidAdapter_spec.js +33 -18
  277. package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
  278. package/test/spec/modules/ixBidAdapter_spec.js +68 -2
  279. package/test/spec/modules/kueezRtbBidAdapter_spec.js +33 -18
  280. package/test/spec/modules/liveIntentExternalIdSystem_spec.js +16 -6
  281. package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +16 -6
  282. package/test/spec/modules/liveIntentIdSystem_spec.js +49 -6
  283. package/test/spec/modules/liveIntentRtdProvider_spec.js +116 -0
  284. package/test/spec/modules/minutemediaBidAdapter_spec.js +126 -6
  285. package/test/spec/modules/missenaBidAdapter_spec.js +12 -3
  286. package/test/spec/modules/omsBidAdapter_spec.js +78 -0
  287. package/test/spec/modules/openwebBidAdapter_spec.js +126 -6
  288. package/test/spec/modules/openxBidAdapter_spec.js +236 -8
  289. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +29 -36
  290. package/test/spec/modules/riseBidAdapter_spec.js +126 -6
  291. package/test/spec/modules/sharedIdSystem_spec.js +25 -1
  292. package/test/spec/modules/shinezBidAdapter_spec.js +133 -9
  293. package/test/spec/modules/shinezRtbBidAdapter_spec.js +33 -18
  294. package/test/spec/modules/stnBidAdapter_spec.js +126 -5
  295. package/test/spec/modules/symitriDapRtdProvider_spec.js +36 -0
  296. package/test/spec/modules/tagorasBidAdapter_spec.js +33 -18
  297. package/test/spec/modules/twistDigitalBidAdapter_spec.js +34 -18
  298. package/test/spec/modules/userId_spec.js +103 -2
  299. package/test/spec/modules/vidazooBidAdapter_spec.js +34 -18
  300. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +81 -0
  301. package/test/spec/modules/wurflRtdProvider_spec.js +8 -3
  302. package/test/spec/modules/yieldlabBidAdapter_spec.js +5 -5
  303. package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +3 -2
  304. package/test/spec/native_spec.js +4 -2
  305. package/test/spec/unit/core/bidderFactory_spec.js +120 -43
@@ -1,40 +1,19 @@
1
+ import {logWarn} from '../src/utils.js';
2
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
3
+ import {makeBaseSpec} from '../libraries/riseUtils/index.js';
1
4
  import {
2
- logWarn,
3
- logInfo,
4
- isArray,
5
- deepAccess,
6
- triggerPixel,
7
- } from '../src/utils.js';
8
- import { registerBidder } from '../src/adapters/bidderFactory.js';
9
- import { BANNER, VIDEO } from '../src/mediaTypes.js';
10
- import {
11
- getEndpoint,
12
- generateBidsParams,
13
- generateGeneralParams,
14
- buildBidResponse,
15
- } from '../libraries/riseUtils/index.js';
16
-
17
- const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
18
- const BIDDER_CODE = 'rise';
19
- const ADAPTER_VERSION = '6.0.0';
20
- const TTL = 360;
21
- const DEFAULT_CURRENCY = 'USD';
22
- const DEFAULT_GVLID = 1043;
23
- const BASE_URL = 'https://hb.yellowblue.io/';
24
- const MODES = {
25
- PRODUCTION: 'hb-multi',
26
- TEST: 'hb-multi-test'
27
- };
5
+ ALIASES,
6
+ BASE_URL,
7
+ BIDDER_CODE,
8
+ DEFAULT_GVLID,
9
+ MODES,
10
+ } from '../libraries/riseUtils/constants.js';
28
11
 
29
12
  export const spec = {
13
+ ...makeBaseSpec(BASE_URL, MODES),
30
14
  code: BIDDER_CODE,
31
- aliases: [
32
- { code: 'risexchange', gvlid: DEFAULT_GVLID },
33
- { code: 'openwebxchange', gvlid: 280 }
34
- ],
15
+ aliases: ALIASES,
35
16
  gvlid: DEFAULT_GVLID,
36
- version: ADAPTER_VERSION,
37
- supportedMediaTypes: SUPPORTED_AD_TYPES,
38
17
  isBidRequestValid: function (bidRequest) {
39
18
  if (!bidRequest.params) {
40
19
  logWarn('no params have been set to Rise adapter');
@@ -47,66 +26,6 @@ export const spec = {
47
26
  }
48
27
 
49
28
  return true;
50
- },
51
- buildRequests: function (validBidRequests, bidderRequest) {
52
- const combinedRequestsObject = {};
53
-
54
- // use data from the first bid, to create the general params for all bids
55
- const generalObject = validBidRequests[0];
56
- const testMode = generalObject.params.testMode;
57
- const rtbDomain = generalObject.params.rtbDomain || BASE_URL;
58
-
59
- combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
60
- combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
61
-
62
- return {
63
- method: 'POST',
64
- url: getEndpoint(testMode, rtbDomain, MODES),
65
- data: combinedRequestsObject
66
- }
67
- },
68
- interpretResponse: function ({ body }) {
69
- const bidResponses = [];
70
-
71
- if (body.bids) {
72
- body.bids.forEach(adUnit => {
73
- const bidResponse = buildBidResponse(adUnit, DEFAULT_CURRENCY, TTL, VIDEO, BANNER);
74
- bidResponses.push(bidResponse);
75
- });
76
- }
77
-
78
- return bidResponses;
79
- },
80
- getUserSyncs: function (syncOptions, serverResponses) {
81
- const syncs = [];
82
- for (const response of serverResponses) {
83
- if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
84
- syncs.push({
85
- type: 'iframe',
86
- url: deepAccess(response, 'body.params.userSyncURL')
87
- });
88
- }
89
- if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
90
- const pixels = response.body.params.userSyncPixels.map(pixel => {
91
- return {
92
- type: 'image',
93
- url: pixel
94
- }
95
- });
96
- syncs.push(...pixels);
97
- }
98
- }
99
- return syncs;
100
- },
101
- onBidWon: function (bid) {
102
- if (bid == null) {
103
- return;
104
- }
105
-
106
- logInfo('onBidWon:', bid);
107
- if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
108
- triggerPixel(bid.nurl);
109
- }
110
29
  }
111
30
  };
112
31
 
@@ -13,7 +13,7 @@ Module that connects to Rise's demand sources.
13
13
 
14
14
  The Rise adapter requires setup and approval from the Rise. Please reach out to prebid-rise-engage@risecodes.com to create an Rise account.
15
15
 
16
- The adapter supports Video(instream).
16
+ The adapter supports Video(instream), Banner, Native and multi-format bid requests.
17
17
 
18
18
  # Bid Parameters
19
19
  ## Video
@@ -183,9 +183,15 @@ export const sharedIdSystemSubmodule = {
183
183
 
184
184
  domainOverride: domainOverrideToRootDomain(storage, 'sharedId'),
185
185
  eids: {
186
- 'pubcid': {
187
- source: 'pubcid.org',
188
- atype: 1
186
+ 'pubcid'(values, config) {
187
+ const eid = {
188
+ source: 'pubcid.org',
189
+ uids: values.map(id => ({id, atype: 1}))
190
+ }
191
+ if (config?.params?.inserter != null) {
192
+ eid.inserter = config.params.inserter;
193
+ }
194
+ return eid;
189
195
  },
190
196
  }
191
197
  };
@@ -1,24 +1,8 @@
1
- import {
2
- logWarn,
3
- logInfo,
4
- isArray,
5
- deepAccess,
6
- triggerPixel,
7
- } from '../src/utils.js';
8
- import { registerBidder } from '../src/adapters/bidderFactory.js';
9
- import { BANNER, VIDEO } from '../src/mediaTypes.js';
10
- import {
11
- getEndpoint,
12
- generateBidsParams,
13
- generateGeneralParams,
14
- buildBidResponse,
15
- } from '../libraries/riseUtils/index.js';
1
+ import {logWarn} from '../src/utils.js';
2
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
3
+ import {makeBaseSpec} from '../libraries/riseUtils/index.js';
16
4
 
17
- const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
18
5
  const BIDDER_CODE = 'shinez';
19
- const ADAPTER_VERSION = '1.0.0';
20
- const TTL = 360;
21
- const CURRENCY = 'USD';
22
6
  const BASE_URL = 'https://hb.sweetgum.io/';
23
7
  const MODES = {
24
8
  PRODUCTION: 'hb-sz-multi',
@@ -26,9 +10,8 @@ const MODES = {
26
10
  };
27
11
 
28
12
  export const spec = {
13
+ ...makeBaseSpec(BASE_URL, MODES),
29
14
  code: BIDDER_CODE,
30
- version: ADAPTER_VERSION,
31
- supportedMediaTypes: SUPPORTED_AD_TYPES,
32
15
  isBidRequestValid: function (bidRequest) {
33
16
  if (!bidRequest.params) {
34
17
  logWarn('no params have been set to Shinez adapter');
@@ -41,65 +24,6 @@ export const spec = {
41
24
  }
42
25
 
43
26
  return true;
44
- },
45
- buildRequests: function (validBidRequests, bidderRequest) {
46
- const combinedRequestsObject = {};
47
-
48
- // use data from the first bid, to create the general params for all bids
49
- const generalObject = validBidRequests[0];
50
- const testMode = generalObject.params.testMode;
51
-
52
- combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
53
- combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
54
-
55
- return {
56
- method: 'POST',
57
- url: getEndpoint(testMode, BASE_URL, MODES),
58
- data: combinedRequestsObject
59
- }
60
- },
61
- interpretResponse: function ({body}) {
62
- const bidResponses = [];
63
-
64
- if (body.bids) {
65
- body.bids.forEach(adUnit => {
66
- const bidResponse = buildBidResponse(adUnit, CURRENCY, TTL, VIDEO, BANNER);
67
- bidResponses.push(bidResponse);
68
- });
69
- }
70
-
71
- return bidResponses;
72
- },
73
- getUserSyncs: function (syncOptions, serverResponses) {
74
- const syncs = [];
75
- for (const response of serverResponses) {
76
- if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
77
- syncs.push({
78
- type: 'iframe',
79
- url: deepAccess(response, 'body.params.userSyncURL')
80
- });
81
- }
82
- if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
83
- const pixels = response.body.params.userSyncPixels.map(pixel => {
84
- return {
85
- type: 'image',
86
- url: pixel
87
- }
88
- });
89
- syncs.push(...pixels);
90
- }
91
- }
92
- return syncs;
93
- },
94
- onBidWon: function (bid) {
95
- if (bid == null) {
96
- return;
97
- }
98
-
99
- logInfo('onBidWon:', bid);
100
- if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
101
- triggerPixel(bid.nurl);
102
- }
103
27
  }
104
28
  };
105
29
 
@@ -13,7 +13,7 @@ Module that connects to Shinez's demand sources.
13
13
 
14
14
  The Shinez adapter requires setup and approval from the Shinez. Please reach out to tech-team@shinez.io to create an Shinez account.
15
15
 
16
- The adapter supports Video(instream) & Banner.
16
+ The adapter supports Video(instream), Banner, Native and multi-format bid requests.
17
17
 
18
18
  # Bid Parameters
19
19
  ## Video
@@ -73,4 +73,4 @@ var adUnits = [{
73
73
  }]
74
74
  }
75
75
  ];
76
- ```
76
+ ```
@@ -1,38 +1,17 @@
1
- import {
2
- logWarn,
3
- logInfo,
4
- isArray,
5
- deepAccess,
6
- triggerPixel,
7
- } from '../src/utils.js';
8
- import { registerBidder } from '../src/adapters/bidderFactory.js';
9
- import { BANNER, VIDEO } from '../src/mediaTypes.js';
10
- import {
11
- getEndpoint,
12
- generateBidsParams,
13
- generateGeneralParams,
14
- buildBidResponse,
15
- } from '../libraries/riseUtils/index.js';
1
+ import {logWarn} from '../src/utils.js';
2
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
3
+ import {makeBaseSpec} from '../libraries/riseUtils/index.js';
16
4
 
17
- export const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
18
- export const BIDDER_CODE = 'stn';
19
- export const ADAPTER_VERSION = '6.1.0';
20
- export const TTL = 360;
21
- export const DEFAULT_CURRENCY = 'USD';
22
- export const SELLER_ENDPOINT = 'https://hb.stngo.com/';
23
- export const MODES = {
5
+ const BIDDER_CODE = 'stn';
6
+ const BASE_URL = 'https://hb.stngo.com/';
7
+ const MODES = {
24
8
  PRODUCTION: 'hb-multi',
25
9
  TEST: 'hb-multi-test'
26
10
  };
27
- export const SUPPORTED_SYNC_METHODS = {
28
- IFRAME: 'iframe',
29
- PIXEL: 'pixel'
30
- };
31
11
 
32
12
  export const spec = {
13
+ ...makeBaseSpec(BASE_URL, MODES),
33
14
  code: BIDDER_CODE,
34
- version: ADAPTER_VERSION,
35
- supportedMediaTypes: SUPPORTED_AD_TYPES,
36
15
  isBidRequestValid: function (bidRequest) {
37
16
  if (!bidRequest.params) {
38
17
  logWarn('no params have been set to STN adapter');
@@ -45,64 +24,6 @@ export const spec = {
45
24
  }
46
25
 
47
26
  return true;
48
- },
49
- buildRequests: function (validBidRequests, bidderRequest) {
50
- const combinedRequestsObject = {};
51
-
52
- const generalObject = validBidRequests[0];
53
- const testMode = generalObject.params.testMode;
54
-
55
- combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
56
- combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
57
-
58
- return {
59
- method: 'POST',
60
- url: getEndpoint(testMode, SELLER_ENDPOINT, MODES),
61
- data: combinedRequestsObject
62
- }
63
- },
64
- interpretResponse: function ({ body }) {
65
- const bidResponses = [];
66
-
67
- if (body.bids) {
68
- body.bids.forEach(adUnit => {
69
- const bidResponse = buildBidResponse(adUnit, DEFAULT_CURRENCY, TTL, VIDEO, BANNER);
70
- bidResponses.push(bidResponse);
71
- });
72
- }
73
-
74
- return bidResponses;
75
- },
76
- getUserSyncs: function (syncOptions, serverResponses) {
77
- const syncs = [];
78
- for (const response of serverResponses) {
79
- if (syncOptions.iframeEnabled && deepAccess(response, 'body.params.userSyncURL')) {
80
- syncs.push({
81
- type: 'iframe',
82
- url: deepAccess(response, 'body.params.userSyncURL')
83
- });
84
- }
85
- if (syncOptions.pixelEnabled && isArray(deepAccess(response, 'body.params.userSyncPixels'))) {
86
- const pixels = response.body.params.userSyncPixels.map(pixel => {
87
- return {
88
- type: 'image',
89
- url: pixel
90
- }
91
- })
92
- syncs.push(...pixels)
93
- }
94
- }
95
- return syncs;
96
- },
97
- onBidWon: function (bid) {
98
- if (bid == null) {
99
- return;
100
- }
101
-
102
- logInfo('onBidWon:', bid);
103
- if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
104
- triggerPixel(bid.nurl);
105
- }
106
27
  }
107
28
  };
108
29
 
@@ -13,7 +13,7 @@ Module that connects to STN's demand sources.
13
13
 
14
14
  The STN adapter requires setup and approval from the STN. Please reach out to hb@stnvideo.com to create an STN account.
15
15
 
16
- The adapter supports Video(instream) & Banner.
16
+ The adapter supports Video(instream), Banner, Native and multi-format bid requests.
17
17
 
18
18
  # Bid Parameters
19
19
  ## Video
@@ -663,6 +663,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
663
663
  switch (config.api_version) {
664
664
  case 'x1':
665
665
  case 'x1-dev':
666
+ case 'x2':
666
667
  method = 'POST';
667
668
  path = '/data-activation/' + config.api_version + '/domain/' + config.domain + '/identity/tokenize';
668
669
  body = JSON.stringify(apiParams);
@@ -685,6 +686,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
685
686
  switch (config.api_version) {
686
687
  case 'x1':
687
688
  case 'x1-dev':
689
+ case 'x2':
688
690
  token = request.getResponseHeader(headerPrefix + '-DAP-Token');
689
691
  break;
690
692
  }
@@ -744,8 +746,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
744
746
  return;
745
747
  }
746
748
 
747
- let path = '/data-activation/' +
748
- config.api_version +
749
+ let path = '/data-activation/x1' +
749
750
  '/token/' + token +
750
751
  '/membership';
751
752
 
@@ -812,8 +813,7 @@ export function createRtdProvider(moduleName, moduleCode, headerPrefix) {
812
813
  error: (error, request) => { onError(request, request.status, error, onDone); }
813
814
  };
814
815
 
815
- let path = '/data-activation/' +
816
- config.api_version +
816
+ let path = '/data-activation/x1' +
817
817
  '/token/' + token +
818
818
  '/membership/encrypt';
819
819
 
@@ -42,7 +42,7 @@ pbjs.setConfig({
42
42
  waitForIt: true,
43
43
  params: {
44
44
  apiHostname: '<see your Symitri account rep>',
45
- apiVersion: "x1",
45
+ apiVersion: 'x1'|'x2',
46
46
  apiAuthToken: '<see your Symitri account rep>',
47
47
  domain: 'your-domain.com',
48
48
  identityType: 'simpleid'|'compositeid'|'hashedid'|'dap-signature:1.0.0',
@@ -68,7 +68,7 @@ Please reach out to your Symitri account representative(<Prebid@symitri.com>) to
68
68
  | name | String | Symitri Dap Rtd module name | 'symitriDap' always|
69
69
  | waitForIt | Boolean | Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false |
70
70
  | apiHostname | String | Hostname provided by Symitri | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value|
71
- | apiVersion | String | This holds the API version | It should be "x1" always |
71
+ | apiVersion | String | This holds the API version | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value |
72
72
  | apiAuthToken | String | Symitri API AuthToken | Please reach out to your Symitri account representative(<Prebid@symitri.com>) for this value |
73
73
  | domain | String | The domain name of your webpage | |
74
74
  | identityType | String | 'simpleid' or 'compositeid' or 'hashedid' or 'dap-signature:1.0.0' | Use 'simpleid' to pass email or other plain text ids and SymitriRTD Module will hash it.
@@ -1,4 +1,4 @@
1
- import {deepClone, isFn, isStr} from '../../src/utils.js';
1
+ import {logError, deepClone, isFn, isStr} from '../../src/utils.js';
2
2
 
3
3
  /**
4
4
  * @typedef {import('./index.js').SubmodulePriorityMap} SubmodulePriorityMap
@@ -38,7 +38,10 @@ function createEidObject(userIdData, subModuleKey, eidConf) {
38
38
  export function createEidsArray(bidRequestUserId, eidConfigs = EID_CONFIG) {
39
39
  const allEids = {};
40
40
  function collect(eid) {
41
- const key = JSON.stringify([eid.source?.toLowerCase(), eid.ext]);
41
+ const key = JSON.stringify([
42
+ eid.source?.toLowerCase(),
43
+ ...Object.keys(eid).filter(k => !['uids', 'source'].includes(k)).sort().map(k => eid[k])
44
+ ]);
42
45
  if (allEids.hasOwnProperty(key)) {
43
46
  allEids[key].uids.push(...eid.uids);
44
47
  } else {
@@ -48,8 +51,27 @@ export function createEidsArray(bidRequestUserId, eidConfigs = EID_CONFIG) {
48
51
 
49
52
  Object.entries(bidRequestUserId).forEach(([name, values]) => {
50
53
  values = Array.isArray(values) ? values : [values];
51
- const eids = name === 'pubProvidedId' ? deepClone(values) : values.map(value => createEidObject(value, name, eidConfigs.get(name)));
52
- eids.filter(eid => eid != null).forEach(collect);
54
+ const eidConf = eidConfigs.get(name);
55
+ let eids;
56
+ if (name === 'pubProvidedId') {
57
+ eids = deepClone(values);
58
+ } else if (typeof eidConf === 'function') {
59
+ try {
60
+ eids = eidConf(values);
61
+ if (!Array.isArray(eids)) {
62
+ eids = [eids];
63
+ }
64
+ eids.forEach(eid => eid.uids = eid.uids.filter(({id}) => isStr(id)))
65
+ eids = eids.filter(({uids}) => uids?.length > 0);
66
+ } catch (e) {
67
+ logError(`Could not generate EID for "${name}"`, e);
68
+ }
69
+ } else {
70
+ eids = values.map(value => createEidObject(value, name, eidConf));
71
+ }
72
+ if (Array.isArray(eids)) {
73
+ eids.filter(eid => eid != null).forEach(collect);
74
+ }
53
75
  })
54
76
  return Object.values(allEids);
55
77
  }
@@ -64,7 +86,12 @@ export function getEids(priorityMap) {
64
86
  const submodule = submodules.find(mod => mod.idObj?.[key] != null);
65
87
  if (submodule) {
66
88
  idValues[key] = submodule.idObj[key];
67
- eidConfigs.set(key, submodule.submodule.eids?.[key])
89
+ let eidConf = submodule.submodule.eids?.[key];
90
+ if (typeof eidConf === 'function') {
91
+ // if eid config is given as a function, append the active module configuration to its args
92
+ eidConf = ((orig) => (...args) => orig(...args, submodule.config))(eidConf);
93
+ }
94
+ eidConfigs.set(key, eidConf);
68
95
  }
69
96
  })
70
97
  return createEidsArray(idValues, eidConfigs);
@@ -65,7 +65,7 @@ const getBidRequestData = (reqBidsConfigObj, callback, config, userConsent) => {
65
65
  }
66
66
 
67
67
  url.searchParams.set('mode', 'prebid')
68
- logger.logMessage('url', url.toString());
68
+ url.searchParams.set('wurfl_id', 'true')
69
69
 
70
70
  try {
71
71
  loadExternalScript(url.toString(), MODULE_TYPE_RTD, MODULE_NAME, () => {
@@ -120,6 +120,9 @@ function enrichBidderRequests(reqBidsConfigObj, bidders, wjsResponse) {
120
120
  */
121
121
  export const bidderData = (wurflData, caps, filter) => {
122
122
  const data = {};
123
+ if ('wurfl_id' in wurflData) {
124
+ data['wurfl_id'] = wurflData.wurfl_id;
125
+ }
123
126
  caps.forEach((cap, index) => {
124
127
  if (!filter.includes(index)) {
125
128
  return;
@@ -152,6 +155,9 @@ export const lowEntropyData = (wurflData, lowEntropyCaps) => {
152
155
  if ('brand_name' in wurflData) {
153
156
  data['brand_name'] = wurflData.brand_name;
154
157
  }
158
+ if ('wurfl_id' in wurflData) {
159
+ data['wurfl_id'] = wurflData.wurfl_id;
160
+ }
155
161
  return data;
156
162
  }
157
163
  /**
@@ -9,7 +9,7 @@
9
9
  ## Description
10
10
 
11
11
  The WURFL RTD module enriches the OpenRTB 2.0 device data with [WURFL data](https://www.scientiamobile.com/wurfl-js-business-edition-at-the-intersection-of-javascript-and-enterprise/).
12
- The module sets the WURFL data in `device.ext.wurfl` and all the bidder adapters will always receive the low entry capabilites like `is_mobile`, `complete_device_name` and `form_factor`.
12
+ The module sets the WURFL data in `device.ext.wurfl` and all the bidder adapters will always receive the low entry capabilities like `is_mobile`, `complete_device_name` and `form_factor`, and the `wurfl_id`.
13
13
 
14
14
  For a more detailed analysis bidders can subscribe to detect iPhone and iPad models and receive additional [WURFL device capabilities](https://www.scientiamobile.com/capabilities/?products%5B%5D=wurfl-js).
15
15
 
@@ -100,7 +100,7 @@ export const spec = {
100
100
  if (bidderRequest.gdprConsent) {
101
101
  query.gdpr = (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') ? bidderRequest.gdprConsent.gdprApplies : true;
102
102
  if (query.gdpr) {
103
- query.consent = bidderRequest.gdprConsent.consentString;
103
+ query.gdpr_consent = bidderRequest.gdprConsent.consentString;
104
104
  }
105
105
  }
106
106
 
@@ -184,7 +184,7 @@ export const spec = {
184
184
  const extId = bidRequest.params.extId !== undefined ? '&id=' + bidRequest.params.extId : '';
185
185
  const adType = matchedBid.adtype !== undefined ? matchedBid.adtype : '';
186
186
  const gdprApplies = reqParams.gdpr ? '&gdpr=' + reqParams.gdpr : '';
187
- const gdprConsent = reqParams.consent ? '&consent=' + reqParams.consent : '';
187
+ const gdprConsent = reqParams.gdpr_consent ? '&gdpr_consent=' + reqParams.gdpr_consent : '';
188
188
  const pvId = matchedBid.pvid !== undefined ? '&pvid=' + matchedBid.pvid : '';
189
189
  const iabContent = reqParams.iab_content ? '&iab_content=' + reqParams.iab_content : '';
190
190
 
@@ -4,6 +4,8 @@ import adapterManager from '../src/adapterManager.js';
4
4
  import {EVENTS} from '../src/constants.js';
5
5
 
6
6
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
7
+ import {config} from '../src/config.js';
8
+ import {parseDomain} from '../src/refererDetection.js';
7
9
 
8
10
  const ZETA_GVL_ID = 833;
9
11
  const ADAPTER_CODE = 'zeta_global_ssp';
@@ -27,10 +29,11 @@ function sendEvent(eventType, event) {
27
29
  /// /////////// ADAPTER EVENT HANDLER FUNCTIONS //////////////
28
30
 
29
31
  function adRenderSucceededHandler(args) {
32
+ const page = config.getConfig('pageUrl') || args.doc?.location?.host + args.doc?.location?.pathname;
30
33
  const event = {
31
34
  zetaParams: zetaParams,
32
- domain: args.doc?.location?.host,
33
- page: args.doc?.location?.host + args.doc?.location?.pathname,
35
+ domain: parseDomain(page, {noLeadingWww: true}),
36
+ page: page,
34
37
  bid: {
35
38
  adId: args.bid?.adId,
36
39
  requestId: args.bid?.requestId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "9.26.0",
3
+ "version": "9.28.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.public.js",
6
6
  "exports": {
@@ -143,7 +143,7 @@
143
143
  "fun-hooks": "^0.9.9",
144
144
  "gulp-wrap": "^0.15.0",
145
145
  "klona": "^2.0.6",
146
- "live-connect-js": "^7.1.0"
146
+ "live-connect-js": "^7.2.0"
147
147
  },
148
148
  "optionalDependencies": {
149
149
  "fsevents": "^2.3.2"
@@ -5,7 +5,7 @@ import {createBid} from '../bidfactory.js';
5
5
  import {userSync} from '../userSync.js';
6
6
  import {nativeBidIsValid} from '../native.js';
7
7
  import {isValidVideoBid} from '../video.js';
8
- import { EVENTS, STATUS, REJECTION_REASON } from '../constants.js';
8
+ import {EVENTS, REJECTION_REASON, STATUS} from '../constants.js';
9
9
  import * as events from '../events.js';
10
10
  import {includes} from '../polyfill.js';
11
11
  import {
@@ -13,9 +13,11 @@ import {
13
13
  isArray,
14
14
  isPlainObject,
15
15
  logError,
16
- logWarn, memoize,
16
+ logWarn,
17
+ memoize,
17
18
  parseQueryStringParameters,
18
- parseSizesInput, pick,
19
+ parseSizesInput,
20
+ pick,
19
21
  uniques
20
22
  } from '../utils.js';
21
23
  import {hook} from '../hook.js';
@@ -523,10 +525,9 @@ export const processBidderRequests = hook('sync', function (spec, bids, bidderRe
523
525
  export const registerSyncInner = hook('async', function(spec, responses, gdprConsent, uspConsent, gppConsent) {
524
526
  const aliasSyncEnabled = config.getConfig('userSync.aliasSyncEnabled');
525
527
  if (spec.getUserSyncs && (aliasSyncEnabled || !adapterManager.aliasRegistry[spec.code])) {
526
- let filterConfig = config.getConfig('userSync.filterSettings');
527
528
  let syncs = spec.getUserSyncs({
528
- iframeEnabled: !!(filterConfig && (filterConfig.iframe || filterConfig.all)),
529
- pixelEnabled: !!(filterConfig && (filterConfig.image || filterConfig.all)),
529
+ iframeEnabled: userSync.canBidderRegisterSync('iframe', spec.code),
530
+ pixelEnabled: userSync.canBidderRegisterSync('image', spec.code),
530
531
  }, responses, gdprConsent, uspConsent, gppConsent);
531
532
  if (syncs) {
532
533
  if (!Array.isArray(syncs)) {
package/src/adloader.js CHANGED
@@ -11,7 +11,6 @@ const _approvedLoadExternalJSList = [
11
11
  'debugging',
12
12
  'outstream',
13
13
  // Bid Modules - only exception is on rendering edge cases, to clean up in Prebid 10:
14
- 'improvedigital',
15
14
  'showheroes-bs',
16
15
  // RTD modules:
17
16
  'aaxBlockmeter',
package/src/native.js CHANGED
@@ -436,13 +436,16 @@ function assetsMessage(data, adObject, keys, {index = auctionManager.index} = {}
436
436
  message: 'assetResponse',
437
437
  adId: data.adId,
438
438
  };
439
- let renderData = getRenderingData(adObject).native;
439
+ let {native: renderData, rendererVersion} = getRenderingData(adObject);
440
440
  if (renderData) {
441
441
  // if we have native rendering data (set up by the nativeRendering module)
442
442
  // include it in full ("all assets") together with the renderer.
443
443
  // this is to allow PUC to use dynamic renderers without requiring changes in creative setup
444
- msg.native = Object.assign({}, renderData);
445
- msg.renderer = getCreativeRendererSource(adObject);
444
+ Object.assign(msg, {
445
+ native: Object.assign({}, renderData),
446
+ renderer: getCreativeRendererSource(adObject),
447
+ rendererVersion,
448
+ })
446
449
  if (keys != null) {
447
450
  renderData.assets = renderData.assets.filter(({key}) => keys.includes(key))
448
451
  }