prebid.js 9.40.0 → 9.41.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 (191) hide show
  1. package/dist/33acrossAnalyticsAdapter.js +1 -1
  2. package/dist/33acrossBidAdapter.js +1 -1
  3. package/dist/33acrossIdSystem.js +1 -1
  4. package/dist/BTBidAdapter.js +1 -1
  5. package/dist/adagioAnalyticsAdapter.js +1 -1
  6. package/dist/adagioBidAdapter.js +1 -1
  7. package/dist/adagioUtils.js +1 -1
  8. package/dist/addefendBidAdapter.js +1 -1
  9. package/dist/adgenerationBidAdapter.js +1 -1
  10. package/dist/adlooxRtdProvider.js +1 -1
  11. package/dist/adqueryBidAdapter.js +1 -1
  12. package/dist/adrelevantisBidAdapter.js +1 -1
  13. package/dist/adstirBidAdapter.js +1 -1
  14. package/dist/adtrgtmeBidAdapter.js +1 -1
  15. package/dist/adxcgAnalyticsAdapter.js +1 -1
  16. package/dist/adxcgBidAdapter.js +1 -1
  17. package/dist/adyoulikeBidAdapter.js +1 -1
  18. package/dist/agmaAnalyticsAdapter.js +1 -1
  19. package/dist/ajaBidAdapter.js +1 -1
  20. package/dist/amxBidAdapter.js +1 -1
  21. package/dist/amxIdSystem.js +1 -1
  22. package/dist/aniviewBidAdapter.js +1 -1
  23. package/dist/appierAnalyticsAdapter.js +1 -1
  24. package/dist/appnexusBidAdapter.js +1 -1
  25. package/dist/asoBidAdapter.js +1 -1
  26. package/dist/axonixBidAdapter.js +1 -1
  27. package/dist/beopBidAdapter.js +1 -1
  28. package/dist/bidglassBidAdapter.js +1 -1
  29. package/dist/big-richmediaBidAdapter.js +1 -1
  30. package/dist/bitmediaBidAdapter.js +1 -1
  31. package/dist/braveUtils.js +1 -1
  32. package/dist/bridBidAdapter.js +1 -1
  33. package/dist/bridgeuppBidAdapter.js +1 -1
  34. package/dist/bridgewellBidAdapter.js +1 -1
  35. package/dist/brightMountainMediaBidAdapter.js +1 -1
  36. package/dist/carodaBidAdapter.js +1 -1
  37. package/dist/chtnwBidAdapter.js +1 -1
  38. package/dist/chunk-core.js +1 -1
  39. package/dist/concertBidAdapter.js +1 -1
  40. package/dist/connectadBidAdapter.js +1 -1
  41. package/dist/consumableBidAdapter.js +1 -1
  42. package/dist/contxtfulBidAdapter.js +1 -1
  43. package/dist/conversantAnalyticsAdapter.js +1 -1
  44. package/dist/conversantBidAdapter.js +1 -1
  45. package/dist/craftBidAdapter.js +1 -1
  46. package/dist/criteoBidAdapter.js +1 -1
  47. package/dist/cwireBidAdapter.js +1 -1
  48. package/dist/dailymotionBidAdapter.js +1 -1
  49. package/dist/dependencies.json +4 -0
  50. package/dist/dspxBidAdapter.js +1 -1
  51. package/dist/dxkultureBidAdapter.js +1 -1
  52. package/dist/eplanningBidAdapter.js +1 -1
  53. package/dist/epomDspBidAdapter.js +1 -0
  54. package/dist/equativBidAdapter.js +1 -1
  55. package/dist/eskimiBidAdapter.js +1 -1
  56. package/dist/euidIdSystem.js +1 -1
  57. package/dist/exadsBidAdapter.js +1 -1
  58. package/dist/excoBidAdapter.js +1 -1
  59. package/dist/feedadBidAdapter.js +1 -1
  60. package/dist/finativeBidAdapter.js +1 -1
  61. package/dist/freewheel-sspBidAdapter.js +1 -1
  62. package/dist/gmosspBidAdapter.js +1 -1
  63. package/dist/goldbachBidAdapter.js +1 -1
  64. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  65. package/dist/greenbidsBidAdapter.js +1 -1
  66. package/dist/greenbidsRtdProvider.js +1 -1
  67. package/dist/gridBidAdapter.js +1 -1
  68. package/dist/gumgumBidAdapter.js +1 -1
  69. package/dist/h12mediaBidAdapter.js +1 -1
  70. package/dist/hypelabBidAdapter.js +1 -1
  71. package/dist/id5AnalyticsAdapter.js +1 -1
  72. package/dist/id5IdSystem.js +1 -1
  73. package/dist/imdsBidAdapter.js +1 -1
  74. package/dist/improvedigitalBidAdapter.js +1 -1
  75. package/dist/inmobiBidAdapter.js +1 -1
  76. package/dist/insticatorBidAdapter.js +1 -1
  77. package/dist/intentIqAnalyticsAdapter.js +1 -1
  78. package/dist/ixBidAdapter.js +1 -1
  79. package/dist/jixieBidAdapter.js +1 -1
  80. package/dist/justpremiumBidAdapter.js +1 -1
  81. package/dist/kargoBidAdapter.js +1 -1
  82. package/dist/kimberliteBidAdapter.js +1 -1
  83. package/dist/konduitAnalyticsAdapter.js +1 -1
  84. package/dist/kueezBidAdapter.js +1 -1
  85. package/dist/lassoBidAdapter.js +1 -1
  86. package/dist/lifestreetBidAdapter.js +1 -1
  87. package/dist/liveIntentId.js +1 -1
  88. package/dist/logicadBidAdapter.js +1 -1
  89. package/dist/loglyliftBidAdapter.js +1 -1
  90. package/dist/luceadBidAdapter.js +1 -1
  91. package/dist/mabidderBidAdapter.js +1 -1
  92. package/dist/madsenseBidAdapter.js +1 -1
  93. package/dist/magniteAnalyticsAdapter.js +1 -1
  94. package/dist/malltvAnalyticsAdapter.js +1 -1
  95. package/dist/marsmediaBidAdapter.js +1 -1
  96. package/dist/mediafuseBidAdapter.js +1 -1
  97. package/dist/medianetBidAdapter.js +1 -1
  98. package/dist/medianetUtils.js +1 -1
  99. package/dist/mediasquareBidAdapter.js +1 -1
  100. package/dist/mgidBidAdapter.js +1 -1
  101. package/dist/missenaBidAdapter.js +1 -1
  102. package/dist/nextMillenniumBidAdapter.js +1 -1
  103. package/dist/nexx360BidAdapter.js +1 -1
  104. package/dist/nobidAnalyticsAdapter.js +1 -1
  105. package/dist/nobidBidAdapter.js +1 -1
  106. package/dist/nodalsAiRtdProvider.js +1 -1
  107. package/dist/not-for-prod/prebid.js +170 -168
  108. package/dist/oguryBidAdapter.js +1 -1
  109. package/dist/onetagBidAdapter.js +1 -1
  110. package/dist/ooloAnalyticsAdapter.js +1 -1
  111. package/dist/openxBidAdapter.js +1 -1
  112. package/dist/optidigitalBidAdapter.js +1 -1
  113. package/dist/orbidderBidAdapter.js +1 -1
  114. package/dist/outbrainBidAdapter.js +1 -1
  115. package/dist/pixfutureBidAdapter.js +1 -1
  116. package/dist/publinkIdSystem.js +1 -1
  117. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  118. package/dist/pubmaticBidAdapter.js +1 -1
  119. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  120. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  121. package/dist/pxyzBidAdapter.js +1 -1
  122. package/dist/quantcastBidAdapter.js +1 -1
  123. package/dist/raveltechRtdProvider.js +1 -0
  124. package/dist/readpeakBidAdapter.js +1 -1
  125. package/dist/relaidoBidAdapter.js +1 -1
  126. package/dist/retailspotBidAdapter.js +1 -1
  127. package/dist/rhythmoneBidAdapter.js +1 -1
  128. package/dist/riseUtils.js +1 -1
  129. package/dist/rubiconBidAdapter.js +1 -1
  130. package/dist/seedingAllianceBidAdapter.js +1 -1
  131. package/dist/seedtagBidAdapter.js +1 -1
  132. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  133. package/dist/sharethroughBidAdapter.js +1 -1
  134. package/dist/showheroes-bsBidAdapter.js +1 -1
  135. package/dist/smaatoBidAdapter.js +1 -1
  136. package/dist/smartadserverBidAdapter.js +1 -1
  137. package/dist/smartxBidAdapter.js +1 -1
  138. package/dist/smilewantedBidAdapter.js +1 -1
  139. package/dist/snigelBidAdapter.js +1 -1
  140. package/dist/sonobiBidAdapter.js +1 -1
  141. package/dist/sovrnBidAdapter.js +1 -1
  142. package/dist/sparteoBidAdapter.js +1 -1
  143. package/dist/sspBCBidAdapter.js +1 -1
  144. package/dist/stvBidAdapter.js +1 -1
  145. package/dist/sublimeBidAdapter.js +1 -1
  146. package/dist/taboolaBidAdapter.js +1 -1
  147. package/dist/tappxBidAdapter.js +1 -1
  148. package/dist/targetVideoBidAdapter.js +1 -1
  149. package/dist/teadsBidAdapter.js +1 -1
  150. package/dist/terceptAnalyticsAdapter.js +1 -1
  151. package/dist/themoneytizerBidAdapter.js +1 -1
  152. package/dist/trionBidAdapter.js +1 -1
  153. package/dist/tripleliftBidAdapter.js +1 -1
  154. package/dist/ttdBidAdapter.js +1 -1
  155. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  156. package/dist/uid2IdSystem.js +1 -1
  157. package/dist/underdogmediaBidAdapter.js +1 -1
  158. package/dist/undertoneBidAdapter.js +1 -1
  159. package/dist/unrulyBidAdapter.js +1 -1
  160. package/dist/vidazooUtils.js +1 -1
  161. package/dist/videobyteBidAdapter.js +1 -1
  162. package/dist/visxBidAdapter.js +1 -1
  163. package/dist/vuukleBidAdapter.js +1 -1
  164. package/dist/widespaceBidAdapter.js +1 -1
  165. package/dist/winrBidAdapter.js +1 -1
  166. package/dist/yahooAdsBidAdapter.js +1 -1
  167. package/dist/yandexBidAdapter.js +1 -1
  168. package/dist/yieldmoBidAdapter.js +1 -1
  169. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  170. package/dist/yieldoneBidAdapter.js +1 -1
  171. package/gulpfile.js +2 -1
  172. package/integrationExamples/gpt/raveltechRtdProvider_example.html +379 -0
  173. package/libraries/braveUtils/index.js +1 -1
  174. package/libraries/riseUtils/index.js +1 -1
  175. package/modules/epomDspBidAdapter.js +177 -0
  176. package/modules/epomDspBidAdapter.md +170 -0
  177. package/modules/equativBidAdapter.js +14 -3
  178. package/modules/goldbachBidAdapter.js +160 -300
  179. package/modules/raveltechRtdProvider.js +131 -0
  180. package/modules/raveltechRtdProvider.md +61 -0
  181. package/modules/seedtagBidAdapter.js +1 -0
  182. package/modules/yandexBidAdapter.js +4 -0
  183. package/modules/yieldoneBidAdapter.js +6 -0
  184. package/package.json +2 -2
  185. package/test/spec/modules/epomDspBidAdapter_spec.js +73 -0
  186. package/test/spec/modules/equativBidAdapter_spec.js +19 -1
  187. package/test/spec/modules/goldbachBidAdapter_spec.js +227 -499
  188. package/test/spec/modules/raveltechRtdProvider_spec.js +108 -0
  189. package/test/spec/modules/seedtagBidAdapter_spec.js +56 -2
  190. package/test/spec/modules/yandexBidAdapter_spec.js +6 -0
  191. package/test/spec/modules/yieldoneBidAdapter_spec.js +40 -0
@@ -0,0 +1,108 @@
1
+ import {hook} from '../../../src/hook';
2
+ import {BANNER} from '../../../src/mediaTypes.js';
3
+ import {raveltechSubmodule} from 'modules/raveltechRtdProvider';
4
+ import adapterManager from '../../../src/adapterManager.js';
5
+ import {registerBidder} from 'src/adapters/bidderFactory.js';
6
+
7
+ describe('raveltechRtdProvider', () => {
8
+ const fakeBuildRequests = sinon.spy((valibBidRequests) => {
9
+ return { method: 'POST', data: { count: valibBidRequests.length, uids: valibBidRequests[0]?.userIdAsEids }, url: 'https://www.fakebidder.com' }
10
+ });
11
+
12
+ const fakeZkad = sinon.spy((id) => id.substr(0, 3));
13
+ const fakeAjax = sinon.spy();
14
+
15
+ const fakeBidReq = {
16
+ adUnitCode: 'adunit',
17
+ adUnitId: '123',
18
+ auctionId: 'abc',
19
+ bidId: 'abc123',
20
+ userIdAsEids: [
21
+ { source: 'usersource.com', uids: [ { id: 'testid123', atype: 1 } ] }
22
+ ]
23
+ };
24
+
25
+ before(() => {
26
+ hook.ready();
27
+ // Setup fake bidder
28
+ const stubBidder = {
29
+ code: 'test',
30
+ supportedMediaTypes: [BANNER],
31
+ buildRequests: fakeBuildRequests,
32
+ interpretResponse: () => [],
33
+ isBidRequestValid: () => true
34
+ };
35
+ registerBidder(stubBidder);
36
+ adapterManager.aliasBidAdapter('test', 'alias1');
37
+ adapterManager.aliasBidAdapter('test', 'alias2');
38
+
39
+ // Init module
40
+ raveltechSubmodule.init({ params: { bidders: [ 'alias1', 'test' ], preserveOriginalBid: true } });
41
+ })
42
+
43
+ afterEach(() => {
44
+ fakeBuildRequests.resetHistory();
45
+ fakeZkad.resetHistory();
46
+ fakeAjax.resetHistory();
47
+ })
48
+
49
+ it('do not wrap bidder not in bidders params', () => {
50
+ adapterManager.getBidAdapter('alias2').callBids({
51
+ auctionId: '123',
52
+ bidderCode: 'alias2',
53
+ bidderRequestId: 'abc',
54
+ bids: [ { ...fakeBidReq, bidder: 'alias2' } ]
55
+ }, sinon.stub(), sinon.stub(), fakeAjax, sinon.stub(), sinon.stub());
56
+ expect(fakeAjax.calledOnce).to.be.true;
57
+ expect(fakeZkad.called).to.be.false;
58
+ expect(fakeBuildRequests.calledOnce).to.be.true;
59
+ expect(fakeAjax.getCall(0).args[2]).to.contain('"id":"testid123"');
60
+ expect(fakeAjax.getCall(0).args[2]).not.to.contain('"pbjsAdapter":"test"');
61
+ })
62
+
63
+ it('wrap bidder only by alias', () => {
64
+ adapterManager.getBidAdapter('alias2').callBids({
65
+ auctionId: '123',
66
+ bidderCode: 'test',
67
+ bidderRequestId: 'abc',
68
+ bids: [ { ...fakeBidReq, bidder: 'test' } ]
69
+ }, sinon.stub(), sinon.stub(), fakeAjax, sinon.stub(), sinon.stub());
70
+ expect(fakeAjax.calledOnce).to.be.true;
71
+ expect(fakeZkad.called).to.be.false;
72
+ expect(fakeBuildRequests.calledOnce).to.be.true;
73
+ expect(fakeAjax.getCall(0).args[2]).to.contain('"id":"testid123"');
74
+ expect(fakeAjax.getCall(0).args[2]).not.to.contain('"pbjsAdapter":"test"');
75
+ })
76
+
77
+ it('do not call ravel when ZKAD unavailable', () => {
78
+ adapterManager.getBidAdapter('alias1').callBids({
79
+ auctionId: '123',
80
+ bidderCode: 'test',
81
+ bidderRequestId: 'abc',
82
+ bids: [ { ...fakeBidReq, bidder: 'test' } ]
83
+ }, sinon.stub(), sinon.stub(), fakeAjax, sinon.stub(), sinon.stub());
84
+ expect(fakeAjax.calledOnce).to.be.true;
85
+ expect(fakeZkad.called).to.be.false;
86
+ expect(fakeBuildRequests.calledOnce).to.be.true;
87
+ expect(fakeAjax.getCall(0).args[2]).to.contain('"id":"testid123"');
88
+ expect(fakeAjax.getCall(0).args[2]).not.to.contain('"pbjsAdapter":"test"');
89
+ })
90
+
91
+ it('successfully replace uids with ZKAD', () => {
92
+ window.ZKAD = { anonymizeID: fakeZkad, ready: true };
93
+ adapterManager.getBidAdapter('alias1').callBids({
94
+ auctionId: '123',
95
+ bidderCode: 'test',
96
+ bidderRequestId: 'abc',
97
+ bids: [ { ...fakeBidReq, bidder: 'test' } ]
98
+ }, sinon.stub(), sinon.stub(), fakeAjax, sinon.stub(), sinon.stub());
99
+ expect(fakeAjax.calledTwice).to.be.true;
100
+ expect(fakeZkad.calledOnce).to.be.true;
101
+ expect(fakeBuildRequests.calledTwice).to.be.true;
102
+ expect(fakeAjax.getCall(0).args[2]).to.contain('"id":"testid123"');
103
+ expect(fakeAjax.getCall(1).args[2]).not.to.contain('"id":"testid123"');
104
+ expect(fakeAjax.getCall(1).args[2]).to.contain('"id":"tes"');
105
+ expect(fakeAjax.getCall(0).args[2]).not.to.contain('"pbjsAdapter":"test"');
106
+ expect(fakeAjax.getCall(1).args[2]).to.contain('"pbjsAdapter":"test"');
107
+ })
108
+ })
@@ -363,7 +363,7 @@ describe('Seedtag Adapter', function () {
363
363
  expect(videoBid.requestCount).to.equal(1);
364
364
  });
365
365
 
366
- it('should have geom parameters if slot is available', function() {
366
+ it('should have geom parameters if slot is available', function () {
367
367
  const request = spec.buildRequests(validBidRequests, bidderRequest);
368
368
  const data = JSON.parse(request.data);
369
369
  const bidRequests = data.bidRequests;
@@ -392,7 +392,7 @@ describe('Seedtag Adapter', function () {
392
392
  }
393
393
  })
394
394
 
395
- it('should have bidfloor parameter if available', function() {
395
+ it('should have bidfloor parameter if available', function () {
396
396
  const request = spec.buildRequests(validBidRequests, bidderRequest);
397
397
  const data = JSON.parse(request.data);
398
398
  const bidRequests = data.bidRequests;
@@ -773,6 +773,60 @@ describe('Seedtag Adapter', function () {
773
773
  expect(bids[0].meta.advertiserDomains).to.deep.equal([]);
774
774
  });
775
775
  });
776
+ describe('the bid is a banner but the content is a video or display (video)', function () {
777
+ it('should return a banner bid with right meta.mediaType', function () {
778
+ const request = { data: JSON.stringify({}) };
779
+ const serverResponse = {
780
+ body: {
781
+ bids: [
782
+ {
783
+ bidId: '2159a54dc2566f',
784
+ price: 0.5,
785
+ currency: 'USD',
786
+ content: 'content',
787
+ width: 728,
788
+ height: 90,
789
+ mediaType: 'display',
790
+ ttl: 360,
791
+ nurl: 'testurl.com/nurl',
792
+ adomain: ['advertiserdomain.com'],
793
+ realMediaType: 'video'
794
+ },
795
+ ],
796
+ cookieSync: { url: '' },
797
+ },
798
+ };
799
+ const bids = spec.interpretResponse(serverResponse, request);
800
+ expect(bids.length).to.equal(1);
801
+ expect(bids[0].meta.mediaType).to.deep.equal('video');
802
+ });
803
+ it('should return a banner bid with right meta.mediaType (display)', function () {
804
+ const request = { data: JSON.stringify({}) };
805
+ const serverResponse = {
806
+ body: {
807
+ bids: [
808
+ {
809
+ bidId: '2159a54dc2566f',
810
+ price: 0.5,
811
+ currency: 'USD',
812
+ content: 'content',
813
+ width: 728,
814
+ height: 90,
815
+ mediaType: 'display',
816
+ ttl: 360,
817
+ nurl: 'testurl.com/nurl',
818
+ adomain: ['advertiserdomain.com'],
819
+ realMediaType: 'banner'
820
+ },
821
+ ],
822
+ cookieSync: { url: '' },
823
+ },
824
+ };
825
+ const bids = spec.interpretResponse(serverResponse, request);
826
+ expect(bids.length).to.equal(1);
827
+ expect(bids[0].meta.mediaType).to.deep.equal('banner');
828
+ });
829
+ });
776
830
  });
777
831
  });
778
832
 
@@ -85,6 +85,12 @@ describe('Yandex adapter', function () {
85
85
  expect(requests[0].data.site?.content?.language).to.be.undefined;
86
86
  });
87
87
 
88
+ it('should return displaymanager', function () {
89
+ const requests = spec.buildRequests(mockBidRequests, mockBidderRequest);
90
+ expect(requests[0].data.imp[0].displaymanager).to.equal('Prebid.js');
91
+ expect(requests[0].data.imp[0].displaymanagerver).to.not.be.undefined;
92
+ });
93
+
88
94
  /** @type {import('../../../src/auction').BidderRequest} */
89
95
  const bidderRequest = {
90
96
  ortb2: {
@@ -508,6 +508,46 @@ describe('yieldoneBidAdapter', function () {
508
508
  expect(request[0].data.uid2id).to.equal('uid2_sample');
509
509
  });
510
510
  });
511
+
512
+ describe('GPID', function () {
513
+ it('dont send GPID if undefined', function () {
514
+ const bidRequests = [
515
+ {
516
+ params: {placementId: '0'},
517
+ },
518
+ {
519
+ params: {placementId: '1'},
520
+ ortb2Imp: {},
521
+ },
522
+ {
523
+ params: {placementId: '2'},
524
+ ortb2Imp: undefined,
525
+ },
526
+ {
527
+ params: {placementId: '3'},
528
+ ortb2Imp: {ext: {gpid: undefined, data: {pubadslot: 'aaa'}}},
529
+ },
530
+ ];
531
+ const request = spec.buildRequests(bidRequests, bidderRequest);
532
+ expect(request[0].data).to.not.have.property('gpid');
533
+ expect(request[1].data).to.not.have.property('gpid');
534
+ expect(request[2].data).to.not.have.property('gpid');
535
+ expect(request[3].data).to.not.have.property('gpid');
536
+ });
537
+
538
+ it('should send GPID if available', function () {
539
+ const bidRequests = [
540
+ {
541
+ params: {placementId: '0'},
542
+ ortb2Imp: {ext: {gpid: 'gpid_sample'}},
543
+ },
544
+ ];
545
+ const request = spec.buildRequests(bidRequests, bidderRequest);
546
+ expect(request[0].data.ext).to.be.not.null;
547
+ expect(request[0].data).to.have.property('gpid');
548
+ expect(request[0].data.gpid).to.equal('gpid_sample');
549
+ });
550
+ });
511
551
  });
512
552
 
513
553
  describe('interpretResponse', function () {