prebid.js 7.4.0 → 7.7.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.
- package/.circleci/config.yml +11 -6
- package/dist/1plusXRtdProvider.js +1 -0
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adoceanBidAdapter.js +1 -1
- package/dist/adotBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adrinoBidAdapter.js +1 -1
- package/dist/adtelligentBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bliinkBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hadronRtdProvider.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imRtdProvider.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/newspassidBidAdapter.js +1 -0
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +131 -128
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/pubCommonId.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/rasBidAdapter.js +1 -0
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/1plusXRtdProviderExample.html +112 -0
- package/karma.conf.maker.js +3 -1
- package/modules/.submodules.json +2 -1
- package/modules/1plusXRtdProvider.js +251 -0
- package/modules/1plusXRtdProvider.md +65 -0
- package/modules/adgenerationBidAdapter.js +24 -1
- package/modules/adnuntiusBidAdapter.js +26 -8
- package/modules/adoceanBidAdapter.js +10 -3
- package/modules/adotBidAdapter.js +13 -4
- package/modules/adrinoBidAdapter.js +10 -2
- package/modules/adrinoBidAdapter.md +6 -0
- package/modules/adtelligentBidAdapter.js +2 -1
- package/modules/appnexusBidAdapter.js +3 -3
- package/modules/atsAnalyticsAdapter.js +4 -5
- package/modules/big-richmediaBidAdapter.js +3 -3
- package/modules/bliinkBidAdapter.js +120 -193
- package/modules/bliinkBidAdapter.md +2 -5
- package/modules/byDataAnalyticsAdapter.js +172 -74
- package/modules/byDataAnalyticsAdapter.md +5 -6
- package/modules/consumableBidAdapter.js +21 -1
- package/modules/criteoBidAdapter.js +7 -1
- package/modules/currency.js +2 -2
- package/modules/cwireBidAdapter.md +1 -1
- package/modules/eplanningBidAdapter.js +82 -97
- package/modules/gdprEnforcement.js +8 -14
- package/modules/gridNMBidAdapter.js +45 -4
- package/modules/hadronAnalyticsAdapter.md +5 -5
- package/modules/hadronIdSystem.js +18 -5
- package/modules/hadronIdSystem.md +15 -11
- package/modules/hadronRtdProvider.js +14 -1
- package/modules/hadronRtdProvider.md +17 -13
- package/modules/imRtdProvider.js +0 -8
- package/modules/impactifyBidAdapter.js +6 -2
- package/modules/ixBidAdapter.js +133 -23
- package/modules/ixBidAdapter.md +2 -5
- package/modules/jixieBidAdapter.js +10 -10
- package/modules/kargoAnalyticsAdapter.js +88 -6
- package/modules/kargoAnalyticsAdapter.md +33 -0
- package/modules/minutemediaBidAdapter.js +1 -0
- package/modules/naveggIdSystem.js +1 -12
- package/modules/newspassidBidAdapter.js +649 -0
- package/modules/nextMillenniumBidAdapter.js +17 -1
- package/modules/nextMillenniumBidAdapter.md +1 -1
- package/modules/oguryBidAdapter.js +2 -0
- package/modules/onetagBidAdapter.js +44 -7
- package/modules/prebidServerBidAdapter/index.js +7 -0
- package/modules/priceFloors.js +1 -1
- package/modules/pubCommonId.js +1 -2
- package/modules/pubxaiAnalyticsAdapter.js +6 -1
- package/modules/rasBidAdapter.js +149 -0
- package/modules/rasBidAdapter.md +50 -0
- package/modules/rubiconBidAdapter.js +5 -0
- package/modules/seedingAllianceBidAdapter.js +3 -0
- package/modules/seedtagBidAdapter.js +37 -1
- package/modules/sharedIdSystem.js +11 -5
- package/modules/sharethroughBidAdapter.js +9 -24
- package/modules/taboolaBidAdapter.js +1 -1
- package/modules/taboolaBidAdapter.md +3 -3
- package/modules/targetVideoBidAdapter.js +18 -0
- package/modules/userId/index.js +39 -21
- package/package.json +1 -1
- package/src/auction.js +6 -5
- package/src/consentHandler.js +11 -11
- package/src/debugging.js +5 -3
- package/src/hook.js +2 -2
- package/src/storageManager.js +4 -5
- package/src/utils/promise.js +96 -21
- package/src/utils.js +3 -2
- package/test/helpers/consentData.js +2 -1
- package/test/spec/auctionmanager_spec.js +1 -6
- package/test/spec/debugging_spec.js +2 -2
- package/test/spec/modules/1plusXRtdProvider_spec.js +430 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +52 -4
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +126 -14
- package/test/spec/modules/adoceanBidAdapter_spec.js +4 -1
- package/test/spec/modules/adotBidAdapter_spec.js +12 -9
- package/test/spec/modules/adrinoBidAdapter_spec.js +22 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +165 -156
- package/test/spec/modules/bliinkBidAdapter_spec.js +323 -136
- package/test/spec/modules/byDataAnalyticsAdapter_spec.js +74 -24
- package/test/spec/modules/consumableBidAdapter_spec.js +122 -1
- package/test/spec/modules/criteoBidAdapter_spec.js +15 -5
- package/test/spec/modules/eplanningBidAdapter_spec.js +58 -18
- package/test/spec/modules/gdprEnforcement_spec.js +53 -100
- package/test/spec/modules/gridNMBidAdapter_spec.js +32 -0
- package/test/spec/modules/hadronIdSystem_spec.js +2 -2
- package/test/spec/modules/idxIdSystem_spec.js +1 -1
- package/test/spec/modules/imRtdProvider_spec.js +0 -1
- package/test/spec/modules/ixBidAdapter_spec.js +212 -5
- package/test/spec/modules/jixieBidAdapter_spec.js +8 -8
- package/test/spec/modules/kargoAnalyticsAdapter_spec.js +42 -0
- package/test/spec/modules/minutemediaBidAdapter_spec.js +3 -0
- package/test/spec/modules/newspassidBidAdapter_spec.js +1793 -0
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +20 -0
- package/test/spec/modules/onetagBidAdapter_spec.js +53 -4
- package/test/spec/modules/parrableIdSystem_spec.js +2 -1
- package/test/spec/modules/prebidServerBidAdapter_spec.js +20 -0
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +5 -0
- package/test/spec/modules/rasBidAdapter_spec.js +190 -0
- package/test/spec/modules/rubiconBidAdapter_spec.js +27 -0
- package/test/spec/modules/seedtagBidAdapter_spec.js +29 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +4 -4
- package/test/spec/modules/taboolaBidAdapter_spec.js +1 -1
- package/test/spec/modules/targetVideoBidAdapter_spec.js +43 -0
- package/test/spec/modules/userId_spec.js +15 -2
- package/test/spec/unit/pbjs_api_spec.js +1 -5
- package/test/spec/unit/utils/promise_spec.js +283 -38
- package/test/helpers/syncPromise.js +0 -71
|
@@ -121,6 +121,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
121
121
|
playerSize: [[400, 100]]
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
|
+
ortb2Imp: {
|
|
125
|
+
ext: {
|
|
126
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47230'
|
|
127
|
+
}
|
|
128
|
+
},
|
|
124
129
|
adUnitCode: 'div-gpt-ad-1460505748562-0',
|
|
125
130
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
126
131
|
bidId: '1a2b3c4e',
|
|
@@ -143,6 +148,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
143
148
|
sizes: [[300, 250]]
|
|
144
149
|
}
|
|
145
150
|
},
|
|
151
|
+
ortb2Imp: {
|
|
152
|
+
ext: {
|
|
153
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47229'
|
|
154
|
+
}
|
|
155
|
+
},
|
|
146
156
|
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
147
157
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47229',
|
|
148
158
|
bidId: '1a2b3c4d',
|
|
@@ -165,6 +175,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
165
175
|
sizes: [[300, 250], [300, 600]]
|
|
166
176
|
}
|
|
167
177
|
},
|
|
178
|
+
ortb2Imp: {
|
|
179
|
+
ext: {
|
|
180
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47229'
|
|
181
|
+
}
|
|
182
|
+
},
|
|
168
183
|
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
169
184
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47229',
|
|
170
185
|
bidId: '1a2b3c4d',
|
|
@@ -185,6 +200,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
185
200
|
sizes: [[300, 250], [300, 600]]
|
|
186
201
|
}
|
|
187
202
|
},
|
|
203
|
+
ortb2Imp: {
|
|
204
|
+
ext: {
|
|
205
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47229'
|
|
206
|
+
}
|
|
207
|
+
},
|
|
188
208
|
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
189
209
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47229',
|
|
190
210
|
bidId: '1a2b3c4d',
|
|
@@ -214,6 +234,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
214
234
|
protocols: [2]
|
|
215
235
|
}
|
|
216
236
|
},
|
|
237
|
+
ortb2Imp: {
|
|
238
|
+
ext: {
|
|
239
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47230'
|
|
240
|
+
}
|
|
241
|
+
},
|
|
217
242
|
adUnitCode: 'div-gpt-ad-1460505748562-0',
|
|
218
243
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
219
244
|
bidId: '1a2b3c4e',
|
|
@@ -247,6 +272,11 @@ describe('IndexexchangeAdapter', function () {
|
|
|
247
272
|
playerSize: [[400, 100], [200, 400]]
|
|
248
273
|
}
|
|
249
274
|
},
|
|
275
|
+
ortb2Imp: {
|
|
276
|
+
ext: {
|
|
277
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47230'
|
|
278
|
+
}
|
|
279
|
+
},
|
|
250
280
|
adUnitCode: 'div-gpt-ad-1460505748562-0',
|
|
251
281
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
252
282
|
bidId: '1a2b3c4e',
|
|
@@ -260,6 +290,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
260
290
|
{
|
|
261
291
|
bidder: 'ix',
|
|
262
292
|
params: {
|
|
293
|
+
tagId: '123',
|
|
263
294
|
siteId: '123',
|
|
264
295
|
size: [300, 250],
|
|
265
296
|
},
|
|
@@ -272,6 +303,14 @@ describe('IndexexchangeAdapter', function () {
|
|
|
272
303
|
sizes: [[300, 250], [300, 600], [400, 500]]
|
|
273
304
|
}
|
|
274
305
|
},
|
|
306
|
+
ortb2Imp: {
|
|
307
|
+
ext: {
|
|
308
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
309
|
+
data: {
|
|
310
|
+
pbadslot: 'div-gpt-ad-1460505748562-0'
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
},
|
|
275
314
|
adUnitCode: 'div-gpt-ad-1460505748562-0',
|
|
276
315
|
transactionId: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
277
316
|
bidId: '1a2b3c4e',
|
|
@@ -285,6 +324,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
285
324
|
{
|
|
286
325
|
bidder: 'ix',
|
|
287
326
|
params: {
|
|
327
|
+
tagId: '123',
|
|
288
328
|
siteId: '456',
|
|
289
329
|
video: {
|
|
290
330
|
skippable: false,
|
|
@@ -307,6 +347,14 @@ describe('IndexexchangeAdapter', function () {
|
|
|
307
347
|
sizes: [[300, 250], [300, 600]]
|
|
308
348
|
}
|
|
309
349
|
},
|
|
350
|
+
ortb2Imp: {
|
|
351
|
+
ext: {
|
|
352
|
+
tid: '173f49a8-7549-4218-a23c-e7ba59b47230',
|
|
353
|
+
data: {
|
|
354
|
+
pbadslot: 'div-gpt-ad-1460505748562-0'
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
},
|
|
310
358
|
adUnitCode: 'div-gpt-ad-1460505748562-0',
|
|
311
359
|
transactionId: '273f49a8-7549-4218-a23c-e7ba59b47230',
|
|
312
360
|
bidId: '1a2b3c4e',
|
|
@@ -677,18 +725,109 @@ describe('IndexexchangeAdapter', function () {
|
|
|
677
725
|
const syncOptions = {
|
|
678
726
|
'iframeEnabled': true
|
|
679
727
|
}
|
|
680
|
-
let userSync = spec.getUserSyncs(syncOptions);
|
|
728
|
+
let userSync = spec.getUserSyncs(syncOptions, []);
|
|
681
729
|
expect(userSync[0].type).to.equal('iframe');
|
|
682
730
|
const USER_SYNC_URL = 'https://js-sec.indexww.com/um/ixmatch.html';
|
|
683
731
|
expect(userSync[0].url).to.equal(USER_SYNC_URL);
|
|
684
732
|
});
|
|
685
733
|
|
|
686
|
-
it('When iframeEnabled
|
|
734
|
+
it('When iframeEnabled = false, default to img', function () {
|
|
735
|
+
const syncOptions = {
|
|
736
|
+
'iframeEnabled': false,
|
|
737
|
+
}
|
|
738
|
+
let userSync = spec.getUserSyncs(syncOptions, []);
|
|
739
|
+
expect(userSync[0].type).to.equal('image');
|
|
740
|
+
const USER_SYNC_URL = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=1&i=0&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
741
|
+
expect(userSync[0].url).to.equal(USER_SYNC_URL);
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
it('UserSync test : check type = pixel, check usermatch URL, no exchange data, only drop 1', function () {
|
|
745
|
+
const syncOptions = {
|
|
746
|
+
'pixelEnabled': true
|
|
747
|
+
}
|
|
748
|
+
config.setConfig({
|
|
749
|
+
userSync: {
|
|
750
|
+
pixelEnabled: true,
|
|
751
|
+
syncsPerBidder: 3
|
|
752
|
+
}
|
|
753
|
+
})
|
|
754
|
+
let userSync = spec.getUserSyncs(syncOptions, []);
|
|
755
|
+
expect(userSync[0].type).to.equal('image');
|
|
756
|
+
const USER_SYNC_URL = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=1&i=0&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
757
|
+
expect(userSync[0].url).to.equal(USER_SYNC_URL);
|
|
758
|
+
});
|
|
759
|
+
|
|
760
|
+
it('UserSync test : check type = pixel, check usermatch URL with override set to 0', function () {
|
|
761
|
+
const syncOptions = {
|
|
762
|
+
'pixelEnabled': true
|
|
763
|
+
}
|
|
764
|
+
config.setConfig({
|
|
765
|
+
userSync: {
|
|
766
|
+
pixelEnabled: true,
|
|
767
|
+
syncsPerBidder: 3
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
let userSync = spec.getUserSyncs(syncOptions, [{'body': {'ext': {'publishersyncsperbidderoverride': 0}}}]);
|
|
771
|
+
expect(userSync.length).to.equal(0);
|
|
772
|
+
});
|
|
773
|
+
|
|
774
|
+
it('UserSync test : check type = pixel, check usermatch URL with override set', function () {
|
|
775
|
+
const syncOptions = {
|
|
776
|
+
'pixelEnabled': true
|
|
777
|
+
}
|
|
778
|
+
config.setConfig({
|
|
779
|
+
userSync: {
|
|
780
|
+
pixelEnabled: true,
|
|
781
|
+
syncsPerBidder: 3
|
|
782
|
+
}
|
|
783
|
+
});
|
|
784
|
+
let userSync = spec.getUserSyncs(syncOptions, [{'body': {'ext': {'publishersyncsperbidderoverride': 2}}}]);
|
|
785
|
+
expect(userSync[0].type).to.equal('image');
|
|
786
|
+
const USER_SYNC_URL_0 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=2&i=0&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
787
|
+
const USER_SYNC_URL_1 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=2&i=1&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
788
|
+
expect(userSync[0].url).to.equal(USER_SYNC_URL_0);
|
|
789
|
+
expect(userSync[1].url).to.equal(USER_SYNC_URL_1);
|
|
790
|
+
expect(userSync.length).to.equal(2);
|
|
791
|
+
});
|
|
792
|
+
|
|
793
|
+
it('UserSync test : check type = pixel, check usermatch URL with override greater than publisher syncs per bidder , use syncsperbidder', function () {
|
|
687
794
|
const syncOptions = {
|
|
688
|
-
'
|
|
795
|
+
'pixelEnabled': true
|
|
689
796
|
}
|
|
690
|
-
|
|
691
|
-
|
|
797
|
+
config.setConfig({
|
|
798
|
+
userSync: {
|
|
799
|
+
pixelEnabled: true,
|
|
800
|
+
syncsPerBidder: 3
|
|
801
|
+
}
|
|
802
|
+
});
|
|
803
|
+
let userSync = spec.getUserSyncs(syncOptions, [{'body': {'ext': {'publishersyncsperbidderoverride': 4}}}]);
|
|
804
|
+
expect(userSync[0].type).to.equal('image');
|
|
805
|
+
const USER_SYNC_URL_0 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=3&i=0&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
806
|
+
const USER_SYNC_URL_1 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=3&i=1&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
807
|
+
const USER_SYNC_URL_2 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=3&i=2&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
808
|
+
expect(userSync[0].url).to.equal(USER_SYNC_URL_0);
|
|
809
|
+
expect(userSync[1].url).to.equal(USER_SYNC_URL_1);
|
|
810
|
+
expect(userSync[2].url).to.equal(USER_SYNC_URL_2);
|
|
811
|
+
expect(userSync.length).to.equal(3);
|
|
812
|
+
});
|
|
813
|
+
|
|
814
|
+
it('UserSync test : check type = pixel, syncsPerBidder = 0, still use override', function () {
|
|
815
|
+
const syncOptions = {
|
|
816
|
+
'pixelEnabled': true
|
|
817
|
+
}
|
|
818
|
+
config.setConfig({
|
|
819
|
+
userSync: {
|
|
820
|
+
pixelEnabled: true,
|
|
821
|
+
syncsPerBidder: 0
|
|
822
|
+
}
|
|
823
|
+
});
|
|
824
|
+
let userSync = spec.getUserSyncs(syncOptions, [{'body': {'ext': {'publishersyncsperbidderoverride': 2}}}]);
|
|
825
|
+
expect(userSync[0].type).to.equal('image');
|
|
826
|
+
const USER_SYNC_URL_0 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=2&i=0&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
827
|
+
const USER_SYNC_URL_1 = 'https://dsum.casalemedia.com/pbusermatch?origin=prebid&site_id=123&p=2&i=1&gdpr=1&gdpr_consent=3huaa11=qu3198ae&us_privacy=';
|
|
828
|
+
expect(userSync[0].url).to.equal(USER_SYNC_URL_0);
|
|
829
|
+
expect(userSync[1].url).to.equal(USER_SYNC_URL_1);
|
|
830
|
+
expect(userSync.length).to.equal(2);
|
|
692
831
|
});
|
|
693
832
|
});
|
|
694
833
|
|
|
@@ -1518,6 +1657,70 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1518
1657
|
expect(gpid).to.equal(GPID);
|
|
1519
1658
|
});
|
|
1520
1659
|
|
|
1660
|
+
it('should still build gpid in request if ortb2Imp.ext.gpid does not exist', function () {
|
|
1661
|
+
const AD_UNIT_CODE = '/1111/home';
|
|
1662
|
+
const validBids = utils.deepClone(DEFAULT_BANNER_VALID_BID);
|
|
1663
|
+
sinon.stub(utils, 'getGptSlotInfoForAdUnitCode')
|
|
1664
|
+
.returns({ gptSlot: AD_UNIT_CODE, divId: 'adunit-code-3-div-id' });
|
|
1665
|
+
validBids[0].ortb2Imp = {
|
|
1666
|
+
ext: {
|
|
1667
|
+
data: {
|
|
1668
|
+
adserver: {
|
|
1669
|
+
name: 'gam',
|
|
1670
|
+
adslot: AD_UNIT_CODE
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
const requests = spec.buildRequests(validBids, DEFAULT_OPTION);
|
|
1676
|
+
const { ext: { gpid } } = JSON.parse(requests[0].data.r).imp[0];
|
|
1677
|
+
utils.getGptSlotInfoForAdUnitCode.restore();
|
|
1678
|
+
expect(gpid).to.equal(`${AD_UNIT_CODE}#adunit-code-3-div-id`);
|
|
1679
|
+
});
|
|
1680
|
+
|
|
1681
|
+
it('should not build gpid if divid doesnt exist when ortb2Imp.ext.gpid does not exist', function () {
|
|
1682
|
+
const AD_UNIT_CODE = '/1111/home';
|
|
1683
|
+
const validBids = utils.deepClone(DEFAULT_BANNER_VALID_BID);
|
|
1684
|
+
sinon.stub(utils, 'getGptSlotInfoForAdUnitCode')
|
|
1685
|
+
.returns({ gptSlot: AD_UNIT_CODE });
|
|
1686
|
+
validBids[0].ortb2Imp = {
|
|
1687
|
+
ext: {
|
|
1688
|
+
data: {
|
|
1689
|
+
adserver: {
|
|
1690
|
+
name: 'gam',
|
|
1691
|
+
adslot: AD_UNIT_CODE
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
}
|
|
1696
|
+
const requests = spec.buildRequests(validBids, DEFAULT_OPTION);
|
|
1697
|
+
const imp = JSON.parse(requests[0].data.r).imp[0];
|
|
1698
|
+
utils.getGptSlotInfoForAdUnitCode.restore();
|
|
1699
|
+
expect(imp.ext.gpid).to.be.undefined;
|
|
1700
|
+
expect(imp.ext.dfp_ad_unit_code).to.equal(AD_UNIT_CODE)
|
|
1701
|
+
});
|
|
1702
|
+
|
|
1703
|
+
it('should not build gpid if dfp ad unit code / divid doesnt exist when ortb2Imp.ext.gpid does not exist', function () {
|
|
1704
|
+
const AD_UNIT_CODE = '/1111/home';
|
|
1705
|
+
const validBids = utils.deepClone(DEFAULT_BANNER_VALID_BID);
|
|
1706
|
+
sinon.stub(utils, 'getGptSlotInfoForAdUnitCode')
|
|
1707
|
+
.returns({});
|
|
1708
|
+
validBids[0].ortb2Imp = {
|
|
1709
|
+
ext: {
|
|
1710
|
+
data: {
|
|
1711
|
+
adserver: {
|
|
1712
|
+
name: 'gam',
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
}
|
|
1717
|
+
const requests = spec.buildRequests(validBids, DEFAULT_OPTION);
|
|
1718
|
+
|
|
1719
|
+
const imp = JSON.parse(requests[0].data.r).imp[0];
|
|
1720
|
+
utils.getGptSlotInfoForAdUnitCode.restore();
|
|
1721
|
+
expect(imp.ext).to.be.undefined;
|
|
1722
|
+
});
|
|
1723
|
+
|
|
1521
1724
|
it('should send gpid in request if ortb2Imp.ext.gpid exists when no size present', function () {
|
|
1522
1725
|
const validBids = utils.deepClone(DEFAULT_BANNER_VALID_BID_PARAM_NO_SIZE);
|
|
1523
1726
|
validBids[0].ortb2Imp = {
|
|
@@ -1629,6 +1832,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1629
1832
|
expect(impression.id).to.equal(DEFAULT_BANNER_VALID_BID[0].bidId);
|
|
1630
1833
|
expect(impression.banner.format).to.be.length(2);
|
|
1631
1834
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
1835
|
+
expect(impression.ext.tid).to.equal(DEFAULT_BANNER_VALID_BID[0].transactionId);
|
|
1632
1836
|
|
|
1633
1837
|
impression.banner.format.map(({ w, h, ext }, index) => {
|
|
1634
1838
|
const size = DEFAULT_BANNER_VALID_BID[0].mediaTypes.banner.sizes[index];
|
|
@@ -2482,6 +2686,9 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2482
2686
|
expect(diagObj.allu).to.equal(2);
|
|
2483
2687
|
expect(diagObj.version).to.equal('$prebid.version$');
|
|
2484
2688
|
expect(diagObj.url).to.equal('http://localhost:9876/context.html')
|
|
2689
|
+
expect(diagObj.pbadslot).to.equal(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0].ortb2Imp.ext.data.pbadslot)
|
|
2690
|
+
expect(diagObj.tagid).to.equal(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0].params.tagId)
|
|
2691
|
+
expect(diagObj.adunitcode).to.equal(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0].adUnitCode)
|
|
2485
2692
|
});
|
|
2486
2693
|
});
|
|
2487
2694
|
});
|
|
@@ -199,16 +199,16 @@ describe('jixie Adapter', function () {
|
|
|
199
199
|
let getCookieStub = sinon.stub(storage, 'getCookie');
|
|
200
200
|
let getLocalStorageStub = sinon.stub(storage, 'getDataFromLocalStorage');
|
|
201
201
|
getCookieStub
|
|
202
|
-
.withArgs('
|
|
202
|
+
.withArgs('_jxx')
|
|
203
203
|
.returns(clientIdTest1_);
|
|
204
204
|
getCookieStub
|
|
205
|
-
.withArgs('
|
|
205
|
+
.withArgs('_jxxs')
|
|
206
206
|
.returns(sessionIdTest1_);
|
|
207
207
|
getLocalStorageStub
|
|
208
|
-
.withArgs('
|
|
208
|
+
.withArgs('_jxx')
|
|
209
209
|
.returns(clientIdTest1_);
|
|
210
210
|
getLocalStorageStub
|
|
211
|
-
.withArgs('
|
|
211
|
+
.withArgs('_jxxs')
|
|
212
212
|
.returns(sessionIdTest1_
|
|
213
213
|
);
|
|
214
214
|
let miscDimsStub = sinon.stub(jixieaux, 'getMiscDims');
|
|
@@ -528,10 +528,10 @@ describe('jixie Adapter', function () {
|
|
|
528
528
|
let setCookieSpy = sinon.spy(storage, 'setCookie');
|
|
529
529
|
let setLocalStorageSpy = sinon.spy(storage, 'setDataInLocalStorage');
|
|
530
530
|
const result = spec.interpretResponse({body: responseBody_}, requestObj_)
|
|
531
|
-
expect(setLocalStorageSpy.calledWith('
|
|
532
|
-
expect(setLocalStorageSpy.calledWith('
|
|
533
|
-
expect(setCookieSpy.calledWith('
|
|
534
|
-
expect(setCookieSpy.calledWith('
|
|
531
|
+
expect(setLocalStorageSpy.calledWith('_jxx', '43aacc10-f643-11ea-8a10-c5fe2d394e7e')).to.equal(true);
|
|
532
|
+
expect(setLocalStorageSpy.calledWith('_jxxs', '1600057934-43aacc10-f643-11ea-8a10-c5fe2d394e7e')).to.equal(true);
|
|
533
|
+
expect(setCookieSpy.calledWith('_jxxs', '1600057934-43aacc10-f643-11ea-8a10-c5fe2d394e7e')).to.equal(true);
|
|
534
|
+
expect(setCookieSpy.calledWith('_jxx', '43aacc10-f643-11ea-8a10-c5fe2d394e7e')).to.equal(true);
|
|
535
535
|
|
|
536
536
|
// video ad with vastUrl returned by adserver
|
|
537
537
|
expect(result[0].requestId).to.equal('62847e4c696edcb')
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import kargoAnalyticsAdapter from 'modules/kargoAnalyticsAdapter.js';
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
import { server } from 'test/mocks/xhr.js';
|
|
4
|
+
let events = require('src/events');
|
|
5
|
+
let constants = require('src/constants.json');
|
|
6
|
+
|
|
7
|
+
describe('Kargo Analytics Adapter', function () {
|
|
8
|
+
const adapterConfig = {
|
|
9
|
+
provider: 'kargoAnalytics',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
after(function () {
|
|
13
|
+
kargoAnalyticsAdapter.disableAnalytics();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
describe('main test flow', function () {
|
|
17
|
+
beforeEach(function () {
|
|
18
|
+
kargoAnalyticsAdapter.enableAnalytics(adapterConfig);
|
|
19
|
+
sinon.stub(events, 'getEvents').returns([]);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
afterEach(function () {
|
|
23
|
+
events.getEvents.restore();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('bid response data should send one request with auction ID, auction timeout, and response time', function() {
|
|
27
|
+
const bidResponse = {
|
|
28
|
+
bidder: 'kargo',
|
|
29
|
+
auctionId: '66529d4c-8998-47c2-ab3e-5b953490b98f',
|
|
30
|
+
timeToRespond: 192,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
events.emit(constants.EVENTS.AUCTION_INIT, {
|
|
34
|
+
timeout: 1000
|
|
35
|
+
});
|
|
36
|
+
events.emit(constants.EVENTS.BID_RESPONSE, bidResponse);
|
|
37
|
+
|
|
38
|
+
expect(server.requests.length).to.equal(1);
|
|
39
|
+
expect(server.requests[0].url).to.equal('https://krk.kargo.com/api/v1/event/auction-data?aid=66529d4c-8998-47c2-ab3e-5b953490b98f&ato=1000&rt=192&it=0');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -53,6 +53,7 @@ describe('minutemediaAdapter', function () {
|
|
|
53
53
|
'org': 'jdye8weeyirk00000001'
|
|
54
54
|
},
|
|
55
55
|
'bidId': '299ffc8cca0b87',
|
|
56
|
+
'loop': 1,
|
|
56
57
|
'bidderRequestId': '1144f487e563f9',
|
|
57
58
|
'auctionId': 'bfc420c3-8577-4568-9766-a8a935fb620d',
|
|
58
59
|
'mediaTypes': {
|
|
@@ -71,6 +72,7 @@ describe('minutemediaAdapter', function () {
|
|
|
71
72
|
'org': 'jdye8weeyirk00000001'
|
|
72
73
|
},
|
|
73
74
|
'bidId': '299ffc8cca0b87',
|
|
75
|
+
'loop': 1,
|
|
74
76
|
'bidderRequestId': '1144f487e563f9',
|
|
75
77
|
'auctionId': 'bfc420c3-8577-4568-9766-a8a935fb620d',
|
|
76
78
|
'mediaTypes': {
|
|
@@ -91,6 +93,7 @@ describe('minutemediaAdapter', function () {
|
|
|
91
93
|
'testMode': true
|
|
92
94
|
},
|
|
93
95
|
'bidId': '299ffc8cca0b87',
|
|
96
|
+
'loop': 2,
|
|
94
97
|
'bidderRequestId': '1144f487e563f9',
|
|
95
98
|
'auctionId': 'bfc420c3-8577-4568-9766-a8a935fb620d',
|
|
96
99
|
}
|