prebid.js 6.4.0 → 6.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.
- package/integrationExamples/gpt/amp/creative.html +11 -33
- package/integrationExamples/gpt/x-domain/creative.html +53 -26
- package/modules/.submodules.json +2 -1
- package/modules/adagioBidAdapter.js +0 -8
- package/modules/adagioBidAdapter.md +1 -1
- package/modules/adbookpspBidAdapter.js +27 -10
- package/modules/adhashBidAdapter.js +3 -3
- package/modules/adkernelBidAdapter.js +2 -1
- package/modules/admanBidAdapter.js +10 -4
- package/modules/adomikAnalyticsAdapter.js +23 -11
- package/modules/adqueryIdSystem.js +103 -0
- package/modules/adqueryIdSystem.md +35 -0
- package/modules/adyoulikeBidAdapter.js +13 -9
- package/modules/appnexusBidAdapter.js +11 -0
- package/modules/bliinkBidAdapter.js +3 -2
- package/modules/brandmetricsRtdProvider.js +168 -0
- package/modules/brandmetricsRtdProvider.md +40 -0
- package/modules/colossussspBidAdapter.js +12 -8
- package/modules/colossussspBidAdapter.md +15 -1
- package/modules/compassBidAdapter.js +10 -3
- package/modules/consentManagement.js +7 -1
- package/modules/consumableBidAdapter.md +1 -1
- package/modules/criteoBidAdapter.js +10 -1
- package/modules/criteoIdSystem.js +29 -7
- package/modules/currency.js +26 -1
- package/modules/displayioBidAdapter.js +157 -0
- package/modules/displayioBidAdapter.md +148 -0
- package/modules/docereeBidAdapter.js +10 -1
- package/modules/docereeBidAdapter.md +2 -0
- package/modules/e_volutionBidAdapter.js +158 -0
- package/modules/glimpseBidAdapter.js +66 -44
- package/modules/gnetBidAdapter.js +3 -3
- package/modules/gnetBidAdapter.md +4 -4
- package/modules/gptPreAuction.js +55 -7
- package/modules/gumgumBidAdapter.js +56 -42
- package/modules/idImportLibrary.js +45 -8
- package/modules/idImportLibrary.md +4 -0
- package/modules/improvedigitalBidAdapter.js +24 -2
- package/modules/interactiveOffersBidAdapter.js +9 -6
- package/modules/ixBidAdapter.js +29 -12
- package/modules/jwplayerRtdProvider.js +71 -6
- package/modules/jwplayerRtdProvider.md +27 -11
- package/modules/kargoBidAdapter.js +2 -2
- package/modules/limelightDigitalBidAdapter.js +2 -1
- package/modules/livewrappedAnalyticsAdapter.js +3 -1
- package/modules/loglyliftBidAdapter.js +79 -0
- package/modules/loglyliftBidAdapter.md +55 -0
- package/modules/nextMillenniumBidAdapter.js +3 -1
- package/modules/oguryBidAdapter.js +9 -2
- package/modules/onetagBidAdapter.js +4 -2
- package/modules/optimeraRtdProvider.js +8 -1
- package/modules/ozoneBidAdapter.js +21 -64
- package/modules/pilotxBidAdapter.js +147 -0
- package/modules/pilotxBidAdapter.md +50 -0
- package/modules/proxistoreBidAdapter.js +0 -2
- package/modules/pubmaticAnalyticsAdapter.js +16 -0
- package/modules/richaudienceBidAdapter.js +3 -2
- package/modules/riseBidAdapter.js +1 -1
- package/modules/rtbhouseBidAdapter.js +14 -4
- package/modules/rtdModule/index.js +14 -15
- package/modules/rubiconAnalyticsAdapter.js +3 -2
- package/modules/seedingAllianceBidAdapter.js +3 -3
- package/modules/sharethroughBidAdapter.js +12 -17
- package/modules/showheroes-bsBidAdapter.js +13 -2
- package/modules/sovrnBidAdapter.js +93 -18
- package/modules/sovrnBidAdapter.md +80 -2
- package/modules/synacormediaBidAdapter.js +31 -10
- package/modules/tappxBidAdapter.js +8 -5
- package/modules/teadsBidAdapter.js +1 -2
- package/modules/undertoneBidAdapter.js +17 -1
- package/modules/userId/eids.js +7 -1
- package/modules/userId/userId.md +8 -0
- package/modules/viewability.js +177 -0
- package/modules/viewability.md +87 -0
- package/modules/welectBidAdapter.js +106 -0
- package/modules/yahoosspBidAdapter.js +2 -0
- package/modules/yieldmoBidAdapter.js +23 -5
- package/modules/zeta_global_sspAnalyticsAdapter.js +97 -0
- package/modules/zeta_global_sspAnalyticsAdapter.md +24 -0
- package/package.json +1 -1
- package/src/adRendering.js +38 -0
- package/src/auction.js +44 -9
- package/src/config.js +27 -3
- package/src/hook.js +5 -1
- package/src/prebid.js +21 -21
- package/src/secureCreatives.js +114 -44
- package/src/utils.js +25 -4
- package/test/helpers/syncPromise.js +71 -0
- package/test/spec/auctionmanager_spec.js +148 -16
- package/test/spec/config_spec.js +279 -0
- package/test/spec/modules/adagioBidAdapter_spec.js +0 -10
- package/test/spec/modules/adbookpspBidAdapter_spec.js +17 -3
- package/test/spec/modules/adhashBidAdapter_spec.js +2 -2
- package/test/spec/modules/admanBidAdapter_spec.js +2 -2
- package/test/spec/modules/adomikAnalyticsAdapter_spec.js +3 -1
- package/test/spec/modules/adqueryIdSystem_spec.js +74 -0
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +49 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +27 -0
- package/test/spec/modules/bliinkBidAdapter_spec.js +2 -0
- package/test/spec/modules/brandmetricsRtdProvider_spec.js +191 -0
- package/test/spec/modules/colossussspBidAdapter_spec.js +5 -2
- package/test/spec/modules/compassBidAdapter_spec.js +1 -0
- package/test/spec/modules/consentManagement_spec.js +20 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +21 -0
- package/test/spec/modules/criteoIdSystem_spec.js +6 -3
- package/test/spec/modules/currency_spec.js +21 -6
- package/test/spec/modules/displayioBidAdapter_spec.js +239 -0
- package/test/spec/modules/docereeBidAdapter_spec.js +9 -1
- package/test/spec/modules/e_volutionBidAdapter_spec.js +242 -0
- package/test/spec/modules/eids_spec.js +15 -0
- package/test/spec/modules/glimpseBidAdapter_spec.js +0 -18
- package/test/spec/modules/gnetBidAdapter_spec.js +6 -6
- package/test/spec/modules/gptPreAuction_spec.js +177 -2
- package/test/spec/modules/gumgumBidAdapter_spec.js +46 -0
- package/test/spec/modules/idImportLibrary_spec.js +197 -10
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +42 -0
- package/test/spec/modules/ixBidAdapter_spec.js +104 -62
- package/test/spec/modules/jwplayerRtdProvider_spec.js +195 -2
- package/test/spec/modules/kargoBidAdapter_spec.js +1 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +75 -17
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +22 -0
- package/test/spec/modules/loglyliftBidAdapter_spec.js +172 -0
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +1 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +10 -2
- package/test/spec/modules/optimeraRtdProvider_spec.js +14 -1
- package/test/spec/modules/ozoneBidAdapter_spec.js +43 -31
- package/test/spec/modules/pilotxBidAdapter_spec.js +244 -0
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +13 -1
- package/test/spec/modules/realTimeDataModule_spec.js +67 -5
- package/test/spec/modules/richaudienceBidAdapter_spec.js +40 -0
- package/test/spec/modules/riseBidAdapter_spec.js +1 -1
- package/test/spec/modules/rtbhouseBidAdapter_spec.js +20 -0
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +30 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +91 -6
- package/test/spec/modules/showheroes-bsBidAdapter_spec.js +2 -0
- package/test/spec/modules/sovrnBidAdapter_spec.js +413 -333
- package/test/spec/modules/synacormediaBidAdapter_spec.js +70 -0
- package/test/spec/modules/tappxBidAdapter_spec.js +0 -19
- package/test/spec/modules/teadsBidAdapter_spec.js +14 -59
- package/test/spec/modules/undertoneBidAdapter_spec.js +55 -2
- package/test/spec/modules/userId_spec.js +68 -19
- package/test/spec/modules/viewability_spec.js +280 -0
- package/test/spec/modules/welectBidAdapter_spec.js +211 -0
- package/test/spec/modules/yahoosspBidAdapter_spec.js +10 -0
- package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +427 -0
- package/test/spec/unit/pbjs_api_spec.js +20 -2
- package/test/spec/unit/secureCreatives_spec.js +85 -0
|
@@ -791,6 +791,46 @@ describe('Richaudience adapter tests', function () {
|
|
|
791
791
|
})).to.equal(true);
|
|
792
792
|
});
|
|
793
793
|
|
|
794
|
+
it('should pass schain', function() {
|
|
795
|
+
let schain = {
|
|
796
|
+
'ver': '1.0',
|
|
797
|
+
'complete': 1,
|
|
798
|
+
'nodes': [{
|
|
799
|
+
'asi': 'richaudience.com',
|
|
800
|
+
'sid': '00001',
|
|
801
|
+
'hp': 1
|
|
802
|
+
}, {
|
|
803
|
+
'asi': 'richaudience-2.com',
|
|
804
|
+
'sid': '00002',
|
|
805
|
+
'hp': 1
|
|
806
|
+
}]
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
DEFAULT_PARAMS_NEW_SIZES[0].schain = {
|
|
810
|
+
'ver': '1.0',
|
|
811
|
+
'complete': 1,
|
|
812
|
+
'nodes': [{
|
|
813
|
+
'asi': 'richaudience.com',
|
|
814
|
+
'sid': '00001',
|
|
815
|
+
'hp': 1
|
|
816
|
+
}, {
|
|
817
|
+
'asi': 'richaudience-2.com',
|
|
818
|
+
'sid': '00002',
|
|
819
|
+
'hp': 1
|
|
820
|
+
}]
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
const request = spec.buildRequests(DEFAULT_PARAMS_NEW_SIZES, {
|
|
824
|
+
gdprConsent: {
|
|
825
|
+
consentString: 'BOZcQl_ObPFjWAeABAESCD-AAAAjx7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_NohBgA',
|
|
826
|
+
gdprApplies: true
|
|
827
|
+
},
|
|
828
|
+
refererInfo: {}
|
|
829
|
+
})
|
|
830
|
+
const requestContent = JSON.parse(request[0].data);
|
|
831
|
+
expect(requestContent).to.have.property('schain').to.deep.equal(schain);
|
|
832
|
+
})
|
|
833
|
+
|
|
794
834
|
describe('userSync', function () {
|
|
795
835
|
it('Verifies user syncs iframe include', function () {
|
|
796
836
|
config.setConfig({
|
|
@@ -257,7 +257,7 @@ describe('riseAdapter', function () {
|
|
|
257
257
|
const requests = spec.buildRequests(bidRequests, bidderRequest);
|
|
258
258
|
for (const request of requests) {
|
|
259
259
|
expect(request.data).to.be.an('object');
|
|
260
|
-
expect(request.data).to.have.property('schain', '1.0,1!indirectseller.com,00001
|
|
260
|
+
expect(request.data).to.have.property('schain', '1.0,1!indirectseller.com,00001,1,,,');
|
|
261
261
|
}
|
|
262
262
|
});
|
|
263
263
|
|
|
@@ -68,6 +68,7 @@ describe('RTBHouseAdapter', () => {
|
|
|
68
68
|
'params': {
|
|
69
69
|
'publisherId': 'PREBID_TEST',
|
|
70
70
|
'region': 'prebid-eu',
|
|
71
|
+
'channel': 'Partner_Site - news',
|
|
71
72
|
'test': 1
|
|
72
73
|
},
|
|
73
74
|
'adUnitCode': 'adunit-code',
|
|
@@ -101,6 +102,25 @@ describe('RTBHouseAdapter', () => {
|
|
|
101
102
|
expect(JSON.parse(builtTestRequest).test).to.equal(1);
|
|
102
103
|
});
|
|
103
104
|
|
|
105
|
+
it('should build channel param into request.site', () => {
|
|
106
|
+
let builtTestRequest = spec.buildRequests(bidRequests, bidderRequest).data;
|
|
107
|
+
expect(JSON.parse(builtTestRequest).site.channel).to.equal('Partner_Site - news');
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
it('should not build channel param into request.site if no value is passed', () => {
|
|
111
|
+
let bidRequest = Object.assign([], bidRequests);
|
|
112
|
+
bidRequest[0].params.channel = undefined;
|
|
113
|
+
let builtTestRequest = spec.buildRequests(bidRequest, bidderRequest).data;
|
|
114
|
+
expect(JSON.parse(builtTestRequest).site.channel).to.be.undefined
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
it('should cap the request.site.channel length to 50', () => {
|
|
118
|
+
let bidRequest = Object.assign([], bidRequests);
|
|
119
|
+
bidRequest[0].params.channel = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent scelerisque ipsum eu purus lobortis iaculis.';
|
|
120
|
+
let builtTestRequest = spec.buildRequests(bidRequest, bidderRequest).data;
|
|
121
|
+
expect(JSON.parse(builtTestRequest).site.channel.length).to.equal(50)
|
|
122
|
+
})
|
|
123
|
+
|
|
104
124
|
it('should build valid OpenRTB banner object', () => {
|
|
105
125
|
const request = JSON.parse(spec.buildRequests(bidRequests, bidderRequest).data);
|
|
106
126
|
const imp = request.imp[0];
|
|
@@ -987,6 +987,36 @@ describe('rubicon analytics adapter', function () {
|
|
|
987
987
|
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.adomains).to.be.undefined;
|
|
988
988
|
});
|
|
989
989
|
|
|
990
|
+
it('should NOT pass along adomians with other edge cases', function () {
|
|
991
|
+
events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
|
|
992
|
+
events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
|
|
993
|
+
|
|
994
|
+
// should filter out non string values and pass valid ones
|
|
995
|
+
let bidResponse1 = utils.deepClone(MOCK.BID_RESPONSE[0]);
|
|
996
|
+
bidResponse1.meta = {
|
|
997
|
+
advertiserDomains: [123, 'prebid.org', false, true, [], 'magnite.com', {}]
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
// array of arrays (as seen when passed by kargo bid adapter)
|
|
1001
|
+
let bidResponse2 = utils.deepClone(MOCK.BID_RESPONSE[1]);
|
|
1002
|
+
bidResponse2.meta = {
|
|
1003
|
+
advertiserDomains: [['prebid.org']]
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
events.emit(BID_RESPONSE, bidResponse1);
|
|
1007
|
+
events.emit(BID_RESPONSE, bidResponse2);
|
|
1008
|
+
events.emit(BIDDER_DONE, MOCK.BIDDER_DONE);
|
|
1009
|
+
events.emit(AUCTION_END, MOCK.AUCTION_END);
|
|
1010
|
+
events.emit(SET_TARGETING, MOCK.SET_TARGETING);
|
|
1011
|
+
events.emit(BID_WON, MOCK.BID_WON[0]);
|
|
1012
|
+
events.emit(BID_WON, MOCK.BID_WON[1]);
|
|
1013
|
+
|
|
1014
|
+
let message = JSON.parse(server.requests[0].requestBody);
|
|
1015
|
+
validate(message);
|
|
1016
|
+
expect(message.auctions[0].adUnits[0].bids[0].bidResponse.adomains).to.deep.equal(['prebid.org', 'magnite.com']);
|
|
1017
|
+
expect(message.auctions[0].adUnits[1].bids[0].bidResponse.adomains).to.be.undefined;
|
|
1018
|
+
});
|
|
1019
|
+
|
|
990
1020
|
it('should not pass empty adServerTargeting values', function () {
|
|
991
1021
|
events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
|
|
992
1022
|
events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
|
+
import * as sinon from 'sinon';
|
|
2
3
|
import { sharethroughAdapterSpec, sharethroughInternal } from 'modules/sharethroughBidAdapter.js';
|
|
3
4
|
import { newBidder } from 'src/adapters/bidderFactory.js';
|
|
4
5
|
import { config } from 'src/config';
|
|
@@ -157,7 +158,6 @@ describe('sharethrough adapter spec', function () {
|
|
|
157
158
|
startdelay: 42,
|
|
158
159
|
skipmin: 10,
|
|
159
160
|
skipafter: 20,
|
|
160
|
-
placement: 1,
|
|
161
161
|
delivery: 1,
|
|
162
162
|
companiontype: 'companion type',
|
|
163
163
|
companionad: 'companion ad',
|
|
@@ -205,6 +205,7 @@ describe('sharethrough adapter spec', function () {
|
|
|
205
205
|
expect(openRtbReq.cur).to.deep.equal(['USD']);
|
|
206
206
|
expect(openRtbReq.tmax).to.equal(242);
|
|
207
207
|
|
|
208
|
+
expect(Object.keys(openRtbReq.site)).to.have.length(3);
|
|
208
209
|
expect(openRtbReq.site.domain).not.to.be.undefined;
|
|
209
210
|
expect(openRtbReq.site.page).not.to.be.undefined;
|
|
210
211
|
expect(openRtbReq.site.ref).to.equal('https://referer.com');
|
|
@@ -256,6 +257,17 @@ describe('sharethrough adapter spec', function () {
|
|
|
256
257
|
});
|
|
257
258
|
});
|
|
258
259
|
|
|
260
|
+
describe('no referer provided', () => {
|
|
261
|
+
beforeEach(() => {
|
|
262
|
+
bidderRequest = {};
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
it('should set referer to undefined', () => {
|
|
266
|
+
const openRtbReq = spec.buildRequests(bidRequests, bidderRequest)[0].data;
|
|
267
|
+
expect(openRtbReq.site.ref).to.be.undefined;
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
|
|
259
271
|
describe('regulation', () => {
|
|
260
272
|
describe('gdpr', () => {
|
|
261
273
|
it('should populate request accordingly when gdpr applies', () => {
|
|
@@ -419,17 +431,90 @@ describe('sharethrough adapter spec', function () {
|
|
|
419
431
|
expect(videoImp.startdelay).to.equal(0);
|
|
420
432
|
expect(videoImp.skipmin).to.equal(0);
|
|
421
433
|
expect(videoImp.skipafter).to.equal(0);
|
|
422
|
-
expect(videoImp.placement).to.
|
|
434
|
+
expect(videoImp.placement).to.equal(1);
|
|
423
435
|
expect(videoImp.delivery).to.be.undefined;
|
|
424
436
|
expect(videoImp.companiontype).to.be.undefined;
|
|
425
437
|
expect(videoImp.companionad).to.be.undefined;
|
|
426
438
|
});
|
|
427
439
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
440
|
+
describe('outstream', () => {
|
|
441
|
+
it('should use placement value if provided', () => {
|
|
442
|
+
bidRequests[1].mediaTypes.video.context = 'outstream';
|
|
443
|
+
bidRequests[1].mediaTypes.video.placement = 3;
|
|
444
|
+
|
|
445
|
+
const builtRequest = spec.buildRequests(bidRequests, bidderRequest)[1];
|
|
446
|
+
const videoImp = builtRequest.data.imp[0].video;
|
|
447
|
+
|
|
448
|
+
expect(videoImp.placement).to.equal(3);
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
it('should default placement to 4 if not provided', () => {
|
|
452
|
+
bidRequests[1].mediaTypes.video.context = 'outstream';
|
|
453
|
+
|
|
454
|
+
const builtRequest = spec.buildRequests(bidRequests, bidderRequest)[1];
|
|
455
|
+
const videoImp = builtRequest.data.imp[0].video;
|
|
456
|
+
|
|
457
|
+
expect(videoImp.placement).to.equal(4);
|
|
458
|
+
});
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
describe('first party data', () => {
|
|
463
|
+
const firstPartyData = {
|
|
464
|
+
site: {
|
|
465
|
+
name: 'example',
|
|
466
|
+
keywords: 'power tools, drills',
|
|
467
|
+
search: 'drill',
|
|
468
|
+
content: {
|
|
469
|
+
userrating: '4',
|
|
470
|
+
},
|
|
471
|
+
ext: {
|
|
472
|
+
data: {
|
|
473
|
+
pageType: 'article',
|
|
474
|
+
category: 'repair',
|
|
475
|
+
},
|
|
476
|
+
},
|
|
477
|
+
},
|
|
478
|
+
user: {
|
|
479
|
+
yob: 1985,
|
|
480
|
+
gender: 'm',
|
|
481
|
+
ext: {
|
|
482
|
+
data: {
|
|
483
|
+
registered: true,
|
|
484
|
+
interests: ['cars'],
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
},
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
let configStub;
|
|
491
|
+
|
|
492
|
+
beforeEach(() => {
|
|
493
|
+
configStub = sinon.stub(config, 'getConfig');
|
|
494
|
+
configStub.withArgs('ortb2').returns(firstPartyData);
|
|
495
|
+
});
|
|
496
|
+
|
|
497
|
+
afterEach(() => {
|
|
498
|
+
configStub.restore();
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
it('should include first party data in open rtb request, site section', () => {
|
|
502
|
+
const openRtbReq = spec.buildRequests(bidRequests, bidderRequest)[0].data;
|
|
503
|
+
|
|
504
|
+
expect(openRtbReq.site.name).to.equal(firstPartyData.site.name);
|
|
505
|
+
expect(openRtbReq.site.keywords).to.equal(firstPartyData.site.keywords);
|
|
506
|
+
expect(openRtbReq.site.search).to.equal(firstPartyData.site.search);
|
|
507
|
+
expect(openRtbReq.site.content).to.deep.equal(firstPartyData.site.content);
|
|
508
|
+
expect(openRtbReq.site.ext).to.deep.equal(firstPartyData.site.ext);
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
it('should include first party data in open rtb request, user section', () => {
|
|
512
|
+
const openRtbReq = spec.buildRequests(bidRequests, bidderRequest)[0].data;
|
|
431
513
|
|
|
432
|
-
expect(
|
|
514
|
+
expect(openRtbReq.user.yob).to.equal(firstPartyData.user.yob);
|
|
515
|
+
expect(openRtbReq.user.gender).to.equal(firstPartyData.user.gender);
|
|
516
|
+
expect(openRtbReq.user.ext.data).to.deep.equal(firstPartyData.user.ext.data);
|
|
517
|
+
expect(openRtbReq.user.ext.eids).not.to.be.undefined;
|
|
433
518
|
});
|
|
434
519
|
});
|
|
435
520
|
});
|
|
@@ -13,6 +13,7 @@ const adomain = ['showheroes.com'];
|
|
|
13
13
|
|
|
14
14
|
const gdpr = {
|
|
15
15
|
'gdprConsent': {
|
|
16
|
+
'apiVersion': 2,
|
|
16
17
|
'consentString': 'BOEFEAyOEFEAyAHABDENAI4AAAB9vABAASA',
|
|
17
18
|
'gdprApplies': true
|
|
18
19
|
}
|
|
@@ -332,6 +333,7 @@ describe('shBidAdapter', function () {
|
|
|
332
333
|
{
|
|
333
334
|
'cpm': 5,
|
|
334
335
|
'creativeId': 'c_38b373e1e31c18',
|
|
336
|
+
'adUnitCode': 'adunit-code-1',
|
|
335
337
|
'currency': 'EUR',
|
|
336
338
|
'width': 640,
|
|
337
339
|
'height': 480,
|