prebid.js 7.31.0 → 7.32.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/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/adlooxRtdProvider.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/alkimiBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/aolBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/appushBidAdapter.js +1 -0
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.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/connectIdSystem.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/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.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/holidBidAdapter.js +1 -0
- 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/jwplayerVideoProvider.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.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/medianetRtdProvider.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +126 -123
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/orbitsoftBidAdapter.js +1 -0
- 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/publinkIdSystem.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/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/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/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.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/yieldlabBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/adloox.html +5 -0
- package/modules/adagioBidAdapter.js +0 -4
- package/modules/adagioBidAdapter.md +4 -22
- package/modules/adlooxAnalyticsAdapter.md +5 -3
- package/modules/adlooxRtdProvider.js +82 -278
- package/modules/adlooxRtdProvider.md +6 -6
- package/modules/aidemBidAdapter.js +4 -0
- package/modules/aidemBidAdapter.md +1 -0
- package/modules/alkimiBidAdapter.js +23 -6
- package/modules/aolBidAdapter.js +12 -0
- package/modules/appnexusBidAdapter.js +2 -2
- package/modules/appushBidAdapter.js +188 -0
- package/modules/appushBidAdapter.md +79 -0
- package/modules/asoBidAdapter.js +8 -5
- package/modules/confiantRtdProvider.js +1 -1
- package/modules/connectIdSystem.js +15 -1
- package/modules/feedadBidAdapter.js +7 -5
- package/modules/holidBidAdapter.js +170 -0
- package/modules/holidBidAdapter.md +36 -0
- package/modules/jwplayerVideoProvider.js +10 -3
- package/modules/kueezRtbBidAdapter.js +21 -8
- package/modules/medianetRtdProvider.js +4 -4
- package/modules/nexx360BidAdapter.js +5 -7
- package/modules/orbitsoftBidAdapter.js +150 -0
- package/modules/permutiveRtdProvider.js +1 -1
- package/modules/riseBidAdapter.js +2 -1
- package/modules/riseBidAdapter.md +2 -0
- package/modules/seedtagBidAdapter.js +12 -0
- package/modules/smartxBidAdapter.js +6 -0
- package/modules/taboolaBidAdapter.js +61 -14
- package/modules/yahoosspBidAdapter.js +5 -0
- package/modules/yieldlabBidAdapter.js +150 -134
- package/modules/yieldmoBidAdapter.js +1 -12
- package/package.json +1 -1
- package/test/spec/modules/adagioBidAdapter_spec.js +1 -28
- package/test/spec/modules/adlooxRtdProvider_spec.js +28 -120
- package/test/spec/modules/aidemBidAdapter_spec.js +10 -2
- package/test/spec/modules/alkimiBidAdapter_spec.js +15 -3
- package/test/spec/modules/aolBidAdapter_spec.js +22 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +7 -3
- package/test/spec/modules/appushBidAdapter_spec.js +372 -0
- package/test/spec/modules/connectIdSystem_spec.js +17 -5
- package/test/spec/modules/feedadBidAdapter_spec.js +23 -1
- package/test/spec/modules/holidBidAdapter_spec.js +165 -0
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +147 -24
- package/test/spec/modules/medianetRtdProvider_spec.js +3 -3
- package/test/spec/modules/orbitsoftBidAdapter_spec.js +255 -0
- package/test/spec/modules/riseBidAdapter_spec.js +7 -0
- package/test/spec/modules/seedtagBidAdapter_spec.js +56 -10
- package/test/spec/modules/smartxBidAdapter_spec.js +10 -0
- package/test/spec/modules/taboolaBidAdapter_spec.js +142 -5
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +45 -10
- package/test/spec/modules/yahoosspBidAdapter_spec.js +16 -1
- package/test/spec/modules/yieldlabBidAdapter_spec.js +311 -301
- package/test/spec/modules/yieldmoBidAdapter_spec.js +70 -0
|
@@ -149,10 +149,8 @@ describe('Adagio bid adapter', () => {
|
|
|
149
149
|
site: {
|
|
150
150
|
ext: {
|
|
151
151
|
data: {
|
|
152
|
-
environment: 'desktop',
|
|
153
152
|
pagetype: 'abc',
|
|
154
|
-
category: ['cat1', 'cat2', 'cat3']
|
|
155
|
-
subcategory: []
|
|
153
|
+
category: ['cat1', 'cat2', 'cat3']
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
156
|
}
|
|
@@ -167,17 +165,11 @@ describe('Adagio bid adapter', () => {
|
|
|
167
165
|
return utils.deepAccess(config, key);
|
|
168
166
|
});
|
|
169
167
|
|
|
170
|
-
setExtraParam(bid, 'environment');
|
|
171
|
-
expect(bid.params.environment).to.equal('desktop');
|
|
172
|
-
|
|
173
168
|
setExtraParam(bid, 'pagetype')
|
|
174
169
|
expect(bid.params.pagetype).to.equal('article');
|
|
175
170
|
|
|
176
171
|
setExtraParam(bid, 'category');
|
|
177
172
|
expect(bid.params.category).to.equal('cat1'); // Only the first value is kept
|
|
178
|
-
|
|
179
|
-
setExtraParam(bid, 'subcategory');
|
|
180
|
-
expect(bid.params.subcategory).to.be.undefined;
|
|
181
173
|
});
|
|
182
174
|
|
|
183
175
|
it('should use the adUnit param unit if defined', function() {
|
|
@@ -784,8 +776,6 @@ describe('Adagio bid adapter', () => {
|
|
|
784
776
|
adUnitElementId: 'gpt-adunit-code',
|
|
785
777
|
pagetype: 'ARTICLE',
|
|
786
778
|
category: 'NEWS',
|
|
787
|
-
subcategory: 'SPORT',
|
|
788
|
-
environment: 'desktop',
|
|
789
779
|
supportIObs: true
|
|
790
780
|
},
|
|
791
781
|
adUnitCode: 'adunit-code',
|
|
@@ -833,8 +823,6 @@ describe('Adagio bid adapter', () => {
|
|
|
833
823
|
site: 'SITE-NAME',
|
|
834
824
|
pagetype: 'ARTICLE',
|
|
835
825
|
category: 'NEWS',
|
|
836
|
-
subcategory: 'SPORT',
|
|
837
|
-
environment: 'desktop',
|
|
838
826
|
aDomain: ['advertiser.com'],
|
|
839
827
|
mediaType: 'banner',
|
|
840
828
|
meta: {
|
|
@@ -868,8 +856,6 @@ describe('Adagio bid adapter', () => {
|
|
|
868
856
|
site: 'SITE-NAME',
|
|
869
857
|
pagetype: 'ARTICLE',
|
|
870
858
|
category: 'NEWS',
|
|
871
|
-
subcategory: 'SPORT',
|
|
872
|
-
environment: 'desktop',
|
|
873
859
|
aDomain: ['advertiser.com'],
|
|
874
860
|
mediaType: 'banner',
|
|
875
861
|
meta: {
|
|
@@ -1392,19 +1378,6 @@ describe('Adagio bid adapter', () => {
|
|
|
1392
1378
|
});
|
|
1393
1379
|
|
|
1394
1380
|
describe.skip('optional params auto detection', function() {
|
|
1395
|
-
it('should auto detect environment', function() {
|
|
1396
|
-
const getDeviceStub = sandbox.stub(_features, 'getDevice');
|
|
1397
|
-
|
|
1398
|
-
getDeviceStub.returns(5);
|
|
1399
|
-
expect(adagio.autoDetectEnvironment()).to.eq('tablet');
|
|
1400
|
-
|
|
1401
|
-
getDeviceStub.returns(4);
|
|
1402
|
-
expect(adagio.autoDetectEnvironment()).to.eq('mobile');
|
|
1403
|
-
|
|
1404
|
-
getDeviceStub.returns(2);
|
|
1405
|
-
expect(adagio.autoDetectEnvironment()).to.eq('desktop');
|
|
1406
|
-
});
|
|
1407
|
-
|
|
1408
1381
|
it('should auto detect adUnitElementId when GPT is used', function() {
|
|
1409
1382
|
sandbox.stub(utils, 'getGptSlotInfoForAdUnitCode').withArgs('banner').returns({divId: 'gpt-banner'});
|
|
1410
1383
|
expect(adagio.autoDetectAdUnitElementId('banner')).to.eq('gpt-banner');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import adapterManager from 'src/adapterManager.js';
|
|
2
2
|
import analyticsAdapter from 'modules/adlooxAnalyticsAdapter.js';
|
|
3
|
+
import {auctionManager} from 'src/auctionManager.js';
|
|
3
4
|
import { config as _config } from 'src/config.js';
|
|
4
5
|
import { expect } from 'chai';
|
|
5
6
|
import * as events from 'src/events.js';
|
|
@@ -75,14 +76,6 @@ describe('Adloox RTD Provider', function () {
|
|
|
75
76
|
done();
|
|
76
77
|
});
|
|
77
78
|
|
|
78
|
-
it('should reject non-string config.params.api_origin', function (done) {
|
|
79
|
-
const ret = rtdProvider.init({ params: { api_origin: null } });
|
|
80
|
-
|
|
81
|
-
expect(ret).is.false;
|
|
82
|
-
|
|
83
|
-
done();
|
|
84
|
-
});
|
|
85
|
-
|
|
86
79
|
it('should reject less than one config.params.imps', function (done) {
|
|
87
80
|
const ret = rtdProvider.init({ params: { imps: 0 } });
|
|
88
81
|
|
|
@@ -147,31 +140,37 @@ describe('Adloox RTD Provider', function () {
|
|
|
147
140
|
});
|
|
148
141
|
|
|
149
142
|
let server = null;
|
|
150
|
-
let
|
|
151
|
-
let getConfigStub, setConfigStub;
|
|
143
|
+
let CONFIG = null;
|
|
152
144
|
beforeEach(function () {
|
|
153
145
|
server = sinon.createFakeServer();
|
|
154
|
-
__config = {};
|
|
155
146
|
CONFIG = utils.deepClone(config);
|
|
156
|
-
getConfigStub = sinon.stub(_config, 'getConfig').callsFake(function (path) {
|
|
157
|
-
return utils.deepAccess(__config, path);
|
|
158
|
-
});
|
|
159
|
-
setConfigStub = sinon.stub(_config, 'setConfig').callsFake(function (obj) {
|
|
160
|
-
utils.mergeDeep(__config, obj);
|
|
161
|
-
});
|
|
162
147
|
});
|
|
163
148
|
afterEach(function () {
|
|
164
|
-
setConfigStub.restore();
|
|
165
|
-
getConfigStub.restore();
|
|
166
|
-
getConfigStub = setConfigStub = undefined;
|
|
167
149
|
CONFIG = null;
|
|
168
|
-
__config = null;
|
|
169
150
|
server.restore();
|
|
170
151
|
server = null;
|
|
171
152
|
});
|
|
172
153
|
|
|
173
154
|
it('should fetch segments', function (done) {
|
|
174
|
-
const req = {
|
|
155
|
+
const req = {
|
|
156
|
+
adUnitCodes: [ adUnit.code ],
|
|
157
|
+
ortb2Fragments: {
|
|
158
|
+
global: {
|
|
159
|
+
site: {
|
|
160
|
+
ext: {
|
|
161
|
+
data: {
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
user: {
|
|
166
|
+
ext: {
|
|
167
|
+
data: {
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
};
|
|
175
174
|
const adUnitWithSegments = utils.deepClone(adUnit);
|
|
176
175
|
const getGlobalStub = sinon.stub(prebidGlobal, 'getGlobal').returns({
|
|
177
176
|
adUnits: [ adUnitWithSegments ]
|
|
@@ -201,119 +200,28 @@ describe('Adloox RTD Provider', function () {
|
|
|
201
200
|
});
|
|
202
201
|
|
|
203
202
|
it('should set ad server targeting', function (done) {
|
|
204
|
-
utils.deepSetValue(__config, 'ortb2.site.ext.data.adloox_rtd.ok', true);
|
|
205
|
-
|
|
206
203
|
const adUnitWithSegments = utils.deepClone(adUnit);
|
|
207
204
|
utils.deepSetValue(adUnitWithSegments, 'ortb2Imp.ext.data.adloox_rtd.dis', [ 50, 60 ]);
|
|
208
205
|
const getGlobalStub = sinon.stub(prebidGlobal, 'getGlobal').returns({
|
|
209
206
|
adUnits: [ adUnitWithSegments ]
|
|
210
207
|
});
|
|
211
208
|
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
209
|
+
const auction = { adUnits: [ adUnitWithSegments ] };
|
|
210
|
+
const getAuctionStub = sinon.stub(auctionManager.index, 'getAuction').returns({
|
|
211
|
+
adUnits: [ adUnitWithSegments ],
|
|
212
|
+
getFPD: () => { return { global: { site: { ext: { data: { adloox_rtd: { ok: true } } } } } } }
|
|
216
213
|
});
|
|
214
|
+
|
|
215
|
+
const targetingData = rtdProvider.getTargetingData([ adUnitWithSegments.code ], CONFIG, null, auction);
|
|
217
216
|
expect(Object.keys(targetingData).length).is.equal(1);
|
|
218
217
|
expect(Object.keys(targetingData[adUnit.code]).length).is.equal(2);
|
|
219
218
|
expect(targetingData[adUnit.code].adl_ok).is.equal(1);
|
|
220
219
|
expect(targetingData[adUnit.code].adl_dis.length).is.equal(2);
|
|
221
220
|
|
|
221
|
+
getAuctionStub.restore();
|
|
222
222
|
getGlobalStub.restore();
|
|
223
223
|
|
|
224
224
|
done();
|
|
225
225
|
});
|
|
226
226
|
});
|
|
227
|
-
|
|
228
|
-
describe('measure atf', function () {
|
|
229
|
-
const adUnitCopy = utils.deepClone(adUnit);
|
|
230
|
-
|
|
231
|
-
const ratio = 0.38;
|
|
232
|
-
const [ [width, height] ] = utils.getAdUnitSizes(adUnitCopy);
|
|
233
|
-
|
|
234
|
-
before(function () {
|
|
235
|
-
adapterManager.enableAnalytics({
|
|
236
|
-
provider: analyticsAdapterName,
|
|
237
|
-
options: analyticsOptions
|
|
238
|
-
});
|
|
239
|
-
expect(analyticsAdapter.context).is.not.null;
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
after(function () {
|
|
243
|
-
analyticsAdapter.disableAnalytics();
|
|
244
|
-
expect(analyticsAdapter.context).is.null;
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
it(`should return ${ratio} for same-origin`, function (done) {
|
|
248
|
-
const el = document.createElement('div');
|
|
249
|
-
el.setAttribute('id', adUnitCopy.code);
|
|
250
|
-
|
|
251
|
-
const offset = height * ratio;
|
|
252
|
-
const elStub = sinon.stub(el, 'getBoundingClientRect').returns({
|
|
253
|
-
top: 0 - (height - offset),
|
|
254
|
-
bottom: height - offset,
|
|
255
|
-
left: 0,
|
|
256
|
-
right: width
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
const querySelectorStub = sinon.stub(document, 'querySelector');
|
|
260
|
-
querySelectorStub.withArgs(`#${adUnitCopy.code}`).returns(el);
|
|
261
|
-
|
|
262
|
-
rtdProvider.atf(adUnitCopy, function(x) {
|
|
263
|
-
expect(x).is.equal(ratio);
|
|
264
|
-
|
|
265
|
-
querySelectorStub.restore();
|
|
266
|
-
elStub.restore();
|
|
267
|
-
|
|
268
|
-
done();
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
('IntersectionObserver' in window ? it : it.skip)(`should return ${ratio} for cross-origin`, function (done) {
|
|
273
|
-
const frameElementStub = sinon.stub(window, 'frameElement').value(null);
|
|
274
|
-
|
|
275
|
-
const el = document.createElement('div');
|
|
276
|
-
el.setAttribute('id', adUnitCopy.code);
|
|
277
|
-
|
|
278
|
-
const elStub = sinon.stub(el, 'getBoundingClientRect').returns({
|
|
279
|
-
top: 0,
|
|
280
|
-
bottom: height,
|
|
281
|
-
left: 0,
|
|
282
|
-
right: width
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
const querySelectorStub = sinon.stub(document, 'querySelector');
|
|
286
|
-
querySelectorStub.withArgs(`#${adUnitCopy.code}`).returns(el);
|
|
287
|
-
|
|
288
|
-
let intersectionObserverStubFn = null;
|
|
289
|
-
const intersectionObserverStub = sinon.stub(window, 'IntersectionObserver').callsFake((fn) => {
|
|
290
|
-
intersectionObserverStubFn = fn;
|
|
291
|
-
return {
|
|
292
|
-
observe: (element) => {
|
|
293
|
-
expect(element).is.equal(el);
|
|
294
|
-
|
|
295
|
-
intersectionObserverStubFn([{
|
|
296
|
-
target: element,
|
|
297
|
-
intersectionRect: { width, height },
|
|
298
|
-
intersectionRatio: ratio
|
|
299
|
-
}]);
|
|
300
|
-
},
|
|
301
|
-
unobserve: (element) => {
|
|
302
|
-
expect(element).is.equal(el);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
rtdProvider.atf(adUnitCopy, function(x) {
|
|
308
|
-
expect(x).is.equal(ratio);
|
|
309
|
-
|
|
310
|
-
intersectionObserverStub.restore();
|
|
311
|
-
querySelectorStub.restore();
|
|
312
|
-
elStub.restore();
|
|
313
|
-
frameElementStub.restore();
|
|
314
|
-
|
|
315
|
-
done();
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
227
|
});
|
|
@@ -385,7 +385,7 @@ describe('Aidem adapter', () => {
|
|
|
385
385
|
expect(payload.imp).to.be.a('array').that.has.lengthOf(DEFAULT_VALID_BANNER_REQUESTS.length)
|
|
386
386
|
|
|
387
387
|
expect(payload.imp[0]).to.be.a('object').that.has.all.keys(
|
|
388
|
-
'banner', 'id', 'mediatype', 'imp_ext', 'tid'
|
|
388
|
+
'banner', 'id', 'mediatype', 'imp_ext', 'tid', 'tagid'
|
|
389
389
|
)
|
|
390
390
|
expect(payload.imp[0].banner).to.be.a('object').that.has.all.keys(
|
|
391
391
|
'format', 'topframe'
|
|
@@ -401,7 +401,7 @@ describe('Aidem adapter', () => {
|
|
|
401
401
|
expect(payload.imp).to.be.a('array').that.has.lengthOf(DEFAULT_VALID_VIDEO_REQUESTS.length)
|
|
402
402
|
|
|
403
403
|
expect(payload.imp[0]).to.be.a('object').that.has.all.keys(
|
|
404
|
-
'video', 'id', 'mediatype', 'imp_ext', 'tid'
|
|
404
|
+
'video', 'id', 'mediatype', 'imp_ext', 'tid', 'tagid'
|
|
405
405
|
)
|
|
406
406
|
expect(payload.imp[0].video).to.be.a('object').that.has.all.keys(
|
|
407
407
|
'format', 'mimes', 'minDuration', 'maxDuration', 'protocols'
|
|
@@ -421,6 +421,14 @@ describe('Aidem adapter', () => {
|
|
|
421
421
|
'value', 'currency'
|
|
422
422
|
)
|
|
423
423
|
});
|
|
424
|
+
|
|
425
|
+
it('should hav wpar keys in environment object', function () {
|
|
426
|
+
const requests = spec.buildRequests(DEFAULT_VALID_VIDEO_REQUESTS, VALID_BIDDER_REQUEST);
|
|
427
|
+
const payload = JSON.parse(requests.data)
|
|
428
|
+
expect(payload).to.have.property('environment')
|
|
429
|
+
expect(payload.environment).to.be.a('object').that.have.property('wpar')
|
|
430
|
+
expect(payload.environment.wpar).to.be.a('object').that.has.keys('innerWidth', 'innerHeight')
|
|
431
|
+
});
|
|
424
432
|
})
|
|
425
433
|
|
|
426
434
|
describe('interpretResponse', () => {
|
|
@@ -108,7 +108,7 @@ describe('alkimiBidAdapter', function () {
|
|
|
108
108
|
|
|
109
109
|
describe('buildRequests', function () {
|
|
110
110
|
let bidRequests = [REQUEST]
|
|
111
|
-
|
|
111
|
+
let requestData = {
|
|
112
112
|
auctionId: '123',
|
|
113
113
|
refererInfo: {
|
|
114
114
|
page: 'http://test.com/path.html'
|
|
@@ -119,7 +119,8 @@ describe('alkimiBidAdapter', function () {
|
|
|
119
119
|
gdprApplies: true
|
|
120
120
|
},
|
|
121
121
|
uspConsent: 'uspConsent'
|
|
122
|
-
}
|
|
122
|
+
}
|
|
123
|
+
const bidderRequest = spec.buildRequests(bidRequests, requestData)
|
|
123
124
|
|
|
124
125
|
it('should return a properly formatted request with eids defined', function () {
|
|
125
126
|
expect(bidderRequest.data.eids).to.deep.equal(REQUEST.userIdAsEids)
|
|
@@ -138,7 +139,7 @@ describe('alkimiBidAdapter', function () {
|
|
|
138
139
|
expect(bidderRequest.method).to.equal('POST')
|
|
139
140
|
expect(bidderRequest.data.requestId).to.equal('123')
|
|
140
141
|
expect(bidderRequest.data.referer).to.equal('http://test.com/path.html')
|
|
141
|
-
expect(bidderRequest.data.schain).to.deep.contains({ver: '1.0', complete: 1, nodes: [{asi: 'alkimi-onboarding.com', sid: '00001', hp: 1}]})
|
|
142
|
+
expect(bidderRequest.data.schain).to.deep.contains({ ver: '1.0', complete: 1, nodes: [{ asi: 'alkimi-onboarding.com', sid: '00001', hp: 1 }] })
|
|
142
143
|
expect(bidderRequest.data.signRequest.bids).to.deep.contains({ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f', pos: 7, bidFloor: 0.1, width: 300, height: 250, impMediaType: 'Banner', adUnitCode: 'bannerAdUnitCode' })
|
|
143
144
|
expect(bidderRequest.data.signRequest.randomUUID).to.equal(undefined)
|
|
144
145
|
expect(bidderRequest.data.bidIds).to.deep.contains('456')
|
|
@@ -147,6 +148,17 @@ describe('alkimiBidAdapter', function () {
|
|
|
147
148
|
expect(bidderRequest.options.contentType).to.equal('application/json')
|
|
148
149
|
expect(bidderRequest.url).to.equal(ENDPOINT)
|
|
149
150
|
})
|
|
151
|
+
|
|
152
|
+
it('sends bidFloor when configured', () => {
|
|
153
|
+
const requestWithFloor = Object.assign({}, REQUEST);
|
|
154
|
+
requestWithFloor.getFloor = function (arg) {
|
|
155
|
+
if (arg.currency === 'USD' && arg.mediaType === 'banner' && JSON.stringify(arg.size) === JSON.stringify([300, 250])) {
|
|
156
|
+
return { currency: 'USD', floor: 0.3 }
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
const bidderRequestFloor = spec.buildRequests([requestWithFloor], requestData);
|
|
160
|
+
expect(bidderRequestFloor.data.signRequest.bids[0].bidFloor).to.be.equal(0.3);
|
|
161
|
+
});
|
|
150
162
|
})
|
|
151
163
|
|
|
152
164
|
describe('interpretResponse', function () {
|
|
@@ -488,6 +488,20 @@ describe('AolAdapter', function () {
|
|
|
488
488
|
expect(request.url).to.contain(NEXAGE_URL + 'dcn=2c9d2b50015c5ce9db6aeeed8b9500d6&pos=header');
|
|
489
489
|
});
|
|
490
490
|
|
|
491
|
+
it('should return One Mobile url with configured GPP data', function () {
|
|
492
|
+
let bidRequest = createCustomBidRequest({
|
|
493
|
+
params: getNexageGetBidParams()
|
|
494
|
+
});
|
|
495
|
+
bidRequest.ortb2 = {
|
|
496
|
+
regs: {
|
|
497
|
+
gpp: 'testgpp',
|
|
498
|
+
gpp_sid: [8]
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
let [request] = spec.buildRequests(bidRequest.bids, bidRequest);
|
|
502
|
+
expect(request.url).to.contain('gpp=testgpp&gpp_sid=8');
|
|
503
|
+
});
|
|
504
|
+
|
|
491
505
|
it('should return One Mobile url with cmd=bid option', function () {
|
|
492
506
|
let bidRequest = createCustomBidRequest({
|
|
493
507
|
params: getNexageGetBidParams()
|
|
@@ -794,6 +808,14 @@ describe('AolAdapter', function () {
|
|
|
794
808
|
'euconsent=test-consent;gdpr=1;us_privacy=test-usp-consent;');
|
|
795
809
|
});
|
|
796
810
|
|
|
811
|
+
it('should return formatted gpp privacy params when formatConsentData returns GPP data', function () {
|
|
812
|
+
formatConsentDataStub.returns({
|
|
813
|
+
gpp: 'gppstring',
|
|
814
|
+
gpp_sid: [6, 7]
|
|
815
|
+
});
|
|
816
|
+
expect(spec.formatMarketplaceDynamicParams()).to.be.equal('gpp=gppstring;gpp_sid=6%2C7;');
|
|
817
|
+
});
|
|
818
|
+
|
|
797
819
|
it('should return formatted params when formatKeyValues returns data', function () {
|
|
798
820
|
formatKeyValuesStub.returns({
|
|
799
821
|
param1: 'val1',
|
|
@@ -1630,7 +1630,10 @@ describe('AppNexusAdapter', function () {
|
|
|
1630
1630
|
'phone': '1234567890',
|
|
1631
1631
|
'address': '28 W 23rd St, New York, NY 10010',
|
|
1632
1632
|
'privacy_link': 'https://appnexus.com/?url=privacy_url',
|
|
1633
|
-
'javascriptTrackers': '<script type=\'text/javascript\' async=\'true\' src=\'https://cdn.adnxs.com/v/s/152/trk.js#v;vk=appnexus.com-omid;tv=native1-18h;dom_id=;css_selector=.pb-click;st=0;d=1x1;vc=iab;vid_ccr=1;tag_id=13232354;cb=https%3A%2F%2Fams1-ib.adnxs.com%2Fvevent%3Freferrer%3Dhttps253A%252F%252Ftestpages-pmahe.tp.adnxs.net%252F01_basic_single%26e%3DwqT_3QLNB6DNAwAAAwDWAAUBCLfl_-MFEMStk8u3lPTjRxih88aF0fq_2QsqNgkAAAECCCRAEQEHEAAAJEAZEQkAIREJACkRCQAxEQmoMOLRpwY47UhA7UhIAlCDy74uWJzxW2AAaM26dXjzjwWAAQGKAQNVU0SSAQEG8FCYAQGgAQGoAQGwAQC4AQHAAQTIAQLQAQDYAQDgAQDwAQCKAjt1ZignYScsIDI1Mjk4ODUsIDE1NTE4ODkwNzkpO3VmKCdyJywgOTc0OTQ0MDM2HgDwjZIC8QEha0RXaXBnajgtTHdLRUlQTHZpNFlBQ0NjOFZzd0FEZ0FRQVJJN1VoUTR0R25CbGdBWU1rR2FBQndMSGlrTDRBQlVvZ0JwQy1RQVFHWUFRR2dBUUdvQVFPd0FRQzVBZk90YXFRQUFDUkF3UUh6cldxa0FBQWtRTWtCbWo4dDA1ZU84VF9aQVFBQUEBAyRQQV80QUVBOVFFAQ4sQW1BSUFvQUlBdFFJBRAAdg0IeHdBSUF5QUlBNEFJQTZBSUEtQUlBZ0FNQm1BTUJxQVAFzIh1Z01KUVUxVE1UbzBNekl3NEFPVENBLi6aAmEhUXcxdGNRagUoEfQkblBGYklBUW9BRAl8AEEBqAREbzJEABRRSk1JU1EBGwRBQQGsAFURDAxBQUFXHQzwWNgCAOACrZhI6gIzaHR0cDovL3Rlc3RwYWdlcy1wbWFoZS50cC5hZG54cy5uZXQvMDFfYmFzaWNfc2luZ2xl8gITCg9DVVNUT01fTU9ERUxfSUQSAPICGgoWMhYAPExFQUZfTkFNRRIA8gIeCho2HQAIQVNUAT7wnElGSUVEEgCAAwCIAwGQAwCYAxegAwGqAwDAA-CoAcgDANgD8ao-4AMA6AMA-AMBgAQAkgQNL3V0L3YzL3ByZWJpZJgEAKIECjEwLjIuMTIuMzioBIqpB7IEDggAEAEYACAAKAAwADgCuAQAwAQAyAQA0gQOOTMyNSNBTVMxOjQzMjDaBAIIAeAEAfAEg8u-LogFAZgFAKAF______8BAxgBwAUAyQUABQEU8D_SBQkJBQt8AAAA2AUB4AUB8AWZ9CH6BQQIABAAkAYBmAYAuAYAwQYBITAAAPA_yAYA2gYWChAAOgEAGBAAGADgBgw.%26s%3D971dce9d49b6bee447c8a58774fb30b40fe98171;ts=1551889079;cet=0;cecb=\'></script>'
|
|
1633
|
+
'javascriptTrackers': '<script type=\'text/javascript\' async=\'true\' src=\'https://cdn.adnxs.com/v/s/152/trk.js#v;vk=appnexus.com-omid;tv=native1-18h;dom_id=;css_selector=.pb-click;st=0;d=1x1;vc=iab;vid_ccr=1;tag_id=13232354;cb=https%3A%2F%2Fams1-ib.adnxs.com%2Fvevent%3Freferrer%3Dhttps253A%252F%252Ftestpages-pmahe.tp.adnxs.net%252F01_basic_single%26e%3DwqT_3QLNB6DNAwAAAwDWAAUBCLfl_-MFEMStk8u3lPTjRxih88aF0fq_2QsqNgkAAAECCCRAEQEHEAAAJEAZEQkAIREJACkRCQAxEQmoMOLRpwY47UhA7UhIAlCDy74uWJzxW2AAaM26dXjzjwWAAQGKAQNVU0SSAQEG8FCYAQGgAQGoAQGwAQC4AQHAAQTIAQLQAQDYAQDgAQDwAQCKAjt1ZignYScsIDI1Mjk4ODUsIDE1NTE4ODkwNzkpO3VmKCdyJywgOTc0OTQ0MDM2HgDwjZIC8QEha0RXaXBnajgtTHdLRUlQTHZpNFlBQ0NjOFZzd0FEZ0FRQVJJN1VoUTR0R25CbGdBWU1rR2FBQndMSGlrTDRBQlVvZ0JwQy1RQVFHWUFRR2dBUUdvQVFPd0FRQzVBZk90YXFRQUFDUkF3UUh6cldxa0FBQWtRTWtCbWo4dDA1ZU84VF9aQVFBQUEBAyRQQV80QUVBOVFFAQ4sQW1BSUFvQUlBdFFJBRAAdg0IeHdBSUF5QUlBNEFJQTZBSUEtQUlBZ0FNQm1BTUJxQVAFzIh1Z01KUVUxVE1UbzBNekl3NEFPVENBLi6aAmEhUXcxdGNRagUoEfQkblBGYklBUW9BRAl8AEEBqAREbzJEABRRSk1JU1EBGwRBQQGsAFURDAxBQUFXHQzwWNgCAOACrZhI6gIzaHR0cDovL3Rlc3RwYWdlcy1wbWFoZS50cC5hZG54cy5uZXQvMDFfYmFzaWNfc2luZ2xl8gITCg9DVVNUT01fTU9ERUxfSUQSAPICGgoWMhYAPExFQUZfTkFNRRIA8gIeCho2HQAIQVNUAT7wnElGSUVEEgCAAwCIAwGQAwCYAxegAwGqAwDAA-CoAcgDANgD8ao-4AMA6AMA-AMBgAQAkgQNL3V0L3YzL3ByZWJpZJgEAKIECjEwLjIuMTIuMzioBIqpB7IEDggAEAEYACAAKAAwADgCuAQAwAQAyAQA0gQOOTMyNSNBTVMxOjQzMjDaBAIIAeAEAfAEg8u-LogFAZgFAKAF______8BAxgBwAUAyQUABQEU8D_SBQkJBQt8AAAA2AUB4AUB8AWZ9CH6BQQIABAAkAYBmAYAuAYAwQYBITAAAPA_yAYA2gYWChAAOgEAGBAAGADgBgw.%26s%3D971dce9d49b6bee447c8a58774fb30b40fe98171;ts=1551889079;cet=0;cecb=\'></script>',
|
|
1634
|
+
'video': {
|
|
1635
|
+
'content': '<?xml version=\"1.0\"></xml>'
|
|
1636
|
+
}
|
|
1634
1637
|
};
|
|
1635
1638
|
let bidderRequest = {
|
|
1636
1639
|
bids: [{
|
|
@@ -1644,6 +1647,7 @@ describe('AppNexusAdapter', function () {
|
|
|
1644
1647
|
expect(result[0].native.body).to.equal('Cool description great stuff');
|
|
1645
1648
|
expect(result[0].native.cta).to.equal('Do it');
|
|
1646
1649
|
expect(result[0].native.image.url).to.equal('https://cdn.adnxs.com/img.png');
|
|
1650
|
+
expect(result[0].native.video.content).to.equal('<?xml version=\"1.0\"></xml>');
|
|
1647
1651
|
});
|
|
1648
1652
|
}
|
|
1649
1653
|
|
|
@@ -1731,7 +1735,7 @@ describe('AppNexusAdapter', function () {
|
|
|
1731
1735
|
|
|
1732
1736
|
it('should add advertiserDomains', function () {
|
|
1733
1737
|
let responseAdvertiserId = deepClone(response);
|
|
1734
|
-
responseAdvertiserId.tags[0].ads[0].adomain =
|
|
1738
|
+
responseAdvertiserId.tags[0].ads[0].adomain = '123';
|
|
1735
1739
|
|
|
1736
1740
|
let bidderRequest = {
|
|
1737
1741
|
bids: [{
|
|
@@ -1741,7 +1745,7 @@ describe('AppNexusAdapter', function () {
|
|
|
1741
1745
|
}
|
|
1742
1746
|
let result = spec.interpretResponse({ body: responseAdvertiserId }, { bidderRequest });
|
|
1743
1747
|
expect(Object.keys(result[0].meta)).to.include.members(['advertiserDomains']);
|
|
1744
|
-
expect(
|
|
1748
|
+
expect(result[0].meta.advertiserDomains).to.deep.equal(['123']);
|
|
1745
1749
|
});
|
|
1746
1750
|
});
|
|
1747
1751
|
|