prebid.js 7.16.0 → 7.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +0 -18
- package/dist/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.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/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/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -0
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.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/growthCodeIdSystem.js +1 -0
- 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/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.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/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +121 -119
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/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/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/karma.conf.maker.js +2 -4
- package/modules/1plusXRtdProvider.js +27 -7
- package/modules/adagioBidAdapter.js +18 -3
- package/modules/adagioBidAdapter.md +11 -1
- package/modules/adqueryBidAdapter.js +4 -2
- package/modules/appnexusBidAdapter.js +24 -22
- package/modules/bidwatchAnalyticsAdapter.js +1 -1
- package/modules/carodaBidAdapter.js +217 -0
- package/modules/carodaBidAdapter.md +43 -0
- package/modules/gridBidAdapter.js +1 -1
- package/modules/growthCodeIdSystem.js +164 -0
- package/modules/growthCodeIdSystem.md +37 -0
- package/modules/improvedigitalBidAdapter.js +3 -1
- package/modules/ixBidAdapter.js +17 -12
- package/modules/mediagoBidAdapter.js +15 -11
- package/modules/mediasquareBidAdapter.js +1 -1
- package/modules/nativoBidAdapter.js +2 -1
- package/modules/nextMillenniumBidAdapter.js +34 -11
- package/modules/rubiconAnalyticsAdapter.js +2 -2
- package/modules/rubiconBidAdapter.js +16 -6
- package/modules/seedtagBidAdapter.js +4 -0
- package/modules/taboolaBidAdapter.js +3 -7
- package/modules/userId/eids.js +19 -0
- package/modules/vidazooBidAdapter.js +1 -1
- package/package.json +1 -1
- package/test/spec/modules/1plusXRtdProvider_spec.js +77 -1
- package/test/spec/modules/adagioBidAdapter_spec.js +46 -2
- package/test/spec/modules/adqueryBidAdapter_spec.js +11 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +76 -0
- package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +2 -0
- package/test/spec/modules/carodaBidAdapter_spec.js +494 -0
- package/test/spec/modules/growthCodeIdSystem_spec.js +83 -0
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -0
- package/test/spec/modules/ixBidAdapter_spec.js +32 -16
- package/test/spec/modules/mediasquareBidAdapter_spec.js +2 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +12 -0
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/rubiconBidAdapter_spec.js +28 -35
- package/test/spec/modules/seedtagBidAdapter_spec.js +45 -0
|
@@ -1588,7 +1588,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1588
1588
|
search: 'drill',
|
|
1589
1589
|
},
|
|
1590
1590
|
user: {
|
|
1591
|
-
keywords: Array(
|
|
1591
|
+
keywords: Array(1200).join('#'),
|
|
1592
1592
|
}
|
|
1593
1593
|
};
|
|
1594
1594
|
|
|
@@ -1772,21 +1772,21 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1772
1772
|
|
|
1773
1773
|
it('impression should have correct format and value', function () {
|
|
1774
1774
|
const impression = JSON.parse(query.r).imp[0];
|
|
1775
|
+
const sidValue = DEFAULT_BANNER_VALID_BID[0].params.id;
|
|
1775
1776
|
|
|
1776
1777
|
expect(impression.id).to.equal(DEFAULT_BANNER_VALID_BID[0].bidId);
|
|
1777
1778
|
expect(impression.banner.format).to.be.length(2);
|
|
1778
1779
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
1779
1780
|
expect(impression.banner.pos).to.equal(0);
|
|
1780
1781
|
expect(impression.ext.tid).to.equal(DEFAULT_BANNER_VALID_BID[0].transactionId);
|
|
1782
|
+
expect(impression.ext.sid).to.equal(sidValue);
|
|
1781
1783
|
|
|
1782
1784
|
impression.banner.format.map(({ w, h, ext }, index) => {
|
|
1783
1785
|
const size = DEFAULT_BANNER_VALID_BID[0].mediaTypes.banner.sizes[index];
|
|
1784
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
1785
1786
|
|
|
1786
1787
|
expect(w).to.equal(size[0]);
|
|
1787
1788
|
expect(h).to.equal(size[1]);
|
|
1788
1789
|
expect(ext.siteID).to.equal(DEFAULT_BANNER_VALID_BID[0].params.siteId);
|
|
1789
|
-
expect(ext.sid).to.equal(sidValue);
|
|
1790
1790
|
});
|
|
1791
1791
|
});
|
|
1792
1792
|
|
|
@@ -1934,7 +1934,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1934
1934
|
expect(impression.banner.format[0].h).to.equal(DEFAULT_BANNER_VALID_BID[0].params.size[1]);
|
|
1935
1935
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
1936
1936
|
expect(impression.banner.format[0].ext.siteID).to.equal(DEFAULT_BANNER_VALID_BID[0].params.siteId);
|
|
1937
|
-
expect(impression.
|
|
1937
|
+
expect(impression.ext.sid).to.equal('50');
|
|
1938
1938
|
});
|
|
1939
1939
|
|
|
1940
1940
|
it('impression should have sid if id is configured as string', function () {
|
|
@@ -1948,7 +1948,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1948
1948
|
expect(impression.banner.format[0].h).to.equal(DEFAULT_BANNER_VALID_BID[0].params.size[1]);
|
|
1949
1949
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
1950
1950
|
expect(impression.banner.format[0].ext.siteID).to.equal(DEFAULT_BANNER_VALID_BID[0].params.siteId);
|
|
1951
|
-
expect(impression.
|
|
1951
|
+
expect(impression.ext.sid).to.equal('abc');
|
|
1952
1952
|
});
|
|
1953
1953
|
|
|
1954
1954
|
describe('first party data', () => {
|
|
@@ -2034,6 +2034,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2034
2034
|
const request = spec.buildRequests([DEFAULT_BANNER_VALID_BID[0], DEFAULT_VIDEO_VALID_BID[0]], {});
|
|
2035
2035
|
it('should have banner request', () => {
|
|
2036
2036
|
const bannerImpression = JSON.parse(request[0].data.r).imp[0];
|
|
2037
|
+
const sidValue = DEFAULT_BANNER_VALID_BID[0].params.id;
|
|
2037
2038
|
|
|
2038
2039
|
expect(JSON.parse(request[0].data.r).imp).to.have.lengthOf(1);
|
|
2039
2040
|
expect(JSON.parse(request[0].data.v)).to.equal(BANNER_ENDPOINT_VERSION);
|
|
@@ -2041,15 +2042,14 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2041
2042
|
|
|
2042
2043
|
expect(bannerImpression.banner.format).to.be.length(2);
|
|
2043
2044
|
expect(bannerImpression.banner.topframe).to.be.oneOf([0, 1]);
|
|
2045
|
+
expect(bannerImpression.ext.sid).to.equal(sidValue);
|
|
2044
2046
|
|
|
2045
2047
|
bannerImpression.banner.format.map(({ w, h, ext }, index) => {
|
|
2046
2048
|
const size = DEFAULT_BANNER_VALID_BID[0].mediaTypes.banner.sizes[index];
|
|
2047
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
2048
2049
|
|
|
2049
2050
|
expect(w).to.equal(size[0]);
|
|
2050
2051
|
expect(h).to.equal(size[1]);
|
|
2051
2052
|
expect(ext.siteID).to.equal(DEFAULT_BANNER_VALID_BID[0].params.siteId);
|
|
2052
|
-
expect(ext.sid).to.equal(sidValue);
|
|
2053
2053
|
});
|
|
2054
2054
|
});
|
|
2055
2055
|
|
|
@@ -2068,6 +2068,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2068
2068
|
|
|
2069
2069
|
it('should have banner request', () => {
|
|
2070
2070
|
const bannerImpression = JSON.parse(request[0].data.r).imp[0];
|
|
2071
|
+
const sidValue = DEFAULT_BANNER_VALID_BID[0].params.id;
|
|
2071
2072
|
|
|
2072
2073
|
expect(JSON.parse(request[0].data.r).imp).to.have.lengthOf(1);
|
|
2073
2074
|
expect(JSON.parse(request[0].data.v)).to.equal(BANNER_ENDPOINT_VERSION);
|
|
@@ -2075,15 +2076,14 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2075
2076
|
|
|
2076
2077
|
expect(bannerImpression.banner.format).to.be.length(2);
|
|
2077
2078
|
expect(bannerImpression.banner.topframe).to.be.oneOf([0, 1]);
|
|
2079
|
+
expect(bannerImpression.ext.sid).to.equal(sidValue);
|
|
2078
2080
|
|
|
2079
2081
|
bannerImpression.banner.format.map(({ w, h, ext }, index) => {
|
|
2080
2082
|
const size = DEFAULT_BANNER_VALID_BID[0].mediaTypes.banner.sizes[index];
|
|
2081
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
2082
2083
|
|
|
2083
2084
|
expect(w).to.equal(size[0]);
|
|
2084
2085
|
expect(h).to.equal(size[1]);
|
|
2085
2086
|
expect(ext.siteID).to.equal(DEFAULT_BANNER_VALID_BID[0].params.siteId);
|
|
2086
|
-
expect(ext.sid).to.equal(sidValue);
|
|
2087
2087
|
});
|
|
2088
2088
|
});
|
|
2089
2089
|
|
|
@@ -2200,19 +2200,19 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2200
2200
|
|
|
2201
2201
|
const request = spec.buildRequests([bid, bid2], DEFAULT_OPTION)[0];
|
|
2202
2202
|
const impression = JSON.parse(request.data.r).imp[0];
|
|
2203
|
+
const sidValue = bid.params.id;
|
|
2203
2204
|
|
|
2204
2205
|
expect(impression.id).to.equal(bid.bidId);
|
|
2205
2206
|
expect(impression.banner.format).to.be.length(bid.mediaTypes.banner.sizes.length);
|
|
2206
2207
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
2208
|
+
expect(impression.ext.sid).to.equal(sidValue);
|
|
2207
2209
|
|
|
2208
2210
|
impression.banner.format.map(({ w, h, ext }, index) => {
|
|
2209
2211
|
const size = bid.mediaTypes.banner.sizes[index];
|
|
2210
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
2211
2212
|
|
|
2212
2213
|
expect(w).to.equal(size[0]);
|
|
2213
2214
|
expect(h).to.equal(size[1]);
|
|
2214
2215
|
expect(ext.siteID).to.equal(index === 1 ? bid2.params.siteId : bid.params.siteId);
|
|
2215
|
-
expect(ext.sid).to.equal(sidValue);
|
|
2216
2216
|
});
|
|
2217
2217
|
});
|
|
2218
2218
|
|
|
@@ -2236,18 +2236,18 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2236
2236
|
|
|
2237
2237
|
impressions.map((impression, impressionIndex) => {
|
|
2238
2238
|
const firstSizeObject = bids[impressionIndex].mediaTypes.banner.sizes[0];
|
|
2239
|
+
const sidValue = bids[impressionIndex].params.id;
|
|
2239
2240
|
|
|
2240
2241
|
expect(impression.banner.format).to.be.length(2);
|
|
2241
2242
|
expect(impression.banner.topframe).to.be.oneOf([0, 1]);
|
|
2243
|
+
expect(impression.ext.sid).to.equal(sidValue);
|
|
2242
2244
|
|
|
2243
2245
|
impression.banner.format.map(({ w, h, ext }, index) => {
|
|
2244
2246
|
const size = bids[impressionIndex].mediaTypes.banner.sizes[index];
|
|
2245
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
2246
2247
|
|
|
2247
2248
|
expect(w).to.equal(size[0]);
|
|
2248
2249
|
expect(h).to.equal(size[1]);
|
|
2249
2250
|
expect(ext.siteID).to.equal(bids[impressionIndex].params.siteId);
|
|
2250
|
-
expect(ext.sid).to.equal(sidValue);
|
|
2251
2251
|
});
|
|
2252
2252
|
});
|
|
2253
2253
|
});
|
|
@@ -2295,7 +2295,6 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2295
2295
|
|
|
2296
2296
|
it('impression should have correct format and value', function () {
|
|
2297
2297
|
const impression = JSON.parse(query.r).imp[0];
|
|
2298
|
-
const sidValue = utils.parseGPTSingleSizeArray(DEFAULT_VIDEO_VALID_BID[0].params.size);
|
|
2299
2298
|
|
|
2300
2299
|
expect(impression.id).to.equal(DEFAULT_VIDEO_VALID_BID[0].bidId);
|
|
2301
2300
|
expect(impression.video.w).to.equal(DEFAULT_VIDEO_VALID_BID[0].params.size[0]);
|
|
@@ -2320,6 +2319,15 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2320
2319
|
expect(impression.video.placement).to.equal(2);
|
|
2321
2320
|
});
|
|
2322
2321
|
|
|
2322
|
+
it('should set imp.ext.sid for video imps if params.id exists', function () {
|
|
2323
|
+
const bid = utils.deepClone(DEFAULT_VIDEO_VALID_BID[0]);
|
|
2324
|
+
bid.params.id = 50;
|
|
2325
|
+
const request = spec.buildRequests([bid], {})[0];
|
|
2326
|
+
const impression = JSON.parse(request.data.r).imp[0];
|
|
2327
|
+
|
|
2328
|
+
expect(impression.ext.sid).to.equal('50');
|
|
2329
|
+
});
|
|
2330
|
+
|
|
2323
2331
|
it('should set correct default placement, if context is instream', function () {
|
|
2324
2332
|
const bid = utils.deepClone(DEFAULT_VIDEO_VALID_BID[0]);
|
|
2325
2333
|
bid.mediaTypes.video.context = 'instream';
|
|
@@ -2460,6 +2468,16 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2460
2468
|
expect(nativeImpression.native).to.deep.equal(DEFAULT_NATIVE_IMP);
|
|
2461
2469
|
});
|
|
2462
2470
|
|
|
2471
|
+
it('should set imp.ext.sid for native imps if params.id exist', function() {
|
|
2472
|
+
const bid = utils.deepClone(DEFAULT_NATIVE_VALID_BID);
|
|
2473
|
+
bid[0].params.id = 'abc'
|
|
2474
|
+
const request = spec.buildRequests(bid, DEFAULT_OPTION);
|
|
2475
|
+
const nativeImpression = JSON.parse(request[0].data.r).imp[0];
|
|
2476
|
+
|
|
2477
|
+
expect(nativeImpression.id).to.equal(DEFAULT_NATIVE_VALID_BID[0].bidId);
|
|
2478
|
+
expect(nativeImpression.ext.sid).to.equal('abc');
|
|
2479
|
+
});
|
|
2480
|
+
|
|
2463
2481
|
it('should build request with given asset properties', function() {
|
|
2464
2482
|
let bid = utils.deepClone(DEFAULT_NATIVE_VALID_BID)
|
|
2465
2483
|
bid[0].nativeOrtbRequest = {
|
|
@@ -2642,12 +2660,10 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2642
2660
|
|
|
2643
2661
|
impression.banner.format.map(({ w, h, ext }, index) => {
|
|
2644
2662
|
const size = bid.mediaTypes.banner.sizes[index];
|
|
2645
|
-
const sidValue = utils.parseGPTSingleSizeArray(size);
|
|
2646
2663
|
|
|
2647
2664
|
expect(w).to.equal(size[0]);
|
|
2648
2665
|
expect(h).to.equal(size[1]);
|
|
2649
2666
|
expect(ext.siteID).to.equal(bid.params.siteId);
|
|
2650
|
-
expect(ext.sid).to.equal(sidValue);
|
|
2651
2667
|
});
|
|
2652
2668
|
});
|
|
2653
2669
|
});
|
|
@@ -88,6 +88,8 @@ describe('MediaSquare bid adapter tests', function () {
|
|
|
88
88
|
'height': 250,
|
|
89
89
|
'creative_id': '158534630',
|
|
90
90
|
'currency': 'USD',
|
|
91
|
+
'originalCpm': 25.0123,
|
|
92
|
+
'originalCurrency': 'USD',
|
|
91
93
|
'net_revenue': true,
|
|
92
94
|
'ttl': 300,
|
|
93
95
|
'ad': '< --- creative code --- >',
|
|
@@ -3469,5 +3469,17 @@ describe('S2S Adapter', function () {
|
|
|
3469
3469
|
|
|
3470
3470
|
expect(requestBid.ext.prebid.floors).to.deep.equal({ enabled: false });
|
|
3471
3471
|
});
|
|
3472
|
+
|
|
3473
|
+
it('should override prebid server default DEFAULT_S2S_CURRENCY', function () {
|
|
3474
|
+
config.setConfig({
|
|
3475
|
+
currency: { adServerCurrency: 'JPY' },
|
|
3476
|
+
});
|
|
3477
|
+
|
|
3478
|
+
const bidRequests = utils.deepClone(BID_REQUESTS);
|
|
3479
|
+
adapter.callBids(REQUEST, bidRequests, addBidResponse, done, ajax);
|
|
3480
|
+
|
|
3481
|
+
const parsedRequestBody = JSON.parse(server.requests[1].requestBody);
|
|
3482
|
+
expect(parsedRequestBody.cur).to.deep.equal(['JPY']);
|
|
3483
|
+
});
|
|
3472
3484
|
});
|
|
3473
3485
|
});
|
|
@@ -2366,7 +2366,7 @@ describe('rubicon analytics adapter', function () {
|
|
|
2366
2366
|
});
|
|
2367
2367
|
basicBillingAuction([{
|
|
2368
2368
|
vendor: 'vendorName',
|
|
2369
|
-
type: '
|
|
2369
|
+
type: 'pageView',
|
|
2370
2370
|
billingId: 'f8558d41-62de-4349-bc7b-2dbee1e69965'
|
|
2371
2371
|
}]);
|
|
2372
2372
|
expect(server.requests.length).to.equal(1);
|
|
@@ -2376,7 +2376,7 @@ describe('rubicon analytics adapter', function () {
|
|
|
2376
2376
|
expect(message.billableEvents).to.deep.equal([{
|
|
2377
2377
|
accountId: 1001,
|
|
2378
2378
|
vendor: 'vendorName',
|
|
2379
|
-
type: '
|
|
2379
|
+
type: 'pageView',
|
|
2380
2380
|
billingId: 'f8558d41-62de-4349-bc7b-2dbee1e69965'
|
|
2381
2381
|
}]);
|
|
2382
2382
|
});
|
|
@@ -2398,7 +2398,7 @@ describe('rubicon analytics adapter', function () {
|
|
|
2398
2398
|
},
|
|
2399
2399
|
{
|
|
2400
2400
|
vendor: 'vendorName',
|
|
2401
|
-
type: '
|
|
2401
|
+
type: 'impression',
|
|
2402
2402
|
billingId: '743db6e3-21f2-44d4-917f-cb3488c6076f'
|
|
2403
2403
|
},
|
|
2404
2404
|
{
|
|
@@ -2415,13 +2415,13 @@ describe('rubicon analytics adapter', function () {
|
|
|
2415
2415
|
{
|
|
2416
2416
|
accountId: 1001,
|
|
2417
2417
|
vendor: 'vendorName',
|
|
2418
|
-
type: '
|
|
2418
|
+
type: 'auction',
|
|
2419
2419
|
billingId: 'f8558d41-62de-4349-bc7b-2dbee1e69965'
|
|
2420
2420
|
},
|
|
2421
2421
|
{
|
|
2422
2422
|
accountId: 1001,
|
|
2423
2423
|
vendor: 'vendorName',
|
|
2424
|
-
type: '
|
|
2424
|
+
type: 'impression',
|
|
2425
2425
|
billingId: '743db6e3-21f2-44d4-917f-cb3488c6076f'
|
|
2426
2426
|
}
|
|
2427
2427
|
]);
|
|
@@ -2450,7 +2450,7 @@ describe('rubicon analytics adapter', function () {
|
|
|
2450
2450
|
{
|
|
2451
2451
|
accountId: 1001,
|
|
2452
2452
|
vendor: 'vendorName',
|
|
2453
|
-
type: '
|
|
2453
|
+
type: 'auction',
|
|
2454
2454
|
billingId: 'f8558d41-62de-4349-bc7b-2dbee1e69965'
|
|
2455
2455
|
}
|
|
2456
2456
|
]);
|
|
@@ -2480,7 +2480,7 @@ describe('rubicon analytics adapter', function () {
|
|
|
2480
2480
|
{
|
|
2481
2481
|
accountId: 1001,
|
|
2482
2482
|
vendor: 'vendorName',
|
|
2483
|
-
type: '
|
|
2483
|
+
type: 'auction',
|
|
2484
2484
|
billingId: 'f8558d41-62de-4349-bc7b-2dbee1e69965'
|
|
2485
2485
|
}
|
|
2486
2486
|
]);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getPriceGranularity,
|
|
5
5
|
masSizeOrdering,
|
|
6
6
|
resetUserSync,
|
|
7
|
-
|
|
7
|
+
classifiedAsVideo,
|
|
8
8
|
resetRubiConf
|
|
9
9
|
} from 'modules/rubiconBidAdapter.js';
|
|
10
10
|
import {parse as parseQuery} from 'querystring';
|
|
@@ -257,7 +257,7 @@ describe('the rubicon adapter', function () {
|
|
|
257
257
|
context: 'instream'
|
|
258
258
|
},
|
|
259
259
|
};
|
|
260
|
-
bid.params.video =
|
|
260
|
+
bid.params.video = false;
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
function createVideoBidderRequestOutstream() {
|
|
@@ -2320,57 +2320,50 @@ describe('the rubicon adapter', function () {
|
|
|
2320
2320
|
});
|
|
2321
2321
|
});
|
|
2322
2322
|
|
|
2323
|
-
describe('
|
|
2324
|
-
it('should return true if
|
|
2323
|
+
describe('classifiedAsVideo', function () {
|
|
2324
|
+
it('should return true if mediaTypes is video', function () {
|
|
2325
2325
|
createVideoBidderRequest();
|
|
2326
|
-
const
|
|
2327
|
-
expect(
|
|
2326
|
+
const bidClassifiedAsVideo = classifiedAsVideo(bidderRequest.bids[0]);
|
|
2327
|
+
expect(bidClassifiedAsVideo).is.equal(true);
|
|
2328
2328
|
});
|
|
2329
2329
|
|
|
2330
2330
|
it('should return false if trying to use legacy mediaType with video', function () {
|
|
2331
2331
|
createVideoBidderRequest();
|
|
2332
2332
|
delete bidderRequest.bids[0].mediaTypes;
|
|
2333
2333
|
bidderRequest.bids[0].mediaType = 'video';
|
|
2334
|
-
const legacyVideoTypeBidRequest =
|
|
2334
|
+
const legacyVideoTypeBidRequest = classifiedAsVideo(bidderRequest.bids[0]);
|
|
2335
2335
|
expect(legacyVideoTypeBidRequest).is.equal(false);
|
|
2336
2336
|
});
|
|
2337
2337
|
|
|
2338
|
-
it('should return false if
|
|
2339
|
-
expect(
|
|
2338
|
+
it('should return false if bid.mediaTypes is not equal to video', function () {
|
|
2339
|
+
expect(classifiedAsVideo({
|
|
2340
2340
|
mediaType: 'banner'
|
|
2341
2341
|
})).is.equal(false);
|
|
2342
2342
|
});
|
|
2343
2343
|
|
|
2344
|
-
it('should return false if
|
|
2345
|
-
expect(
|
|
2344
|
+
it('should return false if bid.mediaTypes is not defined', function () {
|
|
2345
|
+
expect(classifiedAsVideo({})).is.equal(false);
|
|
2346
2346
|
});
|
|
2347
2347
|
|
|
2348
|
-
it('
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
})).is.equal(true);
|
|
2348
|
+
it('Should return false if both banner and video mediaTypes are set and params.video is not an object', function () {
|
|
2349
|
+
createVideoBidderRequestNoVideo();
|
|
2350
|
+
let bid = bidderRequest.bids[0];
|
|
2351
|
+
bid.mediaTypes.banner = {flag: true};
|
|
2352
|
+
expect(classifiedAsVideo(bid)).to.equal(false);
|
|
2353
|
+
});
|
|
2354
|
+
it('Should return true if both banner and video mediaTypes are set and params.video is an object', function () {
|
|
2355
|
+
createVideoBidderRequestNoVideo();
|
|
2356
|
+
let bid = bidderRequest.bids[0];
|
|
2357
|
+
bid.mediaTypes.banner = {flag: true};
|
|
2358
|
+
bid.params.video = {};
|
|
2359
|
+
expect(classifiedAsVideo(bid)).to.equal(true);
|
|
2361
2360
|
});
|
|
2362
2361
|
|
|
2363
|
-
it('
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
}
|
|
2369
|
-
},
|
|
2370
|
-
params: {
|
|
2371
|
-
video: {}
|
|
2372
|
-
}
|
|
2373
|
-
})).is.equal(false);
|
|
2362
|
+
it('Should return true and create a params.video object if one is not already present', function () {
|
|
2363
|
+
createVideoBidderRequestNoVideo();
|
|
2364
|
+
let bid = bidderRequest.bids[0]
|
|
2365
|
+
expect(classifiedAsVideo(bid)).to.equal(true);
|
|
2366
|
+
expect(bid.params.video).to.not.be.undefined;
|
|
2374
2367
|
});
|
|
2375
2368
|
});
|
|
2376
2369
|
});
|
|
@@ -356,6 +356,51 @@ describe('Seedtag Adapter', function () {
|
|
|
356
356
|
expect(videoBid.requestCount).to.equal(1);
|
|
357
357
|
});
|
|
358
358
|
});
|
|
359
|
+
|
|
360
|
+
describe('schain param', function () {
|
|
361
|
+
it('should add schain to payload when exposed on validBidRequest', function () {
|
|
362
|
+
// https://github.com/prebid/Prebid.js/blob/master/modules/schain.md#sample-code-for-passing-the-schain-object
|
|
363
|
+
const schain = {
|
|
364
|
+
validation: 'strict',
|
|
365
|
+
config: {
|
|
366
|
+
ver: '1.0',
|
|
367
|
+
complete: 1,
|
|
368
|
+
nodes: [
|
|
369
|
+
{
|
|
370
|
+
asi: 'indirectseller.com',
|
|
371
|
+
sid: '00001',
|
|
372
|
+
hp: 1,
|
|
373
|
+
},
|
|
374
|
+
|
|
375
|
+
{
|
|
376
|
+
asi: 'indirectseller-2.com',
|
|
377
|
+
sid: '00002',
|
|
378
|
+
hp: 1,
|
|
379
|
+
},
|
|
380
|
+
],
|
|
381
|
+
},
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
// duplicate
|
|
385
|
+
const bidRequests = JSON.parse(JSON.stringify(validBidRequests))
|
|
386
|
+
bidRequests[0].schain = schain;
|
|
387
|
+
|
|
388
|
+
const request = spec.buildRequests(bidRequests, bidderRequest);
|
|
389
|
+
|
|
390
|
+
const payload = JSON.parse(request.data);
|
|
391
|
+
|
|
392
|
+
expect(payload.schain).to.exist;
|
|
393
|
+
expect(payload.schain).to.deep.equal(schain);
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
it("shouldn't add schain to payload when not exposed", function () {
|
|
397
|
+
const request = spec.buildRequests(validBidRequests, bidderRequest);
|
|
398
|
+
|
|
399
|
+
const payload = JSON.parse(request.data);
|
|
400
|
+
|
|
401
|
+
expect(payload.schain).to.not.exist;
|
|
402
|
+
});
|
|
403
|
+
});
|
|
359
404
|
});
|
|
360
405
|
|
|
361
406
|
describe('interpret response method', function () {
|