prebid.js 8.6.0 → 8.8.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 (222) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/a1MediaRtdProvider.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/admaticBidAdapter.js +1 -1
  8. package/dist/adqueryBidAdapter.js +1 -1
  9. package/dist/adqueryIdSystem.js +1 -1
  10. package/dist/adrelevantisBidAdapter.js +1 -1
  11. package/dist/adsinteractiveBidAdapter.js +1 -1
  12. package/dist/adtrgtmeBidAdapter.js +1 -1
  13. package/dist/adxcgBidAdapter.js +1 -1
  14. package/dist/adyoulikeBidAdapter.js +1 -1
  15. package/dist/ajaBidAdapter.js +1 -1
  16. package/dist/alkimiBidAdapter.js +1 -1
  17. package/dist/amxBidAdapter.js +1 -1
  18. package/dist/amxIdSystem.js +1 -1
  19. package/dist/appierAnalyticsAdapter.js +1 -1
  20. package/dist/appnexusBidAdapter.js +1 -1
  21. package/dist/asoBidAdapter.js +1 -1
  22. package/dist/automatadAnalyticsAdapter.js +1 -0
  23. package/dist/axonixBidAdapter.js +1 -1
  24. package/dist/bidViewability.js +1 -1
  25. package/dist/bidglassBidAdapter.js +1 -1
  26. package/dist/big-richmediaBidAdapter.js +1 -1
  27. package/dist/brandmetricsRtdProvider.js +1 -1
  28. package/dist/bridBidAdapter.js +1 -1
  29. package/dist/bridgewellBidAdapter.js +1 -1
  30. package/dist/brightMountainMediaBidAdapter.js +1 -1
  31. package/dist/carodaBidAdapter.js +1 -1
  32. package/dist/chtnwBidAdapter.js +1 -1
  33. package/dist/concertBidAdapter.js +1 -1
  34. package/dist/connatixBidAdapter.js +1 -0
  35. package/dist/connectadBidAdapter.js +1 -1
  36. package/dist/consumableBidAdapter.js +1 -1
  37. package/dist/conversantAnalyticsAdapter.js +1 -1
  38. package/dist/conversantBidAdapter.js +1 -1
  39. package/dist/craftBidAdapter.js +1 -1
  40. package/dist/criteoBidAdapter.js +1 -1
  41. package/dist/cwireBidAdapter.js +1 -1
  42. package/dist/dependencies.json +7 -1
  43. package/dist/dspxBidAdapter.js +1 -1
  44. package/dist/eplanningBidAdapter.js +1 -1
  45. package/dist/euidIdSystem.js +1 -1
  46. package/dist/feedadBidAdapter.js +1 -1
  47. package/dist/finativeBidAdapter.js +1 -1
  48. package/dist/freepassBidAdapter.js +1 -1
  49. package/dist/freewheel-sspBidAdapter.js +1 -1
  50. package/dist/geoedgeRtdProvider.js +1 -1
  51. package/dist/gmosspBidAdapter.js +1 -1
  52. package/dist/goldbachBidAdapter.js +1 -1
  53. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  54. package/dist/greenbidsRtdProvider.js +1 -1
  55. package/dist/gridBidAdapter.js +1 -1
  56. package/dist/gumgumBidAdapter.js +1 -1
  57. package/dist/h12mediaBidAdapter.js +1 -1
  58. package/dist/hypelabBidAdapter.js +1 -1
  59. package/dist/id5IdSystem.js +1 -1
  60. package/dist/imdsBidAdapter.js +1 -1
  61. package/dist/improvedigitalBidAdapter.js +1 -1
  62. package/dist/insticatorBidAdapter.js +1 -1
  63. package/dist/ixBidAdapter.js +1 -1
  64. package/dist/justpremiumBidAdapter.js +1 -1
  65. package/dist/kargoBidAdapter.js +1 -1
  66. package/dist/konduitAnalyticsAdapter.js +1 -1
  67. package/dist/kueezBidAdapter.js +1 -1
  68. package/dist/kueezRtbBidAdapter.js +1 -1
  69. package/dist/kulturemediaBidAdapter.js +1 -1
  70. package/dist/lassoBidAdapter.js +1 -1
  71. package/dist/lifestreetBidAdapter.js +1 -1
  72. package/dist/liveIntentIdSystem.js +1 -1
  73. package/dist/logicadBidAdapter.js +1 -1
  74. package/dist/loglyliftBidAdapter.js +1 -1
  75. package/dist/magniteAnalyticsAdapter.js +1 -1
  76. package/dist/malltvAnalyticsAdapter.js +1 -1
  77. package/dist/marsmediaBidAdapter.js +1 -1
  78. package/dist/mediafuseBidAdapter.js +1 -1
  79. package/dist/medianetBidAdapter.js +1 -1
  80. package/dist/mediasquareBidAdapter.js +1 -1
  81. package/dist/mgidBidAdapter.js +1 -1
  82. package/dist/minutemediaBidAdapter.js +1 -1
  83. package/dist/minutemediaplusBidAdapter.js +1 -1
  84. package/dist/nativoBidAdapter.js +1 -1
  85. package/dist/nexx360BidAdapter.js +1 -1
  86. package/dist/not-for-prod/prebid.js +145 -142
  87. package/dist/oguryBidAdapter.js +1 -1
  88. package/dist/onetagBidAdapter.js +1 -1
  89. package/dist/ooloAnalyticsAdapter.js +1 -1
  90. package/dist/operaadsBidAdapter.js +1 -1
  91. package/dist/operaadsIdSystem.js +1 -0
  92. package/dist/optidigitalBidAdapter.js +1 -1
  93. package/dist/outbrainBidAdapter.js +1 -1
  94. package/dist/oxxionAnalyticsAdapter.js +1 -1
  95. package/dist/parrableIdSystem.js +1 -1
  96. package/dist/pixfutureBidAdapter.js +1 -1
  97. package/dist/prebid-core.js +1 -1
  98. package/dist/publinkIdSystem.js +1 -1
  99. package/dist/pubmaticBidAdapter.js +1 -1
  100. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  101. package/dist/pxyzBidAdapter.js +1 -1
  102. package/dist/quantcastBidAdapter.js +1 -1
  103. package/dist/readpeakBidAdapter.js +1 -1
  104. package/dist/relaidoBidAdapter.js +1 -1
  105. package/dist/retailspotBidAdapter.js +1 -1
  106. package/dist/rhythmoneBidAdapter.js +1 -1
  107. package/dist/riseBidAdapter.js +1 -1
  108. package/dist/rubiconBidAdapter.js +1 -1
  109. package/dist/seedingAllianceBidAdapter.js +1 -1
  110. package/dist/seedtagBidAdapter.js +1 -1
  111. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  112. package/dist/sharethroughBidAdapter.js +1 -1
  113. package/dist/shinezBidAdapter.js +1 -1
  114. package/dist/smaatoBidAdapter.js +1 -1
  115. package/dist/smartadserverBidAdapter.js +1 -1
  116. package/dist/smartxBidAdapter.js +1 -1
  117. package/dist/smartyadsBidAdapter.js +1 -1
  118. package/dist/smilewantedBidAdapter.js +1 -1
  119. package/dist/snigelBidAdapter.js +1 -1
  120. package/dist/sonobiBidAdapter.js +1 -1
  121. package/dist/sovrnAnalyticsAdapter.js +1 -1
  122. package/dist/sovrnBidAdapter.js +1 -1
  123. package/dist/sspBCBidAdapter.js +1 -1
  124. package/dist/stvBidAdapter.js +1 -1
  125. package/dist/sublimeBidAdapter.js +1 -1
  126. package/dist/tappxBidAdapter.js +1 -1
  127. package/dist/targetVideoBidAdapter.js +1 -1
  128. package/dist/teadsBidAdapter.js +1 -1
  129. package/dist/topicsFpdModule.js +1 -1
  130. package/dist/trionBidAdapter.js +1 -1
  131. package/dist/tripleliftBidAdapter.js +1 -1
  132. package/dist/ttdBidAdapter.js +1 -1
  133. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  134. package/dist/uid2IdSystem.js +1 -1
  135. package/dist/underdogmediaBidAdapter.js +1 -1
  136. package/dist/undertoneBidAdapter.js +1 -1
  137. package/dist/vidazooBidAdapter.js +1 -1
  138. package/dist/videobyteBidAdapter.js +1 -1
  139. package/dist/visxBidAdapter.js +1 -1
  140. package/dist/vuukleBidAdapter.js +1 -1
  141. package/dist/widespaceBidAdapter.js +1 -1
  142. package/dist/winrBidAdapter.js +1 -1
  143. package/dist/yahoosspBidAdapter.js +1 -1
  144. package/dist/yieldmoBidAdapter.js +1 -1
  145. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  146. package/integrationExamples/topics/topics-server.js +72 -0
  147. package/modules/.submodules.json +2 -1
  148. package/modules/a1MediaRtdProvider.js +1 -1
  149. package/modules/adagioBidAdapter.js +15 -1
  150. package/modules/adgenerationBidAdapter.js +4 -3
  151. package/modules/admaticBidAdapter.js +5 -0
  152. package/modules/adqueryBidAdapter.js +23 -21
  153. package/modules/adqueryIdSystem.js +45 -30
  154. package/modules/adrelevantisBidAdapter.js +2 -0
  155. package/modules/adsinteractiveBidAdapter.js +2 -0
  156. package/modules/alkimiBidAdapter.js +19 -7
  157. package/modules/automatadAnalyticsAdapter.js +325 -0
  158. package/modules/automatadAnalyticsAdapter.md +23 -0
  159. package/modules/bidViewability.js +7 -0
  160. package/modules/bidViewability.md +9 -8
  161. package/modules/brandmetricsRtdProvider.js +30 -27
  162. package/modules/connatixBidAdapter.js +185 -0
  163. package/modules/connatixBidAdapter.md +37 -0
  164. package/modules/criteoBidAdapter.js +73 -50
  165. package/modules/freepassBidAdapter.js +20 -1
  166. package/modules/freepassBidAdapter.md +4 -1
  167. package/modules/geoedgeRtdProvider.js +43 -13
  168. package/modules/geoedgeRtdProvider.md +2 -1
  169. package/modules/gridBidAdapter.js +1 -8
  170. package/modules/liveIntentIdSystem.js +16 -1
  171. package/modules/medianetBidAdapter.js +7 -4
  172. package/modules/mediasquareBidAdapter.js +3 -0
  173. package/modules/nativoBidAdapter.js +21 -3
  174. package/modules/onetagBidAdapter.js +3 -0
  175. package/modules/operaadsBidAdapter.js +5 -0
  176. package/modules/operaadsBidAdapter.md +5 -5
  177. package/modules/operaadsIdSystem.js +106 -0
  178. package/modules/operaadsIdSystem.md +52 -0
  179. package/modules/optidigitalBidAdapter.js +25 -16
  180. package/modules/oxxionAnalyticsAdapter.js +22 -5
  181. package/modules/rubiconBidAdapter.js +2 -2
  182. package/modules/smartyadsBidAdapter.js +18 -1
  183. package/modules/snigelBidAdapter.js +69 -16
  184. package/modules/snigelBidAdapter.md +9 -3
  185. package/modules/tappxBidAdapter.js +17 -14
  186. package/modules/topicsFpdModule.js +35 -9
  187. package/modules/undertoneBidAdapter.md +1 -1
  188. package/modules/userId/eids.md +7 -0
  189. package/modules/visxBidAdapter.js +51 -1
  190. package/package.json +2 -2
  191. package/src/adloader.js +1 -0
  192. package/src/native.js +2 -2
  193. package/test/spec/modules/adagioBidAdapter_spec.js +89 -0
  194. package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
  195. package/test/spec/modules/admaticBidAdapter_spec.js +5 -0
  196. package/test/spec/modules/adqueryIdSystem_spec.js +13 -24
  197. package/test/spec/modules/alkimiBidAdapter_spec.js +3 -9
  198. package/test/spec/modules/automatadAnalyticsAdapter_spec.js +533 -0
  199. package/test/spec/modules/bidViewability_spec.js +32 -1
  200. package/test/spec/modules/brandmetricsRtdProvider_spec.js +6 -0
  201. package/test/spec/modules/connatixBidAdapter_spec.js +366 -0
  202. package/test/spec/modules/criteoBidAdapter_spec.js +249 -0
  203. package/test/spec/modules/eids_spec.js +48 -0
  204. package/test/spec/modules/freepassBidAdapter_spec.js +44 -0
  205. package/test/spec/modules/geoedgeRtdProvider_spec.js +44 -24
  206. package/test/spec/modules/gridBidAdapter_spec.js +68 -0
  207. package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
  208. package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
  209. package/test/spec/modules/medianetBidAdapter_spec.js +18 -18
  210. package/test/spec/modules/mediasquareBidAdapter_spec.js +5 -0
  211. package/test/spec/modules/nativoBidAdapter_spec.js +6 -1
  212. package/test/spec/modules/onetagBidAdapter_spec.js +69 -0
  213. package/test/spec/modules/operaadsIdSystem_spec.js +53 -0
  214. package/test/spec/modules/optidigitalBidAdapter_spec.js +9 -2
  215. package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +6 -1
  216. package/test/spec/modules/rubiconBidAdapter_spec.js +24 -0
  217. package/test/spec/modules/smartyadsBidAdapter_spec.js +49 -0
  218. package/test/spec/modules/snigelBidAdapter_spec.js +57 -6
  219. package/test/spec/modules/tappxBidAdapter_spec.js +19 -0
  220. package/test/spec/modules/topicsFpdModule_spec.js +102 -1
  221. package/test/spec/modules/visxBidAdapter_spec.js +151 -1
  222. package/test/spec/native_spec.js +5 -3
@@ -3,6 +3,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { config } from '../src/config.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
5
5
  import { INSTREAM as VIDEO_INSTREAM } from '../src/video.js';
6
+ import {getStorageManager} from '../src/storageManager.js';
6
7
  const BIDDER_CODE = 'visx';
7
8
  const GVLID = 154;
8
9
  const BASE_URL = 'https://t.visx.net';
@@ -29,6 +30,7 @@ const LOG_ERROR_MESS = {
29
30
  videoMissing: 'Bid request videoType property is missing - '
30
31
  };
31
32
  const currencyWhiteList = ['EUR', 'USD', 'GBP', 'PLN'];
33
+ export const storage = getStorageManager({bidderCode: BIDDER_CODE});
32
34
  export const spec = {
33
35
  code: BIDDER_CODE,
34
36
  gvlid: GVLID,
@@ -117,10 +119,13 @@ export const spec = {
117
119
  ...(payloadSchain && { schain: payloadSchain })
118
120
  }
119
121
  };
122
+
123
+ const vads = _getUserId();
120
124
  const user = {
121
125
  ext: {
122
126
  ...(payloadUserEids && { eids: payloadUserEids }),
123
- ...(payload.gdpr_consent && { consent: payload.gdpr_consent })
127
+ ...(payload.gdpr_consent && { consent: payload.gdpr_consent }),
128
+ ...(vads && { vads })
124
129
  }
125
130
  };
126
131
  const regs = ('gdpr_applies' in payload) && {
@@ -382,4 +387,49 @@ function _isAdSlotExists(adUnitCode) {
382
387
  return false;
383
388
  }
384
389
 
390
+ // Generate user id (25 chars) with NanoID
391
+ // https://github.com/ai/nanoid/
392
+ function _generateUserId() {
393
+ for (
394
+ var t = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict',
395
+ e = new Date().getTime() % 1073741824,
396
+ i = '',
397
+ o = 0;
398
+ o < 5;
399
+ o++
400
+ ) {
401
+ i += t[e % 64];
402
+ e = Math.floor(e / 64);
403
+ }
404
+ for (o = 20; o--;) i += t[(64 * Math.random()) | 0];
405
+ return i;
406
+ }
407
+
408
+ function _getUserId() {
409
+ const USER_ID_KEY = '__vads';
410
+ let vads;
411
+
412
+ if (storage.cookiesAreEnabled()) {
413
+ vads = storage.getCookie(USER_ID_KEY);
414
+ } else if (storage.localStorageIsEnabled()) {
415
+ vads = storage.getDataFromLocalStorage(USER_ID_KEY);
416
+ }
417
+
418
+ if (vads && vads.length) {
419
+ return vads;
420
+ }
421
+
422
+ vads = _generateUserId();
423
+ if (storage.cookiesAreEnabled()) {
424
+ const expires = new Date(Date.now() + 2592e6).toUTCString();
425
+ storage.setCookie(USER_ID_KEY, vads, expires);
426
+ return vads;
427
+ } else if (storage.localStorageIsEnabled()) {
428
+ storage.setDataInLocalStorage(USER_ID_KEY, vads);
429
+ return vads;
430
+ }
431
+
432
+ return null;
433
+ }
434
+
385
435
  registerBidder(spec);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "8.6.0",
3
+ "version": "8.8.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.js",
6
6
  "scripts": {
@@ -132,7 +132,7 @@
132
132
  "express": "^4.15.4",
133
133
  "fun-hooks": "^0.9.9",
134
134
  "just-clone": "^1.0.2",
135
- "live-connect-js": "^5.0.0"
135
+ "live-connect-js": "^6.0.0"
136
136
  },
137
137
  "optionalDependencies": {
138
138
  "fsevents": "^2.3.2"
package/src/adloader.js CHANGED
@@ -26,6 +26,7 @@ const _approvedLoadExternalJSList = [
26
26
  'airgrid',
27
27
  'clean.io',
28
28
  'a1Media',
29
+ 'geoedge',
29
30
  ]
30
31
 
31
32
  /**
package/src/native.js CHANGED
@@ -780,8 +780,8 @@ export function toLegacyResponse(ortbResponse, ortbRequest) {
780
780
  legacyResponse.impressionTrackers = [];
781
781
  let jsTrackers = [];
782
782
 
783
- if (ortbRequest?.imptrackers) {
784
- legacyResponse.impressionTrackers.push(...ortbRequest.imptrackers);
783
+ if (ortbResponse.imptrackers) {
784
+ legacyResponse.impressionTrackers.push(...ortbResponse.imptrackers);
785
785
  }
786
786
  for (const eventTracker of ortbResponse?.eventtrackers || []) {
787
787
  if (eventTracker.event === TRACKER_EVENTS.impression && eventTracker.method === TRACKER_METHODS.img) {
@@ -697,6 +697,95 @@ describe('Adagio bid adapter', () => {
697
697
  });
698
698
  });
699
699
 
700
+ describe('with GPP', function() {
701
+ const bid01 = new BidRequestBuilder().withParams().build();
702
+
703
+ const regsGpp = 'regs_gpp_consent_string';
704
+ const regsApplicableSections = [2];
705
+
706
+ const ortb2Gpp = 'ortb2_gpp_consent_string';
707
+ const ortb2GppSid = [1];
708
+
709
+ context('When GPP in regs module', function() {
710
+ it('send gpp and gppSid to the server', function() {
711
+ const bidderRequest = new BidderRequestBuilder({
712
+ gppConsent: {
713
+ gppString: regsGpp,
714
+ applicableSections: regsApplicableSections,
715
+ }
716
+ }).build();
717
+
718
+ const requests = spec.buildRequests([bid01], bidderRequest);
719
+
720
+ expect(requests[0].data.regs.gpp).to.equal(regsGpp);
721
+ expect(requests[0].data.regs.gppSid).to.equal(regsApplicableSections);
722
+ });
723
+ });
724
+
725
+ context('When GPP partially defined in regs module', function() {
726
+ it('send gpp and gppSid coming from ortb2 to the server', function() {
727
+ const bidderRequest = new BidderRequestBuilder({
728
+ gppConsent: {
729
+ gppString: regsGpp,
730
+ },
731
+ ortb2: {
732
+ regs: {
733
+ gpp: ortb2Gpp,
734
+ gpp_sid: ortb2GppSid,
735
+ }
736
+ }
737
+ }).build();
738
+
739
+ const requests = spec.buildRequests([bid01], bidderRequest);
740
+
741
+ expect(requests[0].data.regs.gpp).to.equal(ortb2Gpp);
742
+ expect(requests[0].data.regs.gppSid).to.equal(ortb2GppSid);
743
+ });
744
+
745
+ it('send empty gpp and gppSid if no ortb2 fields to the server', function() {
746
+ const bidderRequest = new BidderRequestBuilder({
747
+ gppConsent: {
748
+ gppString: regsGpp,
749
+ }
750
+ }).build();
751
+
752
+ const requests = spec.buildRequests([bid01], bidderRequest);
753
+
754
+ expect(requests[0].data.regs.gpp).to.equal('');
755
+ expect(requests[0].data.regs.gppSid).to.be.empty;
756
+ });
757
+ });
758
+
759
+ context('When GPP defined in ortb2 module', function() {
760
+ it('send gpp and gppSid coming from ortb2 to the server', function() {
761
+ const bidderRequest = new BidderRequestBuilder({
762
+ ortb2: {
763
+ regs: {
764
+ gpp: ortb2Gpp,
765
+ gpp_sid: ortb2GppSid,
766
+ }
767
+ }
768
+ }).build();
769
+
770
+ const requests = spec.buildRequests([bid01], bidderRequest);
771
+
772
+ expect(requests[0].data.regs.gpp).to.equal(ortb2Gpp);
773
+ expect(requests[0].data.regs.gppSid).to.equal(ortb2GppSid);
774
+ });
775
+ });
776
+
777
+ context('When GPP not defined in any modules', function() {
778
+ it('send empty gpp and gppSid', function() {
779
+ const bidderRequest = new BidderRequestBuilder({}).build();
780
+
781
+ const requests = spec.buildRequests([bid01], bidderRequest);
782
+
783
+ expect(requests[0].data.regs.gpp).to.equal('');
784
+ expect(requests[0].data.regs.gppSid).to.be.empty;
785
+ });
786
+ });
787
+ });
788
+
700
789
  describe('with userID modules', function() {
701
790
  const userIdAsEids = [{
702
791
  'source': 'pubcid.org',
@@ -184,12 +184,12 @@ describe('AdgenerationAdapter', function () {
184
184
  }
185
185
  };
186
186
  const data = {
187
- banner: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&imark=1&tp=https%3A%2F%2Fexample.com`,
188
- bannerUSD: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100&currency=USD&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&imark=1&tp=https%3A%2F%2Fexample.com`,
189
- native: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=1x1&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&tp=https%3A%2F%2Fexample.com`,
190
- bannerWithHyperId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&imark=1&tp=https%3A%2F%2Fexample.com&hyper_id=novatiqId`,
191
- bannerWithAdgextCriteoId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&adgext_criteo_id=criteo-id-test-1234567890&imark=1&tp=https%3A%2F%2Fexample.com`,
192
- bannerWithAdgextIds: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.1&adgext_id5_id=id5-id-test-1234567890&adgext_id5_id_link_type=2&adgext_imuid=i.KrAH6ZAZTJOnH5S4N2sogA&adgext_uid2=%5Bobject%20Object%5D&gpid=%2F1111%2Fhomepage%23300x250&uach=%7B%22source%22%3A2%2C%22platform%22%3A%7B%22brand%22%3A%22macOS%22%7D%2C%22browsers%22%3A%5B%7B%22brand%22%3A%22Chromium%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Google%20Chrome%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Not%3AA-Brand%22%2C%22version%22%3A%5B%2299%22%5D%7D%5D%2C%22mobile%22%3A0%7D&schain=%7B%22ver%22%3A%221.0%22%2C%22complete%22%3A1%2C%22nodes%22%3A%5B%7B%22asi%22%3A%22indirectseller.com%22%2C%22sid%22%3A%2200001%22%2C%22hp%22%3A1%7D%5D%7D&imark=1&tp=https%3A%2F%2Fexample.com`,
187
+ banner: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com`,
188
+ bannerUSD: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100&currency=USD&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com`,
189
+ native: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=1x1&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&tp=https%3A%2F%2Fexample.com`,
190
+ bannerWithHyperId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com&hyper_id=novatiqId`,
191
+ bannerWithAdgextCriteoId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&adgext_criteo_id=criteo-id-test-1234567890&imark=1&tp=https%3A%2F%2Fexample.com`,
192
+ bannerWithAdgextIds: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100&currency=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&adgext_id5_id=id5-id-test-1234567890&adgext_id5_id_link_type=2&adgext_imuid=i.KrAH6ZAZTJOnH5S4N2sogA&adgext_uid2=AgAAAAVacu1uAxgAxH%2BHJ8%2BnWlS2H4uVqr6i%2BHBDCNREHD8WKsio%2Fx7D8xXFuq1cJycUU86yXfTH9Xe%2F4C8KkH%2B7UCiU7uQxhyD7Qxnv251pEs6K8oK%2BBPLYR%2B8BLY%2FsJKesa%2FkoKwx1FHgUzIBum582tSy2Oo%2B7C6wYUaaV4QcLr%2F4LPA%3D&gpid=%2F1111%2Fhomepage%23300x250&uach=%7B%22source%22%3A2%2C%22platform%22%3A%7B%22brand%22%3A%22macOS%22%7D%2C%22browsers%22%3A%5B%7B%22brand%22%3A%22Chromium%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Google%20Chrome%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Not%3AA-Brand%22%2C%22version%22%3A%5B%2299%22%5D%7D%5D%2C%22mobile%22%3A0%7D&schain=%7B%22ver%22%3A%221.0%22%2C%22complete%22%3A1%2C%22nodes%22%3A%5B%7B%22asi%22%3A%22indirectseller.com%22%2C%22sid%22%3A%2200001%22%2C%22hp%22%3A1%7D%5D%7D&imark=1&tp=https%3A%2F%2Fexample.com`,
193
193
  };
194
194
  it('sends bid request to ENDPOINT via GET', function () {
195
195
  const request = spec.buildRequests(bidRequests, bidderRequest)[0];
@@ -28,6 +28,7 @@ describe('admaticBidAdapter', () => {
28
28
  'bidderRequestId': '22edbae2733bf6',
29
29
  'auctionId': '1d1a030790a475',
30
30
  'creativeId': 'er2ee',
31
+ 'ortb2Imp': { 'ext': { 'instl': 1 } },
31
32
  'ortb2': { 'badv': ['admatic.com.tr'] }
32
33
  };
33
34
 
@@ -52,6 +53,7 @@ describe('admaticBidAdapter', () => {
52
53
  'networkId': 10433394,
53
54
  'host': 'layer.serve.admatic.com.tr'
54
55
  },
56
+ 'ortb2Imp': { 'ext': { 'instl': 1 } },
55
57
  'ortb2': { 'badv': ['admatic.com.tr'] },
56
58
  'mediaTypes': {
57
59
  'banner': {
@@ -162,6 +164,7 @@ describe('admaticBidAdapter', () => {
162
164
  'networkId': 10433394,
163
165
  'host': 'layer.serve.admatic.com.tr'
164
166
  },
167
+ 'ortb2Imp': { 'ext': { 'instl': 1 } },
165
168
  'ortb2': { 'badv': ['admatic.com.tr'] },
166
169
  'mediaTypes': {
167
170
  'banner': {
@@ -284,6 +287,7 @@ describe('admaticBidAdapter', () => {
284
287
  'sizes': [[300, 250], [728, 90]]
285
288
  }
286
289
  },
290
+ 'ortb2Imp': { 'ext': { 'instl': 1 } },
287
291
  'ortb2': { 'badv': ['admatic.com.tr'] },
288
292
  getFloor: inputParams => {
289
293
  if (inputParams.mediaType === BANNER && inputParams.size[0] === 300 && inputParams.size[1] === 250) {
@@ -308,6 +312,7 @@ describe('admaticBidAdapter', () => {
308
312
  'networkId': 10433394,
309
313
  'host': 'layer.serve.admatic.com.tr'
310
314
  },
315
+ 'ortb2Imp': { 'ext': { 'instl': 1 } },
311
316
  'ortb2': { 'badv': ['admatic.com.tr'] },
312
317
  'adUnitCode': 'adunit-code',
313
318
  'sizes': [[300, 250], [728, 90]],
@@ -1,5 +1,6 @@
1
- import { adqueryIdSubmodule, storage } from 'modules/adqueryIdSystem.js';
2
- import { server } from 'test/mocks/xhr.js';
1
+ import {adqueryIdSubmodule, storage} from 'modules/adqueryIdSystem.js';
2
+ import {server} from 'test/mocks/xhr.js';
3
+ import sinon from 'sinon';
3
4
 
4
5
  const config = {
5
6
  storage: {
@@ -18,7 +19,7 @@ describe('AdqueryIdSystem', function () {
18
19
  });
19
20
  });
20
21
 
21
- describe('getId', function() {
22
+ describe('getId', function () {
22
23
  let getDataFromLocalStorageStub;
23
24
 
24
25
  beforeEach(function() {
@@ -29,7 +30,7 @@ describe('AdqueryIdSystem', function () {
29
30
  getDataFromLocalStorageStub.restore();
30
31
  });
31
32
 
32
- it('gets a adqueryId', function() {
33
+ it('gets a adqueryId', function () {
33
34
  const config = {
34
35
  params: {}
35
36
  };
@@ -37,36 +38,24 @@ describe('AdqueryIdSystem', function () {
37
38
  const callback = adqueryIdSubmodule.getId(config).callback;
38
39
  callback(callbackSpy);
39
40
  const request = server.requests[0];
40
- expect(request.url).to.eq(`https://bidder.adquery.io/prebid/qid`);
41
- request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify({ qid: 'qid' }));
42
- expect(callbackSpy.lastCall.lastArg).to.deep.equal({qid: 'qid'});
41
+ expect(request.url).to.contains(`https://bidder.adquery.io/prebid/qid?qid=`);
42
+ request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({qid: '6dd9eab7dfeab7df6dd9ea'}));
43
+ expect(callbackSpy.lastCall.lastArg).to.deep.equal('6dd9eab7dfeab7df6dd9ea');
43
44
  });
44
45
 
45
- it('gets a cached adqueryId', function() {
46
- const config = {
47
- params: {}
48
- };
49
- getDataFromLocalStorageStub.withArgs('qid').returns('qid');
50
-
51
- const callbackSpy = sinon.spy();
52
- const callback = adqueryIdSubmodule.getId(config).callback;
53
- callback(callbackSpy);
54
- expect(callbackSpy.lastCall.lastArg).to.deep.equal({qid: 'qid'});
55
- });
56
-
57
- it('allows configurable id url', function() {
46
+ it('allows configurable id url', function () {
58
47
  const config = {
59
48
  params: {
60
- url: 'https://bidder.adquery.io'
49
+ url: 'https://another_bidder.adquery.io/qid'
61
50
  }
62
51
  };
63
52
  const callbackSpy = sinon.spy();
64
53
  const callback = adqueryIdSubmodule.getId(config).callback;
65
54
  callback(callbackSpy);
66
55
  const request = server.requests[0];
67
- expect(request.url).to.eq('https://bidder.adquery.io');
68
- request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify({ qid: 'testqid' }));
69
- expect(callbackSpy.lastCall.lastArg).to.deep.equal({qid: 'testqid'});
56
+ expect(request.url).to.contains('https://another_bidder.adquery.io');
57
+ request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({qid: 'testqid'}));
58
+ expect(callbackSpy.lastCall.lastArg).to.deep.equal('testqid');
70
59
  });
71
60
  });
72
61
  });
@@ -14,8 +14,7 @@ const REQUEST = {
14
14
  },
15
15
  'params': {
16
16
  bidFloor: 0.1,
17
- token: 'e64782a4-8e68-4c38-965b-80ccf115d46f',
18
- pos: 7
17
+ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f'
19
18
  },
20
19
  'userIdAsEids': [{
21
20
  'source': 'criteo.com',
@@ -96,10 +95,6 @@ describe('alkimiBidAdapter', function () {
96
95
  delete bid.params.token
97
96
  expect(spec.isBidRequestValid(bid)).to.equal(false)
98
97
 
99
- bid = Object.assign({}, REQUEST)
100
- delete bid.params.bidFloor
101
- expect(spec.isBidRequestValid(bid)).to.equal(false)
102
-
103
98
  bid = Object.assign({}, REQUEST)
104
99
  delete bid.params
105
100
  expect(spec.isBidRequestValid(bid)).to.equal(false)
@@ -109,7 +104,6 @@ describe('alkimiBidAdapter', function () {
109
104
  describe('buildRequests', function () {
110
105
  let bidRequests = [REQUEST]
111
106
  let requestData = {
112
- auctionId: '123',
113
107
  refererInfo: {
114
108
  page: 'http://test.com/path.html'
115
109
  },
@@ -137,10 +131,10 @@ describe('alkimiBidAdapter', function () {
137
131
 
138
132
  it('sends bid request to ENDPOINT via POST', function () {
139
133
  expect(bidderRequest.method).to.equal('POST')
140
- expect(bidderRequest.data.requestId).to.equal('123')
134
+ expect(bidderRequest.data.requestId).to.not.equal(undefined)
141
135
  expect(bidderRequest.data.referer).to.equal('http://test.com/path.html')
142
136
  expect(bidderRequest.data.schain).to.deep.contains({ ver: '1.0', complete: 1, nodes: [{ asi: 'alkimi-onboarding.com', sid: '00001', hp: 1 }] })
143
- expect(bidderRequest.data.signRequest.bids).to.deep.contains({ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f', pos: 7, bidFloor: 0.1, sizes: [{width: 300, height: 250}], playerSizes: [], impMediaTypes: ['Banner'], adUnitCode: 'bannerAdUnitCode' })
137
+ expect(bidderRequest.data.signRequest.bids).to.deep.contains({ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f', bidFloor: 0.1, sizes: [{ width: 300, height: 250 }], playerSizes: [], impMediaTypes: ['Banner'], adUnitCode: 'bannerAdUnitCode', instl: undefined, exp: undefined, banner: { sizes: [[300, 250]] }, video: undefined })
144
138
  expect(bidderRequest.data.signRequest.randomUUID).to.equal(undefined)
145
139
  expect(bidderRequest.data.bidIds).to.deep.contains('456')
146
140
  expect(bidderRequest.data.signature).to.equal(undefined)