prebid.js 7.48.0 → 7.50.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/README.md +3 -0
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admixerBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.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/axonixBidAdapter.js +1 -1
- package/dist/beopBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/confiantRtdProvider.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dependencies.json +3 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.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/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.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/minutemediaplusBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +136 -134
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -0
- 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/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/silverpushBidAdapter.js +1 -0
- 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/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.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/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/video.js +1 -1
- package/dist/videoModule.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/yieldlabBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/videoModule/eventsUI/eventsUI.css +205 -0
- package/integrationExamples/videoModule/eventsUI/eventsUI.js +181 -0
- package/integrationExamples/videoModule/jwplayer/eventsUI.html +295 -0
- package/integrationExamples/videoModule/videojs/eventsUI.html +319 -0
- package/libraries/video/shared/helpers.js +14 -0
- package/modules/33acrossBidAdapter.js +1 -1
- package/modules/adgenerationBidAdapter.js +24 -15
- package/modules/admixerBidAdapter.js +15 -9
- package/modules/aidemBidAdapter.js +3 -1
- package/modules/appnexusBidAdapter.js +1 -0
- package/modules/beopBidAdapter.js +1 -0
- package/modules/confiantRtdProvider.js +15 -12
- package/modules/conversantAnalyticsAdapter.js +7 -5
- package/modules/conversantBidAdapter.js +1 -1
- package/modules/criteoBidAdapter.js +17 -1
- package/modules/gridBidAdapter.js +3 -0
- package/modules/ixBidAdapter.js +65 -47
- package/modules/kueezRtbBidAdapter.js +30 -33
- package/modules/liveIntentIdSystem.js +8 -4
- package/modules/magniteAnalyticsAdapter.js +26 -3
- package/modules/mgidBidAdapter.js +9 -8
- package/modules/minutemediaBidAdapter.js +6 -0
- package/modules/minutemediaplusBidAdapter.js +30 -32
- package/modules/nexx360BidAdapter.js +2 -1
- package/modules/permutiveRtdProvider.js +9 -38
- package/modules/prebidServerBidAdapter/index.js +1 -3
- package/modules/prebidServerBidAdapter/ortbConverter.js +5 -1
- package/modules/pubmaticAnalyticsAdapter.js +3 -2
- package/modules/retailspotBidAdapter .md +32 -0
- package/modules/retailspotBidAdapter.js +186 -0
- package/modules/riseBidAdapter.js +6 -0
- package/modules/rubiconBidAdapter.js +6 -2
- package/modules/silverpushBidAdapter.js +326 -0
- package/modules/silverpushBidAdapter.md +107 -0
- package/modules/ttdBidAdapter.js +23 -22
- package/modules/underdogmediaBidAdapter.js +2 -2
- package/modules/vidazooBidAdapter.js +28 -32
- package/modules/videoModule/adQueue.js +2 -2
- package/modules/videoModule/index.js +9 -5
- package/modules/yahoosspBidAdapter.js +6 -0
- package/modules/yahoosspBidAdapter.md +37 -0
- package/modules/yieldlabBidAdapter.js +27 -5
- package/package.json +1 -1
- package/src/adapterManager.js +4 -0
- package/src/adapters/bidderFactory.js +1 -0
- package/src/auction.js +2 -0
- package/src/prebid.js +36 -12
- package/src/utils/cpm.js +4 -1
- package/test/spec/modules/33acrossBidAdapter_spec.js +4 -3
- package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
- package/test/spec/modules/admixerBidAdapter_spec.js +64 -25
- package/test/spec/modules/aidemBidAdapter_spec.js +3 -0
- package/test/spec/modules/beopBidAdapter_spec.js +4 -0
- package/test/spec/modules/confiantRtdProvider_spec.js +4 -1
- package/test/spec/modules/conversantBidAdapter_spec.js +2 -1
- package/test/spec/modules/criteoBidAdapter_spec.js +109 -0
- package/test/spec/modules/gridBidAdapter_spec.js +3 -0
- package/test/spec/modules/ixBidAdapter_spec.js +66 -1
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +3 -2
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +28 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +45 -0
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +16 -36
- package/test/spec/modules/mass_spec.js +2 -0
- package/test/spec/modules/mgidBidAdapter_spec.js +9 -9
- package/test/spec/modules/minutemediaBidAdapter_spec.js +18 -0
- package/test/spec/modules/minutemediaplusBidAdapter_spec.js +3 -2
- package/test/spec/modules/permutiveRtdProvider_spec.js +0 -20
- package/test/spec/modules/prebidServerBidAdapter_spec.js +96 -1
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +6 -1
- package/test/spec/modules/retailspotBidAdapter_spec.js +426 -0
- package/test/spec/modules/riseBidAdapter_spec.js +18 -0
- package/test/spec/modules/rubiconBidAdapter_spec.js +143 -67
- package/test/spec/modules/silverpushBidAdapter_spec.js +394 -0
- package/test/spec/modules/ttdBidAdapter_spec.js +129 -2
- package/test/spec/modules/underdogmediaBidAdapter_spec.js +1 -1
- package/test/spec/modules/vidazooBidAdapter_spec.js +3 -2
- package/test/spec/modules/videoModule/shared/helpers_spec.js +22 -0
- package/test/spec/modules/yahoosspBidAdapter_spec.js +60 -1
- package/test/spec/modules/yieldlabBidAdapter_spec.js +8 -1
- package/test/spec/unit/core/bidderFactory_spec.js +9 -9
- package/test/spec/unit/pbjs_api_spec.js +59 -1
- package/test/spec/unit/utils/cpm_spec.js +56 -1
|
@@ -824,19 +824,19 @@ describe('Mgid bid adapter', function () {
|
|
|
824
824
|
const sync = spec.getUserSyncs({iframeEnabled: true})
|
|
825
825
|
expect(sync).to.have.length(1)
|
|
826
826
|
expect(sync[0]).to.have.property('type', 'iframe')
|
|
827
|
-
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&
|
|
827
|
+
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&gdpr_consent=&gdpr=0/)
|
|
828
828
|
});
|
|
829
829
|
it('should return frame object with gdpr consent', function () {
|
|
830
830
|
const sync = spec.getUserSyncs({iframeEnabled: true}, undefined, {consentString: 'consent', gdprApplies: true})
|
|
831
831
|
expect(sync).to.have.length(1)
|
|
832
832
|
expect(sync[0]).to.have.property('type', 'iframe')
|
|
833
|
-
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&
|
|
833
|
+
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&gdpr_consent=consent&gdpr=1/)
|
|
834
834
|
});
|
|
835
835
|
it('should return frame object with gdpr + usp', function () {
|
|
836
836
|
const sync = spec.getUserSyncs({iframeEnabled: true}, undefined, {consentString: 'consent1', gdprApplies: true}, {'consentString': 'consent2'})
|
|
837
837
|
expect(sync).to.have.length(1)
|
|
838
838
|
expect(sync[0]).to.have.property('type', 'iframe')
|
|
839
|
-
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&
|
|
839
|
+
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
|
|
840
840
|
});
|
|
841
841
|
it('should return img object with gdpr + usp', function () {
|
|
842
842
|
config.setConfig({userSync: {syncsPerBidder: undefined}});
|
|
@@ -844,23 +844,23 @@ describe('Mgid bid adapter', function () {
|
|
|
844
844
|
expect(sync).to.have.length(USERSYNC_DEFAULT_CONFIG.syncsPerBidder)
|
|
845
845
|
for (let i = 0; i < USERSYNC_DEFAULT_CONFIG.syncsPerBidder; i++) {
|
|
846
846
|
expect(sync[i]).to.have.property('type', 'image')
|
|
847
|
-
expect(sync[i]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&
|
|
847
|
+
expect(sync[i]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
|
|
848
848
|
}
|
|
849
849
|
});
|
|
850
850
|
it('should return frame object with gdpr + usp', function () {
|
|
851
851
|
const sync = spec.getUserSyncs({iframeEnabled: true, pixelEnabled: true}, undefined, {consentString: 'consent1', gdprApplies: true}, {'consentString': 'consent2'})
|
|
852
852
|
expect(sync).to.have.length(1)
|
|
853
853
|
expect(sync[0]).to.have.property('type', 'iframe')
|
|
854
|
-
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&
|
|
854
|
+
expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
|
|
855
855
|
});
|
|
856
856
|
it('should return img (pixels) objects with gdpr + usp', function () {
|
|
857
857
|
const response = [{body: {ext: {cm: ['http://cm.mgid.com/i.gif?cdsp=1111', 'http://cm.mgid.com/i.gif']}}}]
|
|
858
858
|
const sync = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: true}, response, {consentString: 'consent1', gdprApplies: true}, {'consentString': 'consent2'})
|
|
859
859
|
expect(sync).to.have.length(2)
|
|
860
860
|
expect(sync[0]).to.have.property('type', 'image')
|
|
861
|
-
expect(sync[0]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cdsp=1111&cbuster=\d+&
|
|
861
|
+
expect(sync[0]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cdsp=1111&cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
|
|
862
862
|
expect(sync[1]).to.have.property('type', 'image')
|
|
863
|
-
expect(sync[1]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&
|
|
863
|
+
expect(sync[1]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
|
|
864
864
|
});
|
|
865
865
|
});
|
|
866
866
|
|
|
@@ -874,9 +874,9 @@ describe('Mgid bid adapter', function () {
|
|
|
874
874
|
const sync = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: true}, response, {consentString: 'consent1', gdprApplies: true}, {'consentString': 'consent2'}, {gppString: 'gpp'})
|
|
875
875
|
expect(sync).to.have.length(2)
|
|
876
876
|
expect(sync[0]).to.have.property('type', 'image')
|
|
877
|
-
expect(sync[0]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cdsp=1111&cbuster=\d+&
|
|
877
|
+
expect(sync[0]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cdsp=1111&cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2&gppString=gpp&coppa=1/)
|
|
878
878
|
expect(sync[1]).to.have.property('type', 'image')
|
|
879
|
-
expect(sync[1]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&
|
|
879
|
+
expect(sync[1]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2&gppString=gpp&coppa=1/)
|
|
880
880
|
});
|
|
881
881
|
});
|
|
882
882
|
|
|
@@ -293,6 +293,24 @@ describe('minutemediaAdapter', function () {
|
|
|
293
293
|
expect(request.data.bids[0]).to.be.an('object');
|
|
294
294
|
expect(request.data.bids[0]).to.have.property('floorPrice', 1.5);
|
|
295
295
|
});
|
|
296
|
+
|
|
297
|
+
describe('COPPA Param', function() {
|
|
298
|
+
it('should set coppa equal 0 in bid request if coppa is set to false', function() {
|
|
299
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
300
|
+
expect(request.data.bids[0].coppa).to.be.equal(0);
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
it('should set coppa equal 1 in bid request if coppa is set to true', function() {
|
|
304
|
+
const bid = utils.deepClone(bidRequests[0]);
|
|
305
|
+
bid.ortb2 = {
|
|
306
|
+
'regs': {
|
|
307
|
+
'coppa': true,
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
const request = spec.buildRequests([bid], bidderRequest);
|
|
311
|
+
expect(request.data.bids[0].coppa).to.be.equal(1);
|
|
312
|
+
});
|
|
313
|
+
});
|
|
296
314
|
});
|
|
297
315
|
|
|
298
316
|
describe('interpretResponse', function () {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {expect} from 'chai';
|
|
2
2
|
import {
|
|
3
3
|
spec as adapter,
|
|
4
|
-
SUPPORTED_ID_SYSTEMS,
|
|
5
4
|
createDomain,
|
|
6
5
|
hashCode,
|
|
7
6
|
extractPID,
|
|
@@ -18,6 +17,8 @@ import {useFakeTimers} from 'sinon';
|
|
|
18
17
|
import {BANNER, VIDEO} from '../../../src/mediaTypes';
|
|
19
18
|
import {config} from '../../../src/config';
|
|
20
19
|
|
|
20
|
+
export const TEST_ID_SYSTEMS = ['britepoolid', 'criteoId', 'id5id', 'idl_env', 'lipb', 'netId', 'parrableId', 'pubcid', 'tdid', 'pubProvidedId'];
|
|
21
|
+
|
|
21
22
|
const SUB_DOMAIN = 'exchange';
|
|
22
23
|
|
|
23
24
|
const BID = {
|
|
@@ -498,7 +499,7 @@ describe('MinuteMediaPlus Bid Adapter', function () {
|
|
|
498
499
|
});
|
|
499
500
|
|
|
500
501
|
describe('user id system', function () {
|
|
501
|
-
|
|
502
|
+
TEST_ID_SYSTEMS.forEach((idSystemProvider) => {
|
|
502
503
|
const id = Date.now().toString();
|
|
503
504
|
const bid = utils.deepClone(BID);
|
|
504
505
|
|
|
@@ -560,26 +560,6 @@ describe('permutiveRtdProvider', function () {
|
|
|
560
560
|
})
|
|
561
561
|
})
|
|
562
562
|
|
|
563
|
-
describe('Default segment targeting', function () {
|
|
564
|
-
it('sets segment targeting for Ozone', function () {
|
|
565
|
-
const data = transformedTargeting()
|
|
566
|
-
const adUnits = getAdUnits()
|
|
567
|
-
const config = getConfig()
|
|
568
|
-
|
|
569
|
-
readAndSetCohorts({ adUnits }, config)
|
|
570
|
-
|
|
571
|
-
adUnits.forEach(adUnit => {
|
|
572
|
-
adUnit.bids.forEach(bid => {
|
|
573
|
-
const { bidder, params } = bid
|
|
574
|
-
|
|
575
|
-
if (bidder === 'ozone') {
|
|
576
|
-
expect(deepAccess(params, 'customData.0.targeting.p_standard')).to.eql(data.ac.concat(data.ssp.cohorts))
|
|
577
|
-
}
|
|
578
|
-
})
|
|
579
|
-
})
|
|
580
|
-
})
|
|
581
|
-
})
|
|
582
|
-
|
|
583
563
|
describe('Existing key-value targeting', function () {
|
|
584
564
|
it('doesn\'t overwrite existing key-values for Xandr', function () {
|
|
585
565
|
const adUnits = getAdUnits()
|
|
@@ -2463,7 +2463,7 @@ describe('S2S Adapter', function () {
|
|
|
2463
2463
|
};
|
|
2464
2464
|
const bcat = ['IAB25', 'IAB7-39'];
|
|
2465
2465
|
const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];
|
|
2466
|
-
const allowedBidders = ['
|
|
2466
|
+
const allowedBidders = ['appnexus'];
|
|
2467
2467
|
|
|
2468
2468
|
const expected = allowedBidders.map(bidder => ({
|
|
2469
2469
|
bidders: [bidder],
|
|
@@ -2516,6 +2516,101 @@ describe('S2S Adapter', function () {
|
|
|
2516
2516
|
expect(parsedRequestBody.bcat).to.deep.equal(bcat);
|
|
2517
2517
|
});
|
|
2518
2518
|
|
|
2519
|
+
it('passes first party data in request for unknown when allowUnknownBidderCodes is true', () => {
|
|
2520
|
+
const cfg = { ...CONFIG, allowUnknownBidderCodes: true };
|
|
2521
|
+
config.setConfig({ s2sConfig: cfg });
|
|
2522
|
+
|
|
2523
|
+
const clonedReq = {...REQUEST, s2sConfig: cfg}
|
|
2524
|
+
const s2sBidRequest = utils.deepClone(clonedReq);
|
|
2525
|
+
const bidRequests = utils.deepClone(BID_REQUESTS);
|
|
2526
|
+
|
|
2527
|
+
const commonSite = {
|
|
2528
|
+
keywords: ['power tools'],
|
|
2529
|
+
search: 'drill'
|
|
2530
|
+
};
|
|
2531
|
+
const commonUser = {
|
|
2532
|
+
keywords: ['a', 'b'],
|
|
2533
|
+
gender: 'M'
|
|
2534
|
+
};
|
|
2535
|
+
|
|
2536
|
+
const site = {
|
|
2537
|
+
content: {userrating: 4},
|
|
2538
|
+
ext: {
|
|
2539
|
+
data: {
|
|
2540
|
+
pageType: 'article',
|
|
2541
|
+
category: 'tools'
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
};
|
|
2545
|
+
const user = {
|
|
2546
|
+
yob: '1984',
|
|
2547
|
+
geo: { country: 'ca' },
|
|
2548
|
+
ext: {
|
|
2549
|
+
data: {
|
|
2550
|
+
registered: true,
|
|
2551
|
+
interests: ['cars']
|
|
2552
|
+
}
|
|
2553
|
+
}
|
|
2554
|
+
};
|
|
2555
|
+
const bcat = ['IAB25', 'IAB7-39'];
|
|
2556
|
+
const badv = ['blockedAdv-1.com', 'blockedAdv-2.com'];
|
|
2557
|
+
const allowedBidders = ['appnexus', 'unknown'];
|
|
2558
|
+
|
|
2559
|
+
const expected = allowedBidders.map(bidder => ({
|
|
2560
|
+
bidders: [bidder],
|
|
2561
|
+
config: {
|
|
2562
|
+
ortb2: {
|
|
2563
|
+
site: {
|
|
2564
|
+
content: { userrating: 4 },
|
|
2565
|
+
ext: {
|
|
2566
|
+
data: {
|
|
2567
|
+
pageType: 'article',
|
|
2568
|
+
category: 'tools'
|
|
2569
|
+
}
|
|
2570
|
+
}
|
|
2571
|
+
},
|
|
2572
|
+
user: {
|
|
2573
|
+
yob: '1984',
|
|
2574
|
+
geo: { country: 'ca' },
|
|
2575
|
+
ext: {
|
|
2576
|
+
data: {
|
|
2577
|
+
registered: true,
|
|
2578
|
+
interests: ['cars']
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
},
|
|
2582
|
+
bcat: ['IAB25', 'IAB7-39'],
|
|
2583
|
+
badv: ['blockedAdv-1.com', 'blockedAdv-2.com']
|
|
2584
|
+
}
|
|
2585
|
+
}
|
|
2586
|
+
}));
|
|
2587
|
+
const commonContextExpected = utils.mergeDeep({
|
|
2588
|
+
'page': 'http://mytestpage.com',
|
|
2589
|
+
'domain': 'mytestpage.com',
|
|
2590
|
+
'publisher': {
|
|
2591
|
+
'id': '1',
|
|
2592
|
+
'domain': 'mytestpage.com'
|
|
2593
|
+
}
|
|
2594
|
+
}, commonSite);
|
|
2595
|
+
|
|
2596
|
+
const ortb2Fragments = {
|
|
2597
|
+
global: {site: commonSite, user: commonUser, badv, bcat},
|
|
2598
|
+
bidder: Object.fromEntries(allowedBidders.map(bidder => [bidder, {site, user, bcat, badv}]))
|
|
2599
|
+
};
|
|
2600
|
+
|
|
2601
|
+
// adapter.callBids({ ...REQUEST, s2sConfig: cfg }, BID_REQUESTS, addBidResponse, done, ajax);
|
|
2602
|
+
|
|
2603
|
+
adapter.callBids(addFpdEnrichmentsToS2SRequest({...s2sBidRequest, ortb2Fragments}, bidRequests, cfg), bidRequests, addBidResponse, done, ajax);
|
|
2604
|
+
const parsedRequestBody = JSON.parse(server.requests[0].requestBody);
|
|
2605
|
+
// eslint-disable-next-line no-console
|
|
2606
|
+
console.log(parsedRequestBody);
|
|
2607
|
+
expect(parsedRequestBody.ext.prebid.bidderconfig).to.deep.equal(expected);
|
|
2608
|
+
expect(parsedRequestBody.site).to.deep.equal(commonContextExpected);
|
|
2609
|
+
expect(parsedRequestBody.user).to.deep.equal(commonUser);
|
|
2610
|
+
expect(parsedRequestBody.badv).to.deep.equal(badv);
|
|
2611
|
+
expect(parsedRequestBody.bcat).to.deep.equal(bcat);
|
|
2612
|
+
});
|
|
2613
|
+
|
|
2519
2614
|
describe('pbAdSlot config', function () {
|
|
2520
2615
|
it('should not send \"imp.ext.data.pbadslot\" if \"ortb2Imp.ext\" is undefined', function () {
|
|
2521
2616
|
const consentConfig = { s2sConfig: CONFIG };
|
|
@@ -371,7 +371,8 @@ describe('pubmatic analytics adapter', function () {
|
|
|
371
371
|
expect(data.s[0].fskp).to.equal(0);
|
|
372
372
|
expect(data.s[0].sz).to.deep.equal(['640x480']);
|
|
373
373
|
expect(data.s[0].ps).to.be.an('array');
|
|
374
|
-
|
|
374
|
+
expect(data.s[0].au).to.equal('/19968336/header-bid-tag-0');
|
|
375
|
+
expect(data.s[0].ps.length).to.equal(1);
|
|
375
376
|
expect(data.s[0].ps[0].pn).to.equal('pubmatic');
|
|
376
377
|
expect(data.s[0].ps[0].bc).to.equal('pubmatic');
|
|
377
378
|
expect(data.s[0].ps[0].bidid).to.equal('2ecff0db240757');
|
|
@@ -481,6 +482,7 @@ describe('pubmatic analytics adapter', function () {
|
|
|
481
482
|
expect(data.s[0].fskp).to.equal(0);
|
|
482
483
|
expect(data.s[0].sz).to.deep.equal(['640x480']);
|
|
483
484
|
expect(data.s[0].ps).to.be.an('array');
|
|
485
|
+
expect(data.s[0].au).to.equal('/19968336/header-bid-tag-0');
|
|
484
486
|
expect(data.s[0].ps.length).to.equal(1);
|
|
485
487
|
expect(data.s[0].ps[0].pn).to.equal('pubmatic');
|
|
486
488
|
expect(data.s[0].ps[0].bc).to.equal('pubmatic');
|
|
@@ -553,6 +555,7 @@ describe('pubmatic analytics adapter', function () {
|
|
|
553
555
|
expect(data.s[0].sz).to.deep.equal(['640x480']);
|
|
554
556
|
expect(data.s[0].ps).to.be.an('array');
|
|
555
557
|
expect(data.s[0].ps.length).to.equal(1);
|
|
558
|
+
expect(data.s[0].au).to.equal('/19968336/header-bid-tag-0');
|
|
556
559
|
expect(data.s[0].ps[0].pn).to.equal('pubmatic');
|
|
557
560
|
expect(data.s[0].ps[0].bc).to.equal('pubmatic');
|
|
558
561
|
expect(data.s[0].ps[0].bidid).to.equal('2ecff0db240757');
|
|
@@ -1029,6 +1032,7 @@ describe('pubmatic analytics adapter', function () {
|
|
|
1029
1032
|
expect(data.s[0].fskp).to.equal(0);
|
|
1030
1033
|
expect(data.s[0].sz).to.deep.equal(['640x480']);
|
|
1031
1034
|
expect(data.s[0].ps).to.be.an('array');
|
|
1035
|
+
expect(data.s[0].au).to.equal('/19968336/header-bid-tag-0');
|
|
1032
1036
|
expect(data.s[0].ps.length).to.equal(1);
|
|
1033
1037
|
expect(data.s[0].ps[0].pn).to.equal('pubmatic');
|
|
1034
1038
|
expect(data.s[0].ps[0].bc).to.equal('pubmatic_alias');
|
|
@@ -1147,6 +1151,7 @@ describe('pubmatic analytics adapter', function () {
|
|
|
1147
1151
|
expect(data.s[0].fskp).to.equal(0);
|
|
1148
1152
|
expect(data.s[0].sz).to.deep.equal(['640x480']);
|
|
1149
1153
|
expect(data.s[0].ps).to.be.an('array');
|
|
1154
|
+
expect(data.s[0].au).to.equal('/19968336/header-bid-tag-0');
|
|
1150
1155
|
expect(data.s[0].ps.length).to.equal(1);
|
|
1151
1156
|
expect(data.s[0].ps[0].pn).to.equal('pubmatic');
|
|
1152
1157
|
expect(data.s[0].ps[0].bc).to.equal('groupm');
|