prebid.js 7.47.0 → 7.48.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/ablidaBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adrinoBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.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/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/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 +4 -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 -0
- 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/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/iqmBidAdapter.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/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 +137 -135
- 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/orbitsoftBidAdapter.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/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/radsBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevantdigitalBidAdapter.js +1 -0
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.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/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/userId.js +1 -1
- package/dist/vdoaiBidAdapter.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/wipesBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yieldoneBidAdapter.js +1 -1
- package/modules/ablidaBidAdapter.js +4 -5
- package/modules/admaticBidAdapter.js +32 -5
- package/modules/adrinoBidAdapter.js +11 -4
- package/modules/axonixBidAdapter.js +6 -6
- package/modules/connectIdSystem.js +5 -2
- package/modules/criteoBidAdapter.js +3 -5
- package/modules/dspxBidAdapter.js +2 -3
- package/modules/freewheel-sspBidAdapter.js +32 -7
- package/modules/greenbidsRtdProvider.js +110 -0
- package/modules/greenbidsRtdProvider.md +65 -0
- package/modules/impactifyBidAdapter.js +0 -1
- package/modules/iqmBidAdapter.js +1 -2
- package/modules/orbitsoftBidAdapter.js +1 -2
- package/modules/radsBidAdapter.js +3 -4
- package/modules/relevantdigitalBidAdapter.js +198 -0
- package/modules/relevantdigitalBidAdapter.md +117 -0
- package/modules/rtbhouseBidAdapter.js +6 -9
- package/modules/sovrnBidAdapter.js +4 -0
- package/modules/stvBidAdapter.js +4 -5
- package/modules/tripleliftBidAdapter.js +14 -3
- package/modules/ttdBidAdapter.js +73 -71
- package/modules/underdogmediaBidAdapter.js +9 -12
- package/modules/userId/index.js +1 -1
- package/modules/vdoaiBidAdapter.js +2 -3
- package/modules/wipesBidAdapter.js +2 -3
- package/modules/yieldoneBidAdapter.js +3 -4
- package/package.json +1 -1
- package/test/spec/modules/adlooxAdServerVideo_spec.js +18 -35
- package/test/spec/modules/admaticBidAdapter_spec.js +164 -11
- package/test/spec/modules/adrinoBidAdapter_spec.js +50 -2
- package/test/spec/modules/connectIdSystem_spec.js +4 -4
- package/test/spec/modules/criteoBidAdapter_spec.js +56 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +31 -2
- package/test/spec/modules/greenbidsRtdProvider_spec.js +210 -0
- package/test/spec/modules/relevantdigitalBidAdapter_spec.js +295 -0
- package/test/spec/modules/rtbhouseBidAdapter_spec.js +22 -0
- package/test/spec/modules/sovrnBidAdapter_spec.js +65 -0
- package/test/spec/modules/tripleliftBidAdapter_spec.js +53 -8
- package/test/spec/modules/ttdBidAdapter_spec.js +20 -0
- package/test/spec/ortbConverter/userId_spec.js +12 -0
- package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -189
package/modules/ttdBidAdapter.js
CHANGED
|
@@ -185,7 +185,7 @@ function getImpression(bidRequest) {
|
|
|
185
185
|
if (mediaTypesBanner) {
|
|
186
186
|
mediaTypes[BANNER] = banner(bidRequest);
|
|
187
187
|
}
|
|
188
|
-
if (mediaTypesVideo) {
|
|
188
|
+
if (FEATURES.VIDEO && mediaTypesVideo) {
|
|
189
189
|
mediaTypes[VIDEO] = video(bidRequest);
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -248,79 +248,81 @@ function banner(bid) {
|
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
function video(bid) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
minduration
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
251
|
+
if (FEATURES.VIDEO) {
|
|
252
|
+
let minduration = utils.deepAccess(bid, 'mediaTypes.video.minduration');
|
|
253
|
+
const maxduration = utils.deepAccess(bid, 'mediaTypes.video.maxduration');
|
|
254
|
+
const playerSize = utils.deepAccess(bid, 'mediaTypes.video.playerSize');
|
|
255
|
+
const api = utils.deepAccess(bid, 'mediaTypes.video.api');
|
|
256
|
+
const mimes = utils.deepAccess(bid, 'mediaTypes.video.mimes');
|
|
257
|
+
const placement = utils.deepAccess(bid, 'mediaTypes.video.placement');
|
|
258
|
+
const plcmt = utils.deepAccess(bid, 'mediaTypes.video.plcmt');
|
|
259
|
+
const protocols = utils.deepAccess(bid, 'mediaTypes.video.protocols');
|
|
260
|
+
const playbackmethod = utils.deepAccess(bid, 'mediaTypes.video.playbackmethod');
|
|
261
|
+
const pos = utils.deepAccess(bid, 'mediaTypes.video.pos');
|
|
262
|
+
const startdelay = utils.deepAccess(bid, 'mediaTypes.video.startdelay');
|
|
263
|
+
const skip = utils.deepAccess(bid, 'mediaTypes.video.skip');
|
|
264
|
+
const skipmin = utils.deepAccess(bid, 'mediaTypes.video.skipmin');
|
|
265
|
+
const skipafter = utils.deepAccess(bid, 'mediaTypes.video.skipafter');
|
|
266
|
+
const minbitrate = utils.deepAccess(bid, 'mediaTypes.video.minbitrate');
|
|
267
|
+
const maxbitrate = utils.deepAccess(bid, 'mediaTypes.video.maxbitrate');
|
|
268
|
+
|
|
269
|
+
if (!minduration || !utils.isInteger(minduration)) {
|
|
270
|
+
minduration = 0;
|
|
271
|
+
}
|
|
272
|
+
let video = {
|
|
273
|
+
minduration: minduration,
|
|
274
|
+
maxduration: maxduration,
|
|
275
|
+
api: api,
|
|
276
|
+
mimes: mimes,
|
|
277
|
+
placement: placement,
|
|
278
|
+
protocols: protocols
|
|
279
|
+
};
|
|
279
280
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
281
|
+
if (typeof playerSize !== 'undefined') {
|
|
282
|
+
if (utils.isArray(playerSize[0])) {
|
|
283
|
+
video.w = parseInt(playerSize[0][0]);
|
|
284
|
+
video.h = parseInt(playerSize[0][1]);
|
|
285
|
+
} else if (utils.isNumber(playerSize[0])) {
|
|
286
|
+
video.w = parseInt(playerSize[0]);
|
|
287
|
+
video.h = parseInt(playerSize[1]);
|
|
288
|
+
}
|
|
287
289
|
}
|
|
288
|
-
}
|
|
289
290
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
291
|
+
if (playbackmethod) {
|
|
292
|
+
video.playbackmethod = playbackmethod;
|
|
293
|
+
}
|
|
294
|
+
if (plcmt) {
|
|
295
|
+
video.plcmt = plcmt;
|
|
296
|
+
}
|
|
297
|
+
if (pos) {
|
|
298
|
+
video.pos = pos;
|
|
299
|
+
}
|
|
300
|
+
if (startdelay && utils.isInteger(startdelay)) {
|
|
301
|
+
video.startdelay = startdelay;
|
|
302
|
+
}
|
|
303
|
+
if (skip && (skip === 0 || skip === 1)) {
|
|
304
|
+
video.skip = skip;
|
|
305
|
+
}
|
|
306
|
+
if (skipmin && utils.isInteger(skipmin)) {
|
|
307
|
+
video.skipmin = skipmin;
|
|
308
|
+
}
|
|
309
|
+
if (skipafter && utils.isInteger(skipafter)) {
|
|
310
|
+
video.skipafter = skipafter;
|
|
311
|
+
}
|
|
312
|
+
if (minbitrate && utils.isInteger(minbitrate)) {
|
|
313
|
+
video.minbitrate = minbitrate;
|
|
314
|
+
}
|
|
315
|
+
if (maxbitrate && utils.isInteger(maxbitrate)) {
|
|
316
|
+
video.maxbitrate = maxbitrate;
|
|
317
|
+
}
|
|
317
318
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
const battr = utils.deepAccess(bid, 'ortb2Imp.battr');
|
|
320
|
+
if (battr) {
|
|
321
|
+
video.battr = battr;
|
|
322
|
+
}
|
|
322
323
|
|
|
323
|
-
|
|
324
|
+
return video;
|
|
325
|
+
}
|
|
324
326
|
}
|
|
325
327
|
|
|
326
328
|
export const spec = {
|
|
@@ -379,7 +381,7 @@ export const spec = {
|
|
|
379
381
|
return false;
|
|
380
382
|
}
|
|
381
383
|
|
|
382
|
-
if (mediaTypesVideo) {
|
|
384
|
+
if (FEATURES.VIDEO && mediaTypesVideo) {
|
|
383
385
|
if (!mediaTypesVideo.maxduration || !utils.isInteger(mediaTypesVideo.maxduration)) {
|
|
384
386
|
utils.logWarn(BIDDER_CODE + ': mediaTypes.video.maxduration must be set to the maximum video ad duration in seconds');
|
|
385
387
|
return false;
|
|
@@ -506,7 +508,7 @@ export const spec = {
|
|
|
506
508
|
mediaType: BANNER
|
|
507
509
|
}
|
|
508
510
|
);
|
|
509
|
-
} else if (bid.ext.mediatype === MEDIA_TYPE.VIDEO) {
|
|
511
|
+
} else if (FEATURES.VIDEO && bid.ext.mediatype === MEDIA_TYPE.VIDEO) {
|
|
510
512
|
Object.assign(
|
|
511
513
|
bidResponse,
|
|
512
514
|
{
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
deepAccess,
|
|
3
3
|
flatten,
|
|
4
|
-
|
|
4
|
+
getWindowSelf,
|
|
5
|
+
getWindowTop,
|
|
5
6
|
isGptPubadsDefined,
|
|
6
7
|
isSlotMatchingAdUnitCode,
|
|
7
8
|
logInfo,
|
|
9
|
+
logMessage,
|
|
8
10
|
logWarn,
|
|
9
|
-
|
|
10
|
-
getWindowTop,
|
|
11
|
-
deepAccess
|
|
11
|
+
parseSizesInput
|
|
12
12
|
} from '../src/utils.js';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import {
|
|
17
|
-
registerBidder
|
|
18
|
-
} from '../src/adapters/bidderFactory.js';
|
|
13
|
+
import {config} from '../src/config.js';
|
|
14
|
+
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
15
|
+
|
|
19
16
|
const BIDDER_CODE = 'underdogmedia';
|
|
20
17
|
const UDM_ADAPTER_VERSION = '7.30V';
|
|
21
18
|
const UDM_VENDOR_ID = '159';
|
|
@@ -377,7 +374,7 @@ function makeNotification(bid, mid, bidParam) {
|
|
|
377
374
|
url += `;version=${UDM_ADAPTER_VERSION}`;
|
|
378
375
|
url += ';cb=' + Math.random();
|
|
379
376
|
url += ';qqq=' + (1 / bid.cpm);
|
|
380
|
-
url += ';hbt=' + config.getConfig('
|
|
377
|
+
url += ';hbt=' + config.getConfig('bidderTimeout');
|
|
381
378
|
url += ';style=adapter';
|
|
382
379
|
url += ';vis=' + encodeURIComponent(document.visibilityState);
|
|
383
380
|
|
package/modules/userId/index.js
CHANGED
|
@@ -1085,7 +1085,7 @@ module('userId', attachIdSystem);
|
|
|
1085
1085
|
|
|
1086
1086
|
export function setOrtbUserExtEids(ortbRequest, bidderRequest, context) {
|
|
1087
1087
|
const eids = deepAccess(context, 'bidRequests.0.userIdAsEids');
|
|
1088
|
-
if (eids) {
|
|
1088
|
+
if (eids && Object.keys(eids).length > 0) {
|
|
1089
1089
|
deepSetValue(ortbRequest, 'user.ext.eids', eids);
|
|
1090
1090
|
}
|
|
1091
1091
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {config} from '../src/config.js';
|
|
1
|
+
import {getAdUnitSizes} from '../src/utils.js';
|
|
3
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
4
3
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
5
4
|
|
|
@@ -87,7 +86,7 @@ export const spec = {
|
|
|
87
86
|
// dealId: dealId,
|
|
88
87
|
currency: currency,
|
|
89
88
|
netRevenue: netRevenue,
|
|
90
|
-
ttl:
|
|
89
|
+
ttl: 60,
|
|
91
90
|
// referrer: referrer,
|
|
92
91
|
// ad: response.adm
|
|
93
92
|
// ad: adCreative,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {config} from '../src/config.js';
|
|
1
|
+
import {logWarn} from '../src/utils.js';
|
|
3
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
4
3
|
import {BANNER} from '../src/mediaTypes.js';
|
|
5
4
|
|
|
@@ -50,7 +49,7 @@ function interpretResponse(serverResponse, bidRequest) {
|
|
|
50
49
|
dealId: response.deal_id,
|
|
51
50
|
currency: 'JPY',
|
|
52
51
|
netRevenue: netRevenue,
|
|
53
|
-
ttl:
|
|
52
|
+
ttl: 60,
|
|
54
53
|
referrer: bidRequest.data.r || '',
|
|
55
54
|
mediaType: BANNER,
|
|
56
55
|
ad: response.ad_tag,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {deepAccess, isEmpty, isStr, logWarn, parseSizesInput} from '../src/utils.js';
|
|
2
|
-
import {config} from '../src/config.js';
|
|
3
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import {Renderer} from '../src/Renderer.js';
|
|
4
|
+
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* @typedef {import('../src/adapters/bidderFactory').Bid} Bid
|
|
@@ -147,7 +146,7 @@ export const spec = {
|
|
|
147
146
|
dealId: dealId,
|
|
148
147
|
currency: currency,
|
|
149
148
|
netRevenue: netRevenue,
|
|
150
|
-
ttl:
|
|
149
|
+
ttl: 60,
|
|
151
150
|
referrer: referrer,
|
|
152
151
|
meta: {
|
|
153
152
|
advertiserDomains: response.adomain ? response.adomain : []
|
package/package.json
CHANGED
|
@@ -118,6 +118,16 @@ describe('Adloox Ad Server Video', function () {
|
|
|
118
118
|
});
|
|
119
119
|
|
|
120
120
|
describe('buildVideoUrl', function () {
|
|
121
|
+
beforeEach(() => {
|
|
122
|
+
sinon.stub(URL, 'createObjectURL');
|
|
123
|
+
sinon.stub(URL, 'revokeObjectURL');
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
afterEach(() => {
|
|
127
|
+
URL.createObjectURL.restore()
|
|
128
|
+
URL.revokeObjectURL.restore()
|
|
129
|
+
});
|
|
130
|
+
|
|
121
131
|
describe('invalid arguments', function () {
|
|
122
132
|
it('should require callback', function (done) {
|
|
123
133
|
const ret = buildVideoUrl();
|
|
@@ -235,7 +245,6 @@ describe('Adloox Ad Server Video', function () {
|
|
|
235
245
|
it('should fetch, retry on withoutCredentials, follow and return a wrapped blob that expires', function (done) {
|
|
236
246
|
BID.responseTimestamp = utils.timestamp();
|
|
237
247
|
BID.ttl = 30;
|
|
238
|
-
this.timeout(5000)
|
|
239
248
|
|
|
240
249
|
const clock = sandbox.useFakeTimers(BID.responseTimestamp);
|
|
241
250
|
|
|
@@ -244,42 +253,16 @@ describe('Adloox Ad Server Video', function () {
|
|
|
244
253
|
url: wrapperUrl,
|
|
245
254
|
bid: BID
|
|
246
255
|
};
|
|
256
|
+
|
|
257
|
+
URL.createObjectURL.callsFake(() => 'mock-blob-url');
|
|
258
|
+
|
|
247
259
|
const ret = buildVideoUrl(options, function (url) {
|
|
248
260
|
expect(url.substr(0, options.url_vast.length)).is.equal(options.url_vast);
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const xfr = sandbox.useFakeXMLHttpRequest();
|
|
256
|
-
xfr.useFilters = true;
|
|
257
|
-
xfr.addFilter(x => true); // there is no network traffic for Blob URLs here
|
|
258
|
-
|
|
259
|
-
ajax(blob, {
|
|
260
|
-
success: (responseText, q) => {
|
|
261
|
-
expect(q.status).is.equal(200);
|
|
262
|
-
expect(q.getResponseHeader('content-type')).is.equal(vastHeaders['content-type']);
|
|
263
|
-
|
|
264
|
-
clock.runAll();
|
|
265
|
-
|
|
266
|
-
ajax(blob, {
|
|
267
|
-
success: (responseText, q) => {
|
|
268
|
-
xfr.useFilters = false; // .restore() does not really work
|
|
269
|
-
if (q.status == 0) return done();
|
|
270
|
-
done(new Error('Blob should have expired'));
|
|
271
|
-
},
|
|
272
|
-
error: (statusText, q) => {
|
|
273
|
-
xfr.useFilters = false;
|
|
274
|
-
done();
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
},
|
|
278
|
-
error: (statusText, q) => {
|
|
279
|
-
xfr.useFilters = false;
|
|
280
|
-
done(new Error(statusText));
|
|
281
|
-
}
|
|
282
|
-
});
|
|
261
|
+
expect(url).to.match(/[?&]vast=mock-blob-url/);
|
|
262
|
+
sinon.assert.calledWith(URL.createObjectURL, sinon.match((val) => val.type === vastHeaders['content-type']));
|
|
263
|
+
clock.runAll();
|
|
264
|
+
sinon.assert.calledWith(URL.revokeObjectURL, 'mock-blob-url');
|
|
265
|
+
done();
|
|
283
266
|
});
|
|
284
267
|
expect(ret).is.true;
|
|
285
268
|
|
|
@@ -22,11 +22,13 @@ describe('admaticBidAdapter', () => {
|
|
|
22
22
|
'host': 'layer.serve.admatic.com.tr'
|
|
23
23
|
},
|
|
24
24
|
'adUnitCode': 'adunit-code',
|
|
25
|
+
'mediaType': 'banner',
|
|
25
26
|
'sizes': [[300, 250], [300, 600]],
|
|
26
27
|
'bidId': '30b31c1838de1e',
|
|
27
28
|
'bidderRequestId': '22edbae2733bf6',
|
|
28
29
|
'auctionId': '1d1a030790a475',
|
|
29
|
-
'creativeId': 'er2ee'
|
|
30
|
+
'creativeId': 'er2ee',
|
|
31
|
+
'ortb2': { 'badv': ['admatic.com.tr'] }
|
|
30
32
|
};
|
|
31
33
|
|
|
32
34
|
it('should return true when required params found', function() {
|
|
@@ -34,15 +36,11 @@ describe('admaticBidAdapter', () => {
|
|
|
34
36
|
});
|
|
35
37
|
|
|
36
38
|
it('should return false when required params are not passed', function() {
|
|
37
|
-
let
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
bid.params = {
|
|
41
|
-
'networkId': 0,
|
|
42
|
-
'host': 'layer.serve.admatic.com.tr'
|
|
39
|
+
let bid2 = {};
|
|
40
|
+
bid2.params = {
|
|
41
|
+
'someIncorrectParam': 0
|
|
43
42
|
};
|
|
44
|
-
|
|
45
|
-
expect(spec.isBidRequestValid(bid)).to.equal(false);
|
|
43
|
+
expect(spec.isBidRequestValid(bid2)).to.equal(false);
|
|
46
44
|
});
|
|
47
45
|
});
|
|
48
46
|
|
|
@@ -54,6 +52,7 @@ describe('admaticBidAdapter', () => {
|
|
|
54
52
|
'networkId': 10433394,
|
|
55
53
|
'host': 'layer.serve.admatic.com.tr'
|
|
56
54
|
},
|
|
55
|
+
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
57
56
|
'mediaTypes': {
|
|
58
57
|
'banner': {
|
|
59
58
|
'sizes': [[300, 250], [728, 90]]
|
|
@@ -98,6 +97,8 @@ describe('admaticBidAdapter', () => {
|
|
|
98
97
|
'h': 90
|
|
99
98
|
}
|
|
100
99
|
],
|
|
100
|
+
'mediatype': {},
|
|
101
|
+
'type': 'banner',
|
|
101
102
|
'id': '2205da7a81846b',
|
|
102
103
|
'floors': {
|
|
103
104
|
'banner': {
|
|
@@ -105,6 +106,49 @@ describe('admaticBidAdapter', () => {
|
|
|
105
106
|
'728x90': { 'currency': 'USD', 'floor': 2 }
|
|
106
107
|
}
|
|
107
108
|
}
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
'size': [
|
|
112
|
+
{
|
|
113
|
+
'w': 338,
|
|
114
|
+
'h': 280
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
'type': 'video',
|
|
118
|
+
'mediatype': {
|
|
119
|
+
'context': 'instream',
|
|
120
|
+
'mimes': [
|
|
121
|
+
'video/mp4'
|
|
122
|
+
],
|
|
123
|
+
'maxduration': 240,
|
|
124
|
+
'api': [
|
|
125
|
+
1,
|
|
126
|
+
2
|
|
127
|
+
],
|
|
128
|
+
'playerSize': [
|
|
129
|
+
[
|
|
130
|
+
338,
|
|
131
|
+
280
|
|
132
|
+
]
|
|
133
|
+
],
|
|
134
|
+
'protocols': [
|
|
135
|
+
1,
|
|
136
|
+
2,
|
|
137
|
+
3,
|
|
138
|
+
4,
|
|
139
|
+
5,
|
|
140
|
+
6,
|
|
141
|
+
7,
|
|
142
|
+
8
|
|
143
|
+
],
|
|
144
|
+
'skip': 1,
|
|
145
|
+
'playbackmethod': [
|
|
146
|
+
2
|
|
147
|
+
],
|
|
148
|
+
'linearity': 1,
|
|
149
|
+
'placement': 2
|
|
150
|
+
},
|
|
151
|
+
'id': '45e86fc7ce7fc93'
|
|
108
152
|
}
|
|
109
153
|
],
|
|
110
154
|
'ext': {
|
|
@@ -118,6 +162,7 @@ describe('admaticBidAdapter', () => {
|
|
|
118
162
|
'networkId': 10433394,
|
|
119
163
|
'host': 'layer.serve.admatic.com.tr'
|
|
120
164
|
},
|
|
165
|
+
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
121
166
|
'mediaTypes': {
|
|
122
167
|
'banner': {
|
|
123
168
|
'sizes': [[300, 250], [728, 90]]
|
|
@@ -163,12 +208,57 @@ describe('admaticBidAdapter', () => {
|
|
|
163
208
|
}
|
|
164
209
|
],
|
|
165
210
|
'id': '2205da7a81846b',
|
|
211
|
+
'mediatype': {},
|
|
212
|
+
'type': 'banner',
|
|
166
213
|
'floors': {
|
|
167
214
|
'banner': {
|
|
168
215
|
'300x250': { 'currency': 'USD', 'floor': 1 },
|
|
169
216
|
'728x90': { 'currency': 'USD', 'floor': 2 }
|
|
170
217
|
}
|
|
171
218
|
}
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
'size': [
|
|
222
|
+
{
|
|
223
|
+
'w': 338,
|
|
224
|
+
'h': 280
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
'type': 'video',
|
|
228
|
+
'mediatype': {
|
|
229
|
+
'context': 'instream',
|
|
230
|
+
'mimes': [
|
|
231
|
+
'video/mp4'
|
|
232
|
+
],
|
|
233
|
+
'maxduration': 240,
|
|
234
|
+
'api': [
|
|
235
|
+
1,
|
|
236
|
+
2
|
|
237
|
+
],
|
|
238
|
+
'playerSize': [
|
|
239
|
+
[
|
|
240
|
+
338,
|
|
241
|
+
280
|
|
242
|
+
]
|
|
243
|
+
],
|
|
244
|
+
'protocols': [
|
|
245
|
+
1,
|
|
246
|
+
2,
|
|
247
|
+
3,
|
|
248
|
+
4,
|
|
249
|
+
5,
|
|
250
|
+
6,
|
|
251
|
+
7,
|
|
252
|
+
8
|
|
253
|
+
],
|
|
254
|
+
'skip': 1,
|
|
255
|
+
'playbackmethod': [
|
|
256
|
+
2
|
|
257
|
+
],
|
|
258
|
+
'linearity': 1,
|
|
259
|
+
'placement': 2
|
|
260
|
+
},
|
|
261
|
+
'id': '45e86fc7ce7fc93'
|
|
172
262
|
}
|
|
173
263
|
],
|
|
174
264
|
'ext': {
|
|
@@ -194,6 +284,7 @@ describe('admaticBidAdapter', () => {
|
|
|
194
284
|
'sizes': [[300, 250], [728, 90]]
|
|
195
285
|
}
|
|
196
286
|
},
|
|
287
|
+
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
197
288
|
getFloor: inputParams => {
|
|
198
289
|
if (inputParams.mediaType === BANNER && inputParams.size[0] === 300 && inputParams.size[1] === 250) {
|
|
199
290
|
return {
|
|
@@ -217,6 +308,7 @@ describe('admaticBidAdapter', () => {
|
|
|
217
308
|
'networkId': 10433394,
|
|
218
309
|
'host': 'layer.serve.admatic.com.tr'
|
|
219
310
|
},
|
|
311
|
+
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
220
312
|
'adUnitCode': 'adunit-code',
|
|
221
313
|
'sizes': [[300, 250], [728, 90]],
|
|
222
314
|
'bidId': '30b31c1838de1e',
|
|
@@ -249,9 +341,35 @@ describe('admaticBidAdapter', () => {
|
|
|
249
341
|
'width': 300,
|
|
250
342
|
'height': 250,
|
|
251
343
|
'price': 0.01,
|
|
344
|
+
'type': 'banner',
|
|
252
345
|
'bidder': 'admatic',
|
|
253
346
|
'adomain': ['admatic.com.tr'],
|
|
254
|
-
'party_tag': '<div></div>'
|
|
347
|
+
'party_tag': '<div></div>',
|
|
348
|
+
'iurl': 'https://www.admatic.com.tr'
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
'id': 2,
|
|
352
|
+
'creative_id': '3741',
|
|
353
|
+
'width': 300,
|
|
354
|
+
'height': 250,
|
|
355
|
+
'price': 0.01,
|
|
356
|
+
'type': 'video',
|
|
357
|
+
'bidder': 'admatic',
|
|
358
|
+
'adomain': ['admatic.com.tr'],
|
|
359
|
+
'party_tag': '<VAST></VAST>',
|
|
360
|
+
'iurl': 'https://www.admatic.com.tr'
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
'id': 3,
|
|
364
|
+
'creative_id': '3741',
|
|
365
|
+
'width': 300,
|
|
366
|
+
'height': 250,
|
|
367
|
+
'price': 0.01,
|
|
368
|
+
'type': 'video',
|
|
369
|
+
'bidder': 'admatic',
|
|
370
|
+
'adomain': ['admatic.com.tr'],
|
|
371
|
+
'party_tag': 'https://www.admatic.com.tr',
|
|
372
|
+
'iurl': 'https://www.admatic.com.tr'
|
|
255
373
|
}
|
|
256
374
|
],
|
|
257
375
|
'queryId': 'cdnbh24rlv0hhkpfpln0',
|
|
@@ -265,13 +383,48 @@ describe('admaticBidAdapter', () => {
|
|
|
265
383
|
width: 300,
|
|
266
384
|
height: 250,
|
|
267
385
|
currency: 'TRY',
|
|
386
|
+
mediaType: 'banner',
|
|
268
387
|
netRevenue: true,
|
|
269
388
|
ad: '<div></div>',
|
|
270
389
|
creativeId: '374',
|
|
271
390
|
meta: {
|
|
272
391
|
advertiserDomains: ['admatic.com.tr']
|
|
273
392
|
},
|
|
274
|
-
ttl:
|
|
393
|
+
ttl: 60,
|
|
394
|
+
bidder: 'admatic'
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
requestId: 2,
|
|
398
|
+
cpm: 0.01,
|
|
399
|
+
width: 300,
|
|
400
|
+
height: 250,
|
|
401
|
+
currency: 'TRY',
|
|
402
|
+
mediaType: 'video',
|
|
403
|
+
netRevenue: true,
|
|
404
|
+
vastImpUrl: 'https://www.admatic.com.tr',
|
|
405
|
+
vastXml: '<VAST></VAST>',
|
|
406
|
+
creativeId: '3741',
|
|
407
|
+
meta: {
|
|
408
|
+
advertiserDomains: ['admatic.com.tr']
|
|
409
|
+
},
|
|
410
|
+
ttl: 60,
|
|
411
|
+
bidder: 'admatic'
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
requestId: 3,
|
|
415
|
+
cpm: 0.01,
|
|
416
|
+
width: 300,
|
|
417
|
+
height: 250,
|
|
418
|
+
currency: 'TRY',
|
|
419
|
+
mediaType: 'video',
|
|
420
|
+
netRevenue: true,
|
|
421
|
+
vastImpUrl: 'https://www.admatic.com.tr',
|
|
422
|
+
vastXml: 'https://www.admatic.com.tr',
|
|
423
|
+
creativeId: '3741',
|
|
424
|
+
meta: {
|
|
425
|
+
advertiserDomains: ['admatic.com.tr']
|
|
426
|
+
},
|
|
427
|
+
ttl: 60,
|
|
275
428
|
bidder: 'admatic'
|
|
276
429
|
}
|
|
277
430
|
];
|