prebid.js 6.0.0 → 6.4.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 (201) hide show
  1. package/.babelrc.js +1 -7
  2. package/.circleci/config.yml +1 -1
  3. package/README.md +1 -1
  4. package/browsers.json +13 -29
  5. package/gulpfile.js +88 -82
  6. package/integrationExamples/gpt/weboramaRtdProvider_example.html +23 -14
  7. package/karma.conf.maker.js +2 -2
  8. package/modules/33acrossBidAdapter.js +189 -102
  9. package/modules/adagioBidAdapter.js +1 -1
  10. package/modules/addefendBidAdapter.js +1 -0
  11. package/modules/adheseBidAdapter.js +7 -2
  12. package/modules/adkernelBidAdapter.js +147 -61
  13. package/modules/adlivetechBidAdapter.md +61 -0
  14. package/modules/adlooxAdServerVideo.js +2 -2
  15. package/modules/adlooxAnalyticsAdapter.js +4 -4
  16. package/modules/admanBidAdapter.js +1 -0
  17. package/modules/admixerBidAdapter.js +3 -2
  18. package/modules/adnuntiusBidAdapter.js +5 -2
  19. package/modules/adomikAnalyticsAdapter.js +16 -4
  20. package/modules/adplusBidAdapter.js +203 -0
  21. package/modules/adplusBidAdapter.md +39 -0
  22. package/modules/adxcgBidAdapter.js +311 -359
  23. package/modules/adxcgBidAdapter.md +22 -21
  24. package/modules/adyoulikeBidAdapter.js +7 -2
  25. package/modules/aniviewBidAdapter.js +1 -1
  26. package/modules/appnexusBidAdapter.js +23 -3
  27. package/modules/beachfrontBidAdapter.js +14 -17
  28. package/modules/beopBidAdapter.js +6 -4
  29. package/modules/bidViewability.js +3 -3
  30. package/modules/bidViewabilityIO.js +3 -3
  31. package/modules/codefuelBidAdapter.js +1 -3
  32. package/modules/codefuelBidAdapter.md +3 -3
  33. package/modules/colossussspBidAdapter.js +7 -0
  34. package/modules/compassBidAdapter.js +201 -0
  35. package/modules/compassBidAdapter.md +79 -0
  36. package/modules/craftBidAdapter.js +5 -3
  37. package/modules/criteoBidAdapter.js +1 -1
  38. package/modules/currency.js +2 -2
  39. package/modules/cwireBidAdapter.js +3 -0
  40. package/modules/dailyhuntBidAdapter.js +435 -0
  41. package/modules/dailyhuntBidAdapter.md +4 -0
  42. package/modules/datablocksBidAdapter.js +3 -3
  43. package/modules/dchain.js +149 -0
  44. package/modules/dchain.md +45 -0
  45. package/modules/deepintentBidAdapter.js +1 -1
  46. package/modules/dspxBidAdapter.js +1 -1
  47. package/modules/emx_digitalBidAdapter.js +9 -1
  48. package/modules/engageyaBidAdapter.js +68 -54
  49. package/modules/feedadBidAdapter.js +2 -2
  50. package/modules/feedadBidAdapter.md +4 -2
  51. package/modules/freewheel-sspBidAdapter.js +6 -0
  52. package/modules/futureads.md +48 -0
  53. package/modules/glimpseBidAdapter.js +44 -16
  54. package/modules/goldbachBidAdapter.js +1176 -0
  55. package/modules/goldbachBidAdapter.md +151 -0
  56. package/modules/gptPreAuction.js +11 -5
  57. package/modules/gridBidAdapter.js +5 -4
  58. package/modules/gumgumBidAdapter.js +7 -3
  59. package/modules/id5IdSystem.md +6 -6
  60. package/modules/imRtdProvider.js +31 -0
  61. package/modules/improvedigitalBidAdapter.js +19 -3
  62. package/modules/instreamTracking.js +4 -4
  63. package/modules/intersectionRtdProvider.js +114 -0
  64. package/modules/invibesBidAdapter.js +64 -14
  65. package/modules/invibesBidAdapter.md +2 -1
  66. package/modules/ipromBidAdapter.js +79 -0
  67. package/modules/ixBidAdapter.js +185 -22
  68. package/modules/kinessoIdSystem.js +1 -1
  69. package/modules/limelightDigitalBidAdapter.js +2 -1
  70. package/modules/livewrappedBidAdapter.js +8 -2
  71. package/modules/lotamePanoramaIdSystem.js +80 -8
  72. package/modules/luponmediaBidAdapter.js +570 -0
  73. package/modules/mediasquareBidAdapter.js +1 -9
  74. package/modules/merkleIdSystem.js +5 -0
  75. package/modules/missenaBidAdapter.js +89 -0
  76. package/modules/nativoBidAdapter.js +27 -1
  77. package/modules/nextMillenniumBidAdapter.js +37 -7
  78. package/modules/oguryBidAdapter.js +2 -1
  79. package/modules/openxBidAdapter.js +6 -1
  80. package/modules/prebidServerBidAdapter/index.js +19 -15
  81. package/modules/pubgeniusBidAdapter.js +1 -1
  82. package/modules/pubmaticBidAdapter.js +5 -3
  83. package/modules/pubxaiAnalyticsAdapter.js +17 -0
  84. package/modules/relaidoBidAdapter.js +86 -65
  85. package/modules/richaudienceBidAdapter.js +2 -3
  86. package/modules/rtdModule/index.js +48 -18
  87. package/modules/rubiconBidAdapter.js +31 -19
  88. package/modules/saambaaBidAdapter.js +420 -0
  89. package/modules/saambaaBidAdapter.md +65 -68
  90. package/modules/seedtagBidAdapter.js +6 -0
  91. package/modules/sharedIdSystem.js +27 -1
  92. package/modules/smaatoBidAdapter.js +9 -1
  93. package/modules/smartxBidAdapter.js +17 -1
  94. package/modules/sspBCBidAdapter.js +34 -3
  95. package/modules/tappxBidAdapter.js +3 -1
  96. package/modules/targetVideoBidAdapter.js +187 -0
  97. package/modules/targetVideoBidAdapter.md +34 -0
  98. package/modules/telariaBidAdapter.js +2 -2
  99. package/modules/trustxBidAdapter.js +18 -17
  100. package/modules/undertoneBidAdapter.js +8 -1
  101. package/modules/userId/index.js +27 -2
  102. package/modules/ventes.md +71 -0
  103. package/modules/ventesBidAdapter.js +104 -64
  104. package/modules/ventesBidAdapter.md +0 -1
  105. package/modules/vidoomyBidAdapter.js +65 -108
  106. package/modules/visxBidAdapter.js +20 -3
  107. package/modules/visxBidAdapter.md +4 -6
  108. package/modules/weboramaRtdProvider.js +288 -73
  109. package/modules/weboramaRtdProvider.md +27 -10
  110. package/modules/yahoosspBidAdapter.js +5 -1
  111. package/modules/yahoosspBidAdapter.md +1 -1
  112. package/modules/yieldlabBidAdapter.js +41 -10
  113. package/modules/yieldlabBidAdapter.md +91 -48
  114. package/modules/yieldoneBidAdapter.js +115 -11
  115. package/modules/zetaSspBidAdapter.md +33 -1
  116. package/modules/zeta_global_sspBidAdapter.js +22 -1
  117. package/package.json +6 -1
  118. package/plugins/pbjsGlobals.js +28 -1
  119. package/src/adapterManager.js +14 -8
  120. package/src/auction.js +5 -4
  121. package/src/prebid.js +1 -2
  122. package/src/targeting.js +24 -3
  123. package/src/utils.js +41 -7
  124. package/test/helpers/prebidGlobal.js +1 -0
  125. package/test/spec/integration/faker/googletag.js +6 -0
  126. package/test/spec/modules/33acrossBidAdapter_spec.js +300 -78
  127. package/test/spec/modules/adheseBidAdapter_spec.js +27 -1
  128. package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
  129. package/test/spec/modules/adnuntiusBidAdapter_spec.js +35 -0
  130. package/test/spec/modules/adomikAnalyticsAdapter_spec.js +9 -1
  131. package/test/spec/modules/adplusBidAdapter_spec.js +213 -0
  132. package/test/spec/modules/adxcgBidAdapter_spec.js +820 -571
  133. package/test/spec/modules/adyoulikeBidAdapter_spec.js +26 -0
  134. package/test/spec/modules/appnexusBidAdapter_spec.js +63 -1
  135. package/test/spec/modules/beachfrontBidAdapter_spec.js +65 -1
  136. package/test/spec/modules/beopBidAdapter_spec.js +1 -1
  137. package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
  138. package/test/spec/modules/bidViewability_spec.js +4 -4
  139. package/test/spec/modules/codefuelBidAdapter_spec.js +1 -1
  140. package/test/spec/modules/colossussspBidAdapter_spec.js +9 -0
  141. package/test/spec/modules/compassBidAdapter_spec.js +397 -0
  142. package/test/spec/modules/cwireBidAdapter_spec.js +10 -8
  143. package/test/spec/modules/dailyhuntBidAdapter_spec.js +404 -0
  144. package/test/spec/modules/datablocksBidAdapter_spec.js +3 -3
  145. package/test/spec/modules/dchain_spec.js +329 -0
  146. package/test/spec/modules/emx_digitalBidAdapter_spec.js +10 -0
  147. package/test/spec/modules/engageyaBidAdapter_spec.js +231 -95
  148. package/test/spec/modules/eplanningBidAdapter_spec.js +8 -8
  149. package/test/spec/modules/feedadBidAdapter_spec.js +15 -0
  150. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +19 -0
  151. package/test/spec/modules/glimpseBidAdapter_spec.js +33 -0
  152. package/test/spec/modules/goldbachBidAdapter_spec.js +1359 -0
  153. package/test/spec/modules/gptPreAuction_spec.js +58 -4
  154. package/test/spec/modules/gumgumBidAdapter_spec.js +6 -0
  155. package/test/spec/modules/imRtdProvider_spec.js +25 -0
  156. package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -1
  157. package/test/spec/modules/intersectionRtdProvider_spec.js +141 -0
  158. package/test/spec/modules/invibesBidAdapter_spec.js +148 -4
  159. package/test/spec/modules/ipromBidAdapter_spec.js +195 -0
  160. package/test/spec/modules/ixBidAdapter_spec.js +293 -2
  161. package/test/spec/modules/konduitWrapper_spec.js +0 -1
  162. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +10 -7
  163. package/test/spec/modules/livewrappedBidAdapter_spec.js +31 -0
  164. package/test/spec/modules/lotamePanoramaIdSystem_spec.js +227 -0
  165. package/test/spec/modules/luponmediaBidAdapter_spec.js +412 -0
  166. package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -4
  167. package/test/spec/modules/merkleIdSystem_spec.js +18 -0
  168. package/test/spec/modules/missenaBidAdapter_spec.js +134 -0
  169. package/test/spec/modules/nativoBidAdapter_spec.js +35 -18
  170. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +26 -1
  171. package/test/spec/modules/oguryBidAdapter_spec.js +13 -11
  172. package/test/spec/modules/openxBidAdapter_spec.js +5 -0
  173. package/test/spec/modules/prebidServerBidAdapter_spec.js +62 -2
  174. package/test/spec/modules/pubgeniusBidAdapter_spec.js +3 -3
  175. package/test/spec/modules/pubmaticBidAdapter_spec.js +1 -1
  176. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +11 -0
  177. package/test/spec/modules/realTimeDataModule_spec.js +135 -49
  178. package/test/spec/modules/relaidoBidAdapter_spec.js +71 -63
  179. package/test/spec/modules/richaudienceBidAdapter_spec.js +2 -2
  180. package/test/spec/modules/rubiconBidAdapter_spec.js +65 -9
  181. package/test/spec/modules/seedtagBidAdapter_spec.js +3 -0
  182. package/test/spec/modules/sharedIdSystem_spec.js +52 -6
  183. package/test/spec/modules/smaatoBidAdapter_spec.js +61 -0
  184. package/test/spec/modules/smartxBidAdapter_spec.js +9 -0
  185. package/test/spec/modules/sspBCBidAdapter_spec.js +33 -3
  186. package/test/spec/modules/tappxBidAdapter_spec.js +4 -0
  187. package/test/spec/modules/targetVideoBidAdapter_spec.js +96 -0
  188. package/test/spec/modules/trustxBidAdapter_spec.js +42 -0
  189. package/test/spec/modules/userId_spec.js +51 -0
  190. package/test/spec/modules/vidoomyBidAdapter_spec.js +32 -13
  191. package/test/spec/modules/visxBidAdapter_spec.js +121 -5
  192. package/test/spec/modules/weboramaRtdProvider_spec.js +408 -214
  193. package/test/spec/modules/yahoosspBidAdapter_spec.js +28 -1
  194. package/test/spec/modules/yieldlabBidAdapter_spec.js +81 -0
  195. package/test/spec/modules/yieldoneBidAdapter_spec.js +299 -53
  196. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +33 -1
  197. package/test/spec/unit/core/adapterManager_spec.js +24 -6
  198. package/test/spec/unit/core/targeting_spec.js +116 -0
  199. package/test/spec/utils_spec.js +38 -0
  200. package/test/test_deps.js +3 -0
  201. package/test/test_index.js +1 -3
@@ -0,0 +1,203 @@
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
+ import * as utils from '../src/utils.js';
3
+ import { BANNER } from '../src/mediaTypes.js';
4
+ import { getStorageManager } from '../src/storageManager.js';
5
+
6
+ // #region Constants
7
+ export const BIDDER_CODE = 'adplus';
8
+ export const ADPLUS_ENDPOINT = 'https://ssp.ad-plus.com.tr/server/headerBidding';
9
+ export const DGID_CODE = 'adplus_dg_id';
10
+ export const SESSION_CODE = 'adplus_s_id';
11
+ export const storage = getStorageManager(undefined, BIDDER_CODE);
12
+ const COOKIE_EXP = 1000 * 60 * 60 * 24; // 1 day
13
+ // #endregion
14
+
15
+ // #region Helpers
16
+ export function isValidUuid (uuid) {
17
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(
18
+ uuid
19
+ );
20
+ }
21
+
22
+ function getSessionId() {
23
+ let sid = storage.cookiesAreEnabled() && storage.getCookie(SESSION_CODE);
24
+
25
+ if (
26
+ !sid || !isValidUuid(sid)
27
+ ) {
28
+ sid = utils.generateUUID();
29
+ setSessionId(sid);
30
+ }
31
+
32
+ return sid;
33
+ }
34
+
35
+ function setSessionId(sid) {
36
+ if (storage.cookiesAreEnabled()) {
37
+ const expires = new Date(Date.now() + COOKIE_EXP).toISOString();
38
+
39
+ storage.setCookie(SESSION_CODE, sid, expires);
40
+ }
41
+ }
42
+ // #endregion
43
+
44
+ // #region Bid request validation
45
+ function isBidRequestValid(bid) {
46
+ if (!bid) {
47
+ utils.logError(BIDDER_CODE, 'bid, can not be empty', bid);
48
+ return false;
49
+ }
50
+
51
+ if (!bid.params) {
52
+ utils.logError(BIDDER_CODE, 'bid.params is required.');
53
+ return false;
54
+ }
55
+
56
+ if (!bid.params.adUnitId || typeof bid.params.adUnitId !== 'string') {
57
+ utils.logError(
58
+ BIDDER_CODE,
59
+ 'bid.params.adUnitId is missing or has wrong type.'
60
+ );
61
+ return false;
62
+ }
63
+
64
+ if (!bid.params.inventoryId || typeof bid.params.inventoryId !== 'string') {
65
+ utils.logError(
66
+ BIDDER_CODE,
67
+ 'bid.params.inventoryId is missing or has wrong type.'
68
+ );
69
+ return false;
70
+ }
71
+
72
+ if (
73
+ !bid.mediaTypes ||
74
+ !bid.mediaTypes[BANNER] ||
75
+ !utils.isArray(bid.mediaTypes[BANNER].sizes) ||
76
+ bid.mediaTypes[BANNER].sizes.length <= 0 ||
77
+ !utils.isArrayOfNums(bid.mediaTypes[BANNER].sizes[0])
78
+ ) {
79
+ utils.logError(BIDDER_CODE, 'Wrong or missing size parameters.');
80
+ return false;
81
+ }
82
+
83
+ return true;
84
+ }
85
+ // #endregion
86
+
87
+ // #region Building the bid requests
88
+ /**
89
+ *
90
+ * @param {object} bid
91
+ * @returns
92
+ */
93
+ function createBidRequest(bid) {
94
+ // Developer Params
95
+ const {
96
+ inventoryId,
97
+ adUnitId,
98
+ extraData,
99
+ yearOfBirth,
100
+ gender,
101
+ categories,
102
+ latitude,
103
+ longitude,
104
+ sdkVersion,
105
+ } = bid.params;
106
+
107
+ return {
108
+ method: 'GET',
109
+ url: ADPLUS_ENDPOINT,
110
+ data: utils.cleanObj({
111
+ bidId: bid.bidId,
112
+ inventoryId,
113
+ adUnitId,
114
+ adUnitWidth: bid.mediaTypes[BANNER].sizes[0][0],
115
+ adUnitHeight: bid.mediaTypes[BANNER].sizes[0][1],
116
+ extraData,
117
+ yearOfBirth,
118
+ gender,
119
+ categories,
120
+ latitude,
121
+ longitude,
122
+ sdkVersion: sdkVersion || '1',
123
+ session: getSessionId(),
124
+ interstitial: 0,
125
+ token: typeof window.top === 'object' && window.top[DGID_CODE] ? window.top[DGID_CODE] : undefined,
126
+ secure: window.location.protocol === 'https:' ? 1 : 0,
127
+ screenWidth: screen.width,
128
+ screenHeight: screen.height,
129
+ language: window.navigator.language || 'en-US',
130
+ pageUrl: window.location.href,
131
+ domain: window.location.hostname,
132
+ referrer: window.location.referrer,
133
+ }),
134
+ };
135
+ }
136
+
137
+ function buildRequests(validBidRequests, bidderRequest) {
138
+ return validBidRequests.map((req) => createBidRequest(req));
139
+ }
140
+ // #endregion
141
+
142
+ // #region Interpreting Responses
143
+ /**
144
+ *
145
+ * @param {HeaderBiddingResponse} responseData
146
+ * @param { object } bidParams
147
+ * @returns
148
+ */
149
+ function createAdResponse(responseData, bidParams) {
150
+ return {
151
+ requestId: responseData.requestID,
152
+ cpm: responseData.cpm,
153
+ currency: responseData.currency,
154
+ width: responseData.width,
155
+ height: responseData.height,
156
+ creativeId: responseData.creativeID,
157
+ dealId: responseData.dealID,
158
+ netRevenue: responseData.netRevenue,
159
+ ttl: responseData.ttl,
160
+ ad: responseData.ad,
161
+ mediaType: responseData.mediaType,
162
+ meta: {
163
+ advertiserDomains: responseData.advertiserDomains,
164
+ primaryCatId: utils.isArray(responseData.categoryIDs) && responseData.categoryIDs.length > 0
165
+ ? responseData.categoryIDs[0] : undefined,
166
+ secondaryCatIds: responseData.categoryIDs,
167
+ },
168
+ };
169
+ }
170
+
171
+ function interpretResponse(response, request) {
172
+ // In case of empty response
173
+ if (
174
+ response.body == null ||
175
+ !utils.isArray(response.body) ||
176
+ response.body.length === 0
177
+ ) {
178
+ return [];
179
+ }
180
+ const bids = response.body.map((bid) => createAdResponse(bid));
181
+ return bids;
182
+ }
183
+ // #endregion
184
+
185
+ // #region Bidder
186
+ export const spec = {
187
+ code: BIDDER_CODE,
188
+ supportedMediaTypes: [BANNER],
189
+ isBidRequestValid,
190
+ buildRequests,
191
+ interpretResponse,
192
+ onTimeout(timeoutData) {
193
+ utils.logError('Adplus adapter timed out for the auction.', timeoutData);
194
+ },
195
+ onBidWon(bid) {
196
+ utils.logInfo(
197
+ `Adplus adapter won the auction. Bid id: ${bid.bidId}, Ad Unit Id: ${bid.adUnitId}, Inventory Id: ${bid.inventoryId}`
198
+ );
199
+ },
200
+ };
201
+
202
+ registerBidder(spec);
203
+ // #endregion
@@ -0,0 +1,39 @@
1
+ # Overview
2
+
3
+ Module Name: AdPlus Bidder Adapter
4
+
5
+ Module Type: Bidder Adapter
6
+
7
+ Maintainer: adplus.destek@yaani.com.tr
8
+
9
+ # Description
10
+
11
+ AdPlus Prebid.js Bidder Adapter. Only banner formats are supported.
12
+
13
+ About us : https://ssp.ad-plus.com.tr/
14
+
15
+ # Test Parameters
16
+
17
+ ```javascript
18
+ var adUnits = [
19
+ {
20
+ code: "div-adplus",
21
+ mediaTypes: {
22
+ banner: {
23
+ sizes: [
24
+ [300, 250],
25
+ ],
26
+ },
27
+ },
28
+ bids: [
29
+ {
30
+ bidder: "adplus",
31
+ params: {
32
+ inventoryId: "-1",
33
+ adUnitId: "-3",
34
+ },
35
+ },
36
+ ],
37
+ },
38
+ ];
39
+ ```