prebid.js 7.45.0 → 7.47.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 (204) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  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 -1
  7. package/dist/adnuntiusBidAdapter.js +1 -1
  8. package/dist/adrelevantisBidAdapter.js +1 -1
  9. package/dist/adtrgtmeBidAdapter.js +1 -1
  10. package/dist/adxcgBidAdapter.js +1 -1
  11. package/dist/adyoulikeBidAdapter.js +1 -1
  12. package/dist/ajaBidAdapter.js +1 -1
  13. package/dist/amxBidAdapter.js +1 -1
  14. package/dist/amxIdSystem.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/axonixBidAdapter.js +1 -1
  19. package/dist/bidglassBidAdapter.js +1 -1
  20. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  21. package/dist/big-richmediaBidAdapter.js +1 -1
  22. package/dist/bridgewellBidAdapter.js +1 -1
  23. package/dist/brightMountainMediaBidAdapter.js +1 -1
  24. package/dist/carodaBidAdapter.js +1 -1
  25. package/dist/chtnwBidAdapter.js +1 -1
  26. package/dist/concertBidAdapter.js +1 -1
  27. package/dist/connectadBidAdapter.js +1 -1
  28. package/dist/consumableBidAdapter.js +1 -1
  29. package/dist/conversantAnalyticsAdapter.js +1 -1
  30. package/dist/conversantBidAdapter.js +1 -1
  31. package/dist/craftBidAdapter.js +1 -1
  32. package/dist/criteoBidAdapter.js +1 -1
  33. package/dist/criteoIdSystem.js +1 -1
  34. package/dist/cwireBidAdapter.js +1 -1
  35. package/dist/debugging-standalone.js +1 -1
  36. package/dist/dependencies.json +3 -0
  37. package/dist/dspxBidAdapter.js +1 -1
  38. package/dist/emtvBidAdapter.js +1 -0
  39. package/dist/eplanningBidAdapter.js +1 -1
  40. package/dist/eskimiBidAdapter.js +1 -0
  41. package/dist/feedadBidAdapter.js +1 -1
  42. package/dist/finativeBidAdapter.js +1 -1
  43. package/dist/freewheel-sspBidAdapter.js +1 -1
  44. package/dist/glimpseBidAdapter.js +1 -1
  45. package/dist/gmosspBidAdapter.js +1 -1
  46. package/dist/goldbachBidAdapter.js +1 -1
  47. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  48. package/dist/gridBidAdapter.js +1 -1
  49. package/dist/gumgumBidAdapter.js +1 -1
  50. package/dist/h12mediaBidAdapter.js +1 -1
  51. package/dist/id5IdSystem.js +1 -1
  52. package/dist/improvedigitalBidAdapter.js +1 -1
  53. package/dist/inmarBidAdapter.js +1 -1
  54. package/dist/insticatorBidAdapter.js +1 -1
  55. package/dist/ixBidAdapter.js +1 -1
  56. package/dist/justpremiumBidAdapter.js +1 -1
  57. package/dist/kargoBidAdapter.js +1 -1
  58. package/dist/konduitAnalyticsAdapter.js +1 -1
  59. package/dist/kueezBidAdapter.js +1 -1
  60. package/dist/kueezRtbBidAdapter.js +1 -1
  61. package/dist/kulturemediaBidAdapter.js +1 -1
  62. package/dist/lassoBidAdapter.js +1 -1
  63. package/dist/lifestreetBidAdapter.js +1 -1
  64. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  65. package/dist/logicadBidAdapter.js +1 -1
  66. package/dist/loglyliftBidAdapter.js +1 -1
  67. package/dist/magniteAnalyticsAdapter.js +1 -1
  68. package/dist/malltvAnalyticsAdapter.js +1 -1
  69. package/dist/marsmediaBidAdapter.js +1 -1
  70. package/dist/mediafuseBidAdapter.js +1 -1
  71. package/dist/mediasquareBidAdapter.js +1 -1
  72. package/dist/mgidBidAdapter.js +1 -1
  73. package/dist/minutemediaBidAdapter.js +1 -1
  74. package/dist/minutemediaplusBidAdapter.js +1 -1
  75. package/dist/missenaBidAdapter.js +1 -1
  76. package/dist/nativoBidAdapter.js +1 -1
  77. package/dist/neuwoRtdProvider.js +1 -1
  78. package/dist/nextMillenniumBidAdapter.js +1 -1
  79. package/dist/nexx360BidAdapter.js +1 -1
  80. package/dist/not-for-prod/prebid.js +137 -135
  81. package/dist/oguryBidAdapter.js +1 -1
  82. package/dist/onetagBidAdapter.js +1 -1
  83. package/dist/ooloAnalyticsAdapter.js +1 -1
  84. package/dist/optidigitalBidAdapter.js +1 -1
  85. package/dist/ortbConverter.js +1 -1
  86. package/dist/outbrainBidAdapter.js +1 -1
  87. package/dist/pairIdSystem.js +1 -0
  88. package/dist/parrableIdSystem.js +1 -1
  89. package/dist/pixfutureBidAdapter.js +1 -1
  90. package/dist/prebid-core.js +1 -1
  91. package/dist/publinkIdSystem.js +1 -1
  92. package/dist/pubmaticBidAdapter.js +1 -1
  93. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  94. package/dist/pxyzBidAdapter.js +1 -1
  95. package/dist/quantcastBidAdapter.js +1 -1
  96. package/dist/readpeakBidAdapter.js +1 -1
  97. package/dist/relaidoBidAdapter.js +1 -1
  98. package/dist/rhythmoneBidAdapter.js +1 -1
  99. package/dist/riseBidAdapter.js +1 -1
  100. package/dist/rtbhouseBidAdapter.js +1 -1
  101. package/dist/rubiconAnalyticsAdapter.js +1 -1
  102. package/dist/rubiconBidAdapter.js +1 -1
  103. package/dist/seedingAllianceBidAdapter.js +1 -1
  104. package/dist/seedtagBidAdapter.js +1 -1
  105. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  106. package/dist/sharethroughBidAdapter.js +1 -1
  107. package/dist/shinezBidAdapter.js +1 -1
  108. package/dist/smaatoBidAdapter.js +1 -1
  109. package/dist/smartadserverBidAdapter.js +1 -1
  110. package/dist/smartxBidAdapter.js +1 -1
  111. package/dist/smilewantedBidAdapter.js +1 -1
  112. package/dist/sonobiBidAdapter.js +1 -1
  113. package/dist/sovrnAnalyticsAdapter.js +1 -1
  114. package/dist/sovrnBidAdapter.js +1 -1
  115. package/dist/sspBCBidAdapter.js +1 -1
  116. package/dist/stvBidAdapter.js +1 -1
  117. package/dist/sublimeBidAdapter.js +1 -1
  118. package/dist/synacormediaBidAdapter.js +1 -1
  119. package/dist/targetVideoBidAdapter.js +1 -1
  120. package/dist/teadsBidAdapter.js +1 -1
  121. package/dist/trionBidAdapter.js +1 -1
  122. package/dist/tripleliftBidAdapter.js +1 -1
  123. package/dist/ttdBidAdapter.js +1 -1
  124. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  125. package/dist/uid2IdSystem.js +1 -1
  126. package/dist/underdogmediaBidAdapter.js +1 -1
  127. package/dist/undertoneBidAdapter.js +1 -1
  128. package/dist/userId.js +1 -1
  129. package/dist/vidazooBidAdapter.js +1 -1
  130. package/dist/videobyteBidAdapter.js +1 -1
  131. package/dist/vidoomyBidAdapter.js +1 -1
  132. package/dist/visxBidAdapter.js +1 -1
  133. package/dist/vuukleBidAdapter.js +1 -1
  134. package/dist/widespaceBidAdapter.js +1 -1
  135. package/dist/winrBidAdapter.js +1 -1
  136. package/dist/yahoosspBidAdapter.js +1 -1
  137. package/dist/yieldmoBidAdapter.js +1 -1
  138. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  139. package/integrationExamples/gpt/fledge_example.html +103 -0
  140. package/integrationExamples/gpt/prebidServer_fledge_example.html +111 -0
  141. package/libraries/ortbConverter/processors/video.js +1 -0
  142. package/modules/admaticBidAdapter.js +7 -2
  143. package/modules/adnuntiusBidAdapter.js +3 -1
  144. package/modules/appnexusBidAdapter.js +108 -102
  145. package/modules/bidwatchAnalyticsAdapter.js +2 -0
  146. package/modules/conversantBidAdapter.js +3 -0
  147. package/modules/criteoBidAdapter.js +5 -1
  148. package/modules/criteoIdSystem.js +27 -14
  149. package/modules/emtvBidAdapter.js +211 -0
  150. package/modules/emtvBidAdapter.md +79 -0
  151. package/modules/eskimiBidAdapter.js +72 -0
  152. package/modules/eskimiBidAdapter.md +34 -0
  153. package/modules/gridBidAdapter.js +42 -19
  154. package/modules/ixBidAdapter.js +30 -0
  155. package/modules/kargoBidAdapter.js +473 -246
  156. package/modules/kueezRtbBidAdapter.js +16 -4
  157. package/modules/mediasquareBidAdapter.js +2 -1
  158. package/modules/minutemediaplusBidAdapter.js +16 -4
  159. package/modules/missenaBidAdapter.js +1 -1
  160. package/modules/nativoBidAdapter.js +110 -21
  161. package/modules/neuwoRtdProvider.js +0 -2
  162. package/modules/nextMillenniumBidAdapter.js +2 -0
  163. package/modules/pairIdSystem.js +79 -0
  164. package/modules/pubmaticBidAdapter.js +12 -9
  165. package/modules/rtbhouseBidAdapter.js +3 -3
  166. package/modules/userId/eids.js +6 -0
  167. package/modules/vidoomyBidAdapter.js +30 -9
  168. package/modules/vidoomyBidAdapter.md +12 -2
  169. package/modules/yieldmoBidAdapter.js +15 -5
  170. package/package.json +1 -1
  171. package/src/config.js +78 -127
  172. package/test/spec/modules/1plusXRtdProvider_spec.js +8 -7
  173. package/test/spec/modules/adagioBidAdapter_spec.js +0 -25
  174. package/test/spec/modules/admaticBidAdapter_spec.js +1 -1
  175. package/test/spec/modules/adnuntiusBidAdapter_spec.js +2 -1
  176. package/test/spec/modules/appnexusBidAdapter_spec.js +464 -448
  177. package/test/spec/modules/axonixBidAdapter_spec.js +0 -27
  178. package/test/spec/modules/big-richmediaBidAdapter_spec.js +68 -64
  179. package/test/spec/modules/conversantBidAdapter_spec.js +1 -0
  180. package/test/spec/modules/criteoBidAdapter_spec.js +33 -1
  181. package/test/spec/modules/criteoIdSystem_spec.js +99 -9
  182. package/test/spec/modules/emtvBidAdapter_spec.js +400 -0
  183. package/test/spec/modules/eskimiBidAdapter_spec.js +155 -0
  184. package/test/spec/modules/gridBidAdapter_spec.js +8 -0
  185. package/test/spec/modules/ixBidAdapter_spec.js +57 -0
  186. package/test/spec/modules/kargoBidAdapter_spec.js +297 -140
  187. package/test/spec/modules/kueezRtbBidAdapter_spec.js +22 -2
  188. package/test/spec/modules/minutemediaplusBidAdapter_spec.js +22 -2
  189. package/test/spec/modules/nativoBidAdapter_spec.js +101 -0
  190. package/test/spec/modules/neuwoRtdProvider_spec.js +0 -1
  191. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
  192. package/test/spec/modules/pairIdSystem_spec.js +68 -0
  193. package/test/spec/modules/pubCommonId_spec.js +0 -17
  194. package/test/spec/modules/pubmaticBidAdapter_spec.js +868 -867
  195. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -5
  196. package/test/spec/modules/rtbhouseBidAdapter_spec.js +2 -2
  197. package/test/spec/modules/vidoomyBidAdapter_spec.js +72 -0
  198. package/test/spec/modules/yieldmoBidAdapter_spec.js +19 -1
  199. package/test/spec/unit/pbjs_api_spec.js +19 -3
  200. package/test/test_index.js +13 -3
  201. package/dist/gridNMBidAdapter.js +0 -1
  202. package/modules/gridNMBidAdapter.js +0 -422
  203. package/modules/gridNMBidAdapter.md +0 -39
  204. package/test/spec/modules/gridNMBidAdapter_spec.js +0 -636
@@ -27,7 +27,12 @@ var adUnits = [
27
27
  params: {
28
28
  id: '123123',
29
29
  pid: '123123',
30
- bidfloor: 0.5 // This is optional
30
+ bidfloor: 0.5, // This is optional
31
+ bcat: ['IAB1-1'], // Optional - default is []
32
+ badv: ['example.com'], // Optional - default is []
33
+ bapp: ['app.com'], // Optional - default is []
34
+ btype: [1, 2, 3], // Optional - default is []
35
+ battr: [1, 2, 3] // Optional - default is []
31
36
  }
32
37
  }
33
38
  ]
@@ -52,7 +57,12 @@ var adUnits = [
52
57
  params: {
53
58
  id: '123123',
54
59
  pid: '123123',
55
- bidfloor: 0.5 // This is optional
60
+ bidfloor: 0.5, // This is optional
61
+ bcat: ['IAB1-1'], // Optional - default is []
62
+ badv: ['example.com'], // Optional - default is []
63
+ bapp: ['app.com'], // Optional - default is []
64
+ btype: [1, 2, 3], // Optional - default is []
65
+ battr: [1, 2, 3] // Optional - default is []
56
66
  }
57
67
  }
58
68
  ]
@@ -68,6 +68,7 @@ export const spec = {
68
68
  const videoBidRequests = bidRequests.filter(request => hasVideoMediaType(request));
69
69
  let serverRequests = [];
70
70
  const eids = getEids(bidRequests[0]) || [];
71
+
71
72
  if (bannerBidRequests.length > 0) {
72
73
  let serverRequest = {
73
74
  pbav: '$prebid.version$',
@@ -80,7 +81,9 @@ export const spec = {
80
81
  userConsent: JSON.stringify({
81
82
  // case of undefined, stringify will remove param
82
83
  gdprApplies: deepAccess(bidderRequest, 'gdprConsent.gdprApplies') || '',
83
- cmp: deepAccess(bidderRequest, 'gdprConsent.consentString') || ''
84
+ cmp: deepAccess(bidderRequest, 'gdprConsent.consentString') || '',
85
+ gpp: deepAccess(bidderRequest, 'gppConsent.gppString') || '',
86
+ gpp_sid: deepAccess(bidderRequest, 'gppConsent.applicableSections') || []
84
87
  }),
85
88
  us_privacy: deepAccess(bidderRequest, 'uspConsent') || ''
86
89
  };
@@ -514,12 +517,19 @@ function openRtbSite(bidRequest, bidderRequest) {
514
517
  */
515
518
  function populateOpenRtbGdpr(openRtbRequest, bidderRequest) {
516
519
  const gdpr = bidderRequest.gdprConsent;
517
- if (gdpr && 'gdprApplies' in gdpr) {
518
- deepSetValue(openRtbRequest, 'regs.ext.gdpr', gdpr.gdprApplies ? 1 : 0);
519
- deepSetValue(openRtbRequest, 'user.ext.consent', gdpr.consentString);
520
+ const gpp = deepAccess(bidderRequest, 'gppConsent.gppString');
521
+ const gppsid = deepAccess(bidderRequest, 'gppConsent.applicableSections');
522
+ if (gpp) {
523
+ deepSetValue(openRtbRequest, 'regs.ext.gpp', gpp);
524
+ } else {
525
+ deepSetValue(openRtbRequest, 'regs.ext.gdpr', gdpr && gdpr.gdprApplies ? 1 : 0);
526
+ deepSetValue(openRtbRequest, 'user.ext.consent', gdpr && gdpr.consentString ? gdpr.consentString : '');
527
+ }
528
+ if (gppsid && gppsid.length > 0) {
529
+ deepSetValue(openRtbRequest, 'regs.ext.gpp_sid', gppsid);
520
530
  }
521
531
  const uspConsent = deepAccess(bidderRequest, 'uspConsent');
522
- if (uspConsent) {
532
+ if (!gpp && uspConsent) {
523
533
  deepSetValue(openRtbRequest, 'regs.ext.us_privacy', uspConsent);
524
534
  }
525
535
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "7.45.0",
3
+ "version": "7.47.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.js",
6
6
  "scripts": {
package/src/config.js CHANGED
@@ -66,158 +66,109 @@ export function newConfig() {
66
66
 
67
67
  function resetConfig() {
68
68
  defaults = {};
69
- let newConfig = {
70
- // `debug` is equivalent to legacy `pbjs.logging` property
71
- _debug: DEFAULT_DEBUG,
72
- get debug() {
73
- return this._debug;
74
- },
75
- set debug(val) {
76
- this._debug = val;
77
- },
78
69
 
79
- // default timeout for all bids
80
- _bidderTimeout: DEFAULT_BIDDER_TIMEOUT,
81
- get bidderTimeout() {
82
- return this._bidderTimeout;
83
- },
84
- set bidderTimeout(val) {
85
- this._bidderTimeout = val;
86
- },
70
+ function getProp(name) {
71
+ return props[name].val;
72
+ }
87
73
 
88
- _publisherDomain: null,
89
- get publisherDomain() {
90
- return this._publisherDomain;
91
- },
92
- set publisherDomain(val) {
93
- logWarn('publisherDomain is deprecated and has no effect since v7 - use pageUrl instead')
94
- this._publisherDomain = val;
95
- },
74
+ function setProp(name, val) {
75
+ props[name].val = val;
76
+ }
96
77
 
97
- // calls existing function which may be moved after deprecation
98
- _priceGranularity: GRANULARITY_OPTIONS.MEDIUM,
99
- set priceGranularity(val) {
100
- if (validatePriceGranularity(val)) {
101
- if (typeof val === 'string') {
102
- this._priceGranularity = (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM;
103
- } else if (isPlainObject(val)) {
104
- this._customPriceBucket = val;
105
- this._priceGranularity = GRANULARITY_OPTIONS.CUSTOM;
106
- logMessage('Using custom price granularity');
78
+ const props = {
79
+ publisherDomain: {
80
+ set(val) {
81
+ if (val != null) {
82
+ logWarn('publisherDomain is deprecated and has no effect since v7 - use pageUrl instead')
107
83
  }
84
+ setProp('publisherDomain', val);
108
85
  }
109
86
  },
110
- get priceGranularity() {
111
- return this._priceGranularity;
112
- },
113
-
114
- _customPriceBucket: {},
115
- get customPriceBucket() {
116
- return this._customPriceBucket;
117
- },
118
-
119
- /**
120
- * mediaTypePriceGranularity
121
- * @type {MediaTypePriceGranularity}
122
- */
123
- _mediaTypePriceGranularity: {},
124
-
125
- get mediaTypePriceGranularity() {
126
- return this._mediaTypePriceGranularity;
127
- },
128
- set mediaTypePriceGranularity(val) {
129
- this._mediaTypePriceGranularity = Object.keys(val).reduce((aggregate, item) => {
130
- if (validatePriceGranularity(val[item])) {
87
+ priceGranularity: {
88
+ val: GRANULARITY_OPTIONS.MEDIUM,
89
+ set(val) {
90
+ if (validatePriceGranularity(val)) {
131
91
  if (typeof val === 'string') {
132
- aggregate[item] = (hasGranularity(val[item])) ? val[item] : this._priceGranularity;
92
+ setProp('priceGranularity', (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM);
133
93
  } else if (isPlainObject(val)) {
134
- aggregate[item] = val[item];
135
- logMessage(`Using custom price granularity for ${item}`);
94
+ setProp('customPriceBucket', val);
95
+ setProp('priceGranularity', GRANULARITY_OPTIONS.CUSTOM)
96
+ logMessage('Using custom price granularity');
136
97
  }
137
- } else {
138
- logWarn(`Invalid price granularity for media type: ${item}`);
139
98
  }
140
- return aggregate;
141
- }, {});
142
- },
143
-
144
- _sendAllBids: DEFAULT_ENABLE_SEND_ALL_BIDS,
145
- get enableSendAllBids() {
146
- return this._sendAllBids;
99
+ }
147
100
  },
148
- set enableSendAllBids(val) {
149
- this._sendAllBids = val;
101
+ customPriceBucket: {
102
+ val: {},
103
+ set() {}
150
104
  },
151
-
152
- _useBidCache: DEFAULT_BID_CACHE,
153
- get useBidCache() {
154
- return this._useBidCache;
105
+ mediaTypePriceGranularity: {
106
+ val: {},
107
+ set(val) {
108
+ val != null && setProp('mediaTypePriceGranularity', Object.keys(val).reduce((aggregate, item) => {
109
+ if (validatePriceGranularity(val[item])) {
110
+ if (typeof val === 'string') {
111
+ aggregate[item] = (hasGranularity(val[item])) ? val[item] : getProp('priceGranularity');
112
+ } else if (isPlainObject(val)) {
113
+ aggregate[item] = val[item];
114
+ logMessage(`Using custom price granularity for ${item}`);
115
+ }
116
+ } else {
117
+ logWarn(`Invalid price granularity for media type: ${item}`);
118
+ }
119
+ return aggregate;
120
+ }, {}));
121
+ }
155
122
  },
156
- set useBidCache(val) {
157
- this._useBidCache = val;
123
+ bidderSequence: {
124
+ val: DEFAULT_BIDDER_SEQUENCE,
125
+ set(val) {
126
+ if (VALID_ORDERS[val]) {
127
+ setProp('bidderSequence', val);
128
+ } else {
129
+ logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
130
+ }
131
+ }
158
132
  },
133
+ auctionOptions: {
134
+ val: {},
135
+ set(val) {
136
+ if (validateauctionOptions(val)) {
137
+ setProp('auctionOptions', val);
138
+ }
139
+ }
140
+ }
141
+ }
142
+ let newConfig = {
143
+ // `debug` is equivalent to legacy `pbjs.logging` property
144
+ debug: DEFAULT_DEBUG,
145
+ bidderTimeout: DEFAULT_BIDDER_TIMEOUT,
146
+ enableSendAllBids: DEFAULT_ENABLE_SEND_ALL_BIDS,
147
+ useBidCache: DEFAULT_BID_CACHE,
159
148
 
160
149
  /**
161
150
  * deviceAccess set to false will disable setCookie, getCookie, hasLocalStorage
162
151
  * @type {boolean}
163
152
  */
164
- _deviceAccess: DEFAULT_DEVICE_ACCESS,
165
- get deviceAccess() {
166
- return this._deviceAccess;
167
- },
168
- set deviceAccess(val) {
169
- this._deviceAccess = val;
170
- },
171
-
172
- _bidderSequence: DEFAULT_BIDDER_SEQUENCE,
173
- get bidderSequence() {
174
- return this._bidderSequence;
175
- },
176
- set bidderSequence(val) {
177
- if (VALID_ORDERS[val]) {
178
- this._bidderSequence = val;
179
- } else {
180
- logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
181
- }
182
- },
153
+ deviceAccess: DEFAULT_DEVICE_ACCESS,
183
154
 
184
155
  // timeout buffer to adjust for bidder CDN latency
185
- _timeoutBuffer: DEFAULT_TIMEOUTBUFFER,
186
- get timeoutBuffer() {
187
- return this._timeoutBuffer;
188
- },
189
- set timeoutBuffer(val) {
190
- this._timeoutBuffer = val;
191
- },
192
-
193
- _disableAjaxTimeout: DEFAULT_DISABLE_AJAX_TIMEOUT,
194
- get disableAjaxTimeout() {
195
- return this._disableAjaxTimeout;
196
- },
197
- set disableAjaxTimeout(val) {
198
- this._disableAjaxTimeout = val;
199
- },
156
+ timeoutBuffer: DEFAULT_TIMEOUTBUFFER,
157
+ disableAjaxTimeout: DEFAULT_DISABLE_AJAX_TIMEOUT,
200
158
 
201
159
  // default max nested iframes for referer detection
202
- _maxNestedIframes: DEFAULT_MAX_NESTED_IFRAMES,
203
- get maxNestedIframes() {
204
- return this._maxNestedIframes;
205
- },
206
- set maxNestedIframes(val) {
207
- this._maxNestedIframes = val;
208
- },
209
-
210
- _auctionOptions: {},
211
- get auctionOptions() {
212
- return this._auctionOptions;
213
- },
214
- set auctionOptions(val) {
215
- if (validateauctionOptions(val)) {
216
- this._auctionOptions = val;
217
- }
218
- },
160
+ maxNestedIframes: DEFAULT_MAX_NESTED_IFRAMES,
219
161
  };
220
162
 
163
+ Object.defineProperties(newConfig,
164
+ Object.fromEntries(Object.entries(props)
165
+ .map(([k, def]) => [k, Object.assign({
166
+ get: getProp.bind(null, k),
167
+ set: setProp.bind(null, k),
168
+ enumerable: true,
169
+ }, def)]))
170
+ );
171
+
221
172
  if (config) {
222
173
  callSubscribers(
223
174
  Object.keys(config).reduce((memo, topic) => {
@@ -332,15 +332,16 @@ describe('1plusXRtdProvider', () => {
332
332
  }
333
333
 
334
334
  it('correctly builds URLs if gdpr parameters are present', () => {
335
- const url1 = getPapiUrl(customer)
336
- const url2 = getPapiUrl(customer, extractConsent(consent))
337
- expect(['&consent_string=myConsent&gdpr_applies=1', '&gdpr_applies=1&consent_string=myConsent']).to.contain(url2.replace(url1, ''))
335
+ const url1 = getPapiUrl(customer);
336
+ const url2 = getPapiUrl(customer, extractConsent(consent));
337
+ expect(['&consent_string=myConsent&gdpr_applies=1', '&gdpr_applies=1&consent_string=myConsent']).to.contain(url2.replace(url1, ''));
338
338
  })
339
339
 
340
- it('correctly builds URLs if fpid parameters are present')
341
- const url1 = getPapiUrl(customer)
342
- const url2 = getPapiUrl(customer, {}, 'my_first_party_id')
343
- expect(url2.replace(url1, '')).to.equal('&fpid=my_first_party_id')
340
+ it('correctly builds URLs if fpid parameters are present', () => {
341
+ const url1 = getPapiUrl(customer);
342
+ const url2 = getPapiUrl(customer, {}, 'my_first_party_id');
343
+ expect(url2.replace(url1, '')).to.equal('&fpid=my_first_party_id');
344
+ })
344
345
  })
345
346
 
346
347
  describe('updateBidderConfig', () => {
@@ -1481,31 +1481,6 @@ describe('Adagio bid adapter', () => {
1481
1481
  });
1482
1482
  });
1483
1483
 
1484
- describe.skip('optional params auto detection', function() {
1485
- it('should auto detect adUnitElementId when GPT is used', function() {
1486
- sandbox.stub(utils, 'getGptSlotInfoForAdUnitCode').withArgs('banner').returns({divId: 'gpt-banner'});
1487
- expect(adagio.autoDetectAdUnitElementId('banner')).to.eq('gpt-banner');
1488
- });
1489
- });
1490
-
1491
- describe.skip('print number handling', function() {
1492
- it('should return 1 if no adunit-code found. This means it is the first auction', function() {
1493
- sandbox.stub(adagio, 'getPageviewId').returns('abc-def');
1494
- expect(adagio.computePrintNumber('adunit-code')).to.eql(1);
1495
- });
1496
-
1497
- it('should increment the adunit print number when the adunit-code has already been used for an other auction', function() {
1498
- sandbox.stub(adagio, 'getPageviewId').returns('abc-def');
1499
-
1500
- window.top.ADAGIO.adUnits['adunit-code'] = {
1501
- pageviewId: 'abc-def',
1502
- printNumber: 1,
1503
- };
1504
-
1505
- expect(adagio.computePrintNumber('adunit-code')).to.eql(2);
1506
- });
1507
- });
1508
-
1509
1484
  describe('site information using refererDetection or window.top', function() {
1510
1485
  it('should returns domain, page and window.referrer in a window.top context', function() {
1511
1486
  const bidderRequest = new BidderRequestBuilder({
@@ -3,7 +3,7 @@ import {spec, storage} from 'modules/admaticBidAdapter.js';
3
3
  import {newBidder} from 'src/adapters/bidderFactory.js';
4
4
  import {getStorageManager} from 'src/storageManager';
5
5
 
6
- const ENDPOINT = 'https://layer.serve.admatic.com.tr/pb?bidder=admatic';
6
+ const ENDPOINT = 'https://layer.serve.admatic.com.tr/pb';
7
7
 
8
8
  describe('admaticBidAdapter', () => {
9
9
  const adapter = newBidder(spec);
@@ -8,6 +8,7 @@ import { getStorageManager } from 'src/storageManager.js';
8
8
 
9
9
  describe('adnuntiusBidAdapter', function () {
10
10
  const URL = 'https://ads.adnuntius.delivery/i?tzo=';
11
+ const EURO_URL = 'https://europe.delivery.adnuntius.com/i?tzo=';
11
12
  const GVLID = 855;
12
13
  const usi = utils.generateUUID()
13
14
  const meta = [{ key: 'usi', value: usi }]
@@ -35,7 +36,7 @@ describe('adnuntiusBidAdapter', function () {
35
36
  const ENDPOINT_URL_VIDEO = `${URL}${tzo}&format=json&userId=${usi}&tt=vast4`;
36
37
  const ENDPOINT_URL_NOCOOKIE = `${URL}${tzo}&format=json&userId=${usi}&noCookies=true`;
37
38
  const ENDPOINT_URL_SEGMENTS = `${URL}${tzo}&format=json&segments=segment1,segment2,segment3&userId=${usi}`;
38
- const ENDPOINT_URL_CONSENT = `${URL}${tzo}&format=json&consentString=consentString&userId=${usi}`;
39
+ const ENDPOINT_URL_CONSENT = `${EURO_URL}${tzo}&format=json&consentString=consentString&userId=${usi}`;
39
40
  const adapter = newBidder(spec);
40
41
 
41
42
  const bidderRequests = [