prebid.js 8.6.0 → 8.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/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a1MediaRtdProvider.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/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adsinteractiveBidAdapter.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/alkimiBidAdapter.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/automatadAnalyticsAdapter.js +1 -0
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/bridBidAdapter.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/connatixBidAdapter.js +1 -0
- 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 +7 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freepassBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/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/medianetBidAdapter.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/nativoBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +145 -142
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/operaadsIdSystem.js +1 -0
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionAnalyticsAdapter.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/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.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/smartyadsBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.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/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/topicsFpdModule.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/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/topics/topics-server.js +72 -0
- package/modules/.submodules.json +2 -1
- package/modules/a1MediaRtdProvider.js +1 -1
- package/modules/adagioBidAdapter.js +15 -1
- package/modules/adgenerationBidAdapter.js +4 -3
- package/modules/admaticBidAdapter.js +5 -0
- package/modules/adqueryBidAdapter.js +23 -21
- package/modules/adqueryIdSystem.js +45 -30
- package/modules/adrelevantisBidAdapter.js +2 -0
- package/modules/adsinteractiveBidAdapter.js +2 -0
- package/modules/alkimiBidAdapter.js +19 -7
- package/modules/automatadAnalyticsAdapter.js +325 -0
- package/modules/automatadAnalyticsAdapter.md +23 -0
- package/modules/bidViewability.js +7 -0
- package/modules/bidViewability.md +9 -8
- package/modules/brandmetricsRtdProvider.js +30 -27
- package/modules/connatixBidAdapter.js +185 -0
- package/modules/connatixBidAdapter.md +37 -0
- package/modules/criteoBidAdapter.js +73 -50
- package/modules/freepassBidAdapter.js +20 -1
- package/modules/freepassBidAdapter.md +4 -1
- package/modules/geoedgeRtdProvider.js +43 -13
- package/modules/geoedgeRtdProvider.md +2 -1
- package/modules/gridBidAdapter.js +1 -8
- package/modules/liveIntentIdSystem.js +16 -1
- package/modules/medianetBidAdapter.js +7 -4
- package/modules/mediasquareBidAdapter.js +3 -0
- package/modules/nativoBidAdapter.js +21 -3
- package/modules/onetagBidAdapter.js +3 -0
- package/modules/operaadsBidAdapter.js +5 -0
- package/modules/operaadsBidAdapter.md +5 -5
- package/modules/operaadsIdSystem.js +106 -0
- package/modules/operaadsIdSystem.md +52 -0
- package/modules/optidigitalBidAdapter.js +25 -16
- package/modules/oxxionAnalyticsAdapter.js +22 -5
- package/modules/rubiconBidAdapter.js +2 -2
- package/modules/smartyadsBidAdapter.js +18 -1
- package/modules/snigelBidAdapter.js +69 -16
- package/modules/snigelBidAdapter.md +9 -3
- package/modules/tappxBidAdapter.js +17 -14
- package/modules/topicsFpdModule.js +35 -9
- package/modules/undertoneBidAdapter.md +1 -1
- package/modules/userId/eids.md +7 -0
- package/modules/visxBidAdapter.js +51 -1
- package/package.json +2 -2
- package/src/adloader.js +1 -0
- package/src/native.js +2 -2
- package/test/spec/modules/adagioBidAdapter_spec.js +89 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
- package/test/spec/modules/admaticBidAdapter_spec.js +5 -0
- package/test/spec/modules/adqueryIdSystem_spec.js +13 -24
- package/test/spec/modules/alkimiBidAdapter_spec.js +3 -9
- package/test/spec/modules/automatadAnalyticsAdapter_spec.js +533 -0
- package/test/spec/modules/bidViewability_spec.js +32 -1
- package/test/spec/modules/brandmetricsRtdProvider_spec.js +6 -0
- package/test/spec/modules/connatixBidAdapter_spec.js +366 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +249 -0
- package/test/spec/modules/eids_spec.js +48 -0
- package/test/spec/modules/freepassBidAdapter_spec.js +44 -0
- package/test/spec/modules/geoedgeRtdProvider_spec.js +44 -24
- package/test/spec/modules/gridBidAdapter_spec.js +68 -0
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
- package/test/spec/modules/medianetBidAdapter_spec.js +18 -18
- package/test/spec/modules/mediasquareBidAdapter_spec.js +5 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +6 -1
- package/test/spec/modules/onetagBidAdapter_spec.js +69 -0
- package/test/spec/modules/operaadsIdSystem_spec.js +53 -0
- package/test/spec/modules/optidigitalBidAdapter_spec.js +9 -2
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +6 -1
- package/test/spec/modules/rubiconBidAdapter_spec.js +24 -0
- package/test/spec/modules/smartyadsBidAdapter_spec.js +49 -0
- package/test/spec/modules/snigelBidAdapter_spec.js +57 -6
- package/test/spec/modules/tappxBidAdapter_spec.js +19 -0
- package/test/spec/modules/topicsFpdModule_spec.js +102 -1
- package/test/spec/modules/visxBidAdapter_spec.js +151 -1
- package/test/spec/native_spec.js +5 -3
|
@@ -3,6 +3,7 @@ import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
|
3
3
|
import { config } from '../src/config.js';
|
|
4
4
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
5
5
|
import { INSTREAM as VIDEO_INSTREAM } from '../src/video.js';
|
|
6
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
6
7
|
const BIDDER_CODE = 'visx';
|
|
7
8
|
const GVLID = 154;
|
|
8
9
|
const BASE_URL = 'https://t.visx.net';
|
|
@@ -29,6 +30,7 @@ const LOG_ERROR_MESS = {
|
|
|
29
30
|
videoMissing: 'Bid request videoType property is missing - '
|
|
30
31
|
};
|
|
31
32
|
const currencyWhiteList = ['EUR', 'USD', 'GBP', 'PLN'];
|
|
33
|
+
export const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
32
34
|
export const spec = {
|
|
33
35
|
code: BIDDER_CODE,
|
|
34
36
|
gvlid: GVLID,
|
|
@@ -117,10 +119,13 @@ export const spec = {
|
|
|
117
119
|
...(payloadSchain && { schain: payloadSchain })
|
|
118
120
|
}
|
|
119
121
|
};
|
|
122
|
+
|
|
123
|
+
const vads = _getUserId();
|
|
120
124
|
const user = {
|
|
121
125
|
ext: {
|
|
122
126
|
...(payloadUserEids && { eids: payloadUserEids }),
|
|
123
|
-
...(payload.gdpr_consent && { consent: payload.gdpr_consent })
|
|
127
|
+
...(payload.gdpr_consent && { consent: payload.gdpr_consent }),
|
|
128
|
+
...(vads && { vads })
|
|
124
129
|
}
|
|
125
130
|
};
|
|
126
131
|
const regs = ('gdpr_applies' in payload) && {
|
|
@@ -382,4 +387,49 @@ function _isAdSlotExists(adUnitCode) {
|
|
|
382
387
|
return false;
|
|
383
388
|
}
|
|
384
389
|
|
|
390
|
+
// Generate user id (25 chars) with NanoID
|
|
391
|
+
// https://github.com/ai/nanoid/
|
|
392
|
+
function _generateUserId() {
|
|
393
|
+
for (
|
|
394
|
+
var t = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict',
|
|
395
|
+
e = new Date().getTime() % 1073741824,
|
|
396
|
+
i = '',
|
|
397
|
+
o = 0;
|
|
398
|
+
o < 5;
|
|
399
|
+
o++
|
|
400
|
+
) {
|
|
401
|
+
i += t[e % 64];
|
|
402
|
+
e = Math.floor(e / 64);
|
|
403
|
+
}
|
|
404
|
+
for (o = 20; o--;) i += t[(64 * Math.random()) | 0];
|
|
405
|
+
return i;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
function _getUserId() {
|
|
409
|
+
const USER_ID_KEY = '__vads';
|
|
410
|
+
let vads;
|
|
411
|
+
|
|
412
|
+
if (storage.cookiesAreEnabled()) {
|
|
413
|
+
vads = storage.getCookie(USER_ID_KEY);
|
|
414
|
+
} else if (storage.localStorageIsEnabled()) {
|
|
415
|
+
vads = storage.getDataFromLocalStorage(USER_ID_KEY);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (vads && vads.length) {
|
|
419
|
+
return vads;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
vads = _generateUserId();
|
|
423
|
+
if (storage.cookiesAreEnabled()) {
|
|
424
|
+
const expires = new Date(Date.now() + 2592e6).toUTCString();
|
|
425
|
+
storage.setCookie(USER_ID_KEY, vads, expires);
|
|
426
|
+
return vads;
|
|
427
|
+
} else if (storage.localStorageIsEnabled()) {
|
|
428
|
+
storage.setDataInLocalStorage(USER_ID_KEY, vads);
|
|
429
|
+
return vads;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
|
|
385
435
|
registerBidder(spec);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prebid.js",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.8.0",
|
|
4
4
|
"description": "Header Bidding Management Library",
|
|
5
5
|
"main": "src/prebid.js",
|
|
6
6
|
"scripts": {
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"express": "^4.15.4",
|
|
133
133
|
"fun-hooks": "^0.9.9",
|
|
134
134
|
"just-clone": "^1.0.2",
|
|
135
|
-
"live-connect-js": "^
|
|
135
|
+
"live-connect-js": "^6.0.0"
|
|
136
136
|
},
|
|
137
137
|
"optionalDependencies": {
|
|
138
138
|
"fsevents": "^2.3.2"
|
package/src/adloader.js
CHANGED
package/src/native.js
CHANGED
|
@@ -780,8 +780,8 @@ export function toLegacyResponse(ortbResponse, ortbRequest) {
|
|
|
780
780
|
legacyResponse.impressionTrackers = [];
|
|
781
781
|
let jsTrackers = [];
|
|
782
782
|
|
|
783
|
-
if (
|
|
784
|
-
legacyResponse.impressionTrackers.push(...
|
|
783
|
+
if (ortbResponse.imptrackers) {
|
|
784
|
+
legacyResponse.impressionTrackers.push(...ortbResponse.imptrackers);
|
|
785
785
|
}
|
|
786
786
|
for (const eventTracker of ortbResponse?.eventtrackers || []) {
|
|
787
787
|
if (eventTracker.event === TRACKER_EVENTS.impression && eventTracker.method === TRACKER_METHODS.img) {
|
|
@@ -697,6 +697,95 @@ describe('Adagio bid adapter', () => {
|
|
|
697
697
|
});
|
|
698
698
|
});
|
|
699
699
|
|
|
700
|
+
describe('with GPP', function() {
|
|
701
|
+
const bid01 = new BidRequestBuilder().withParams().build();
|
|
702
|
+
|
|
703
|
+
const regsGpp = 'regs_gpp_consent_string';
|
|
704
|
+
const regsApplicableSections = [2];
|
|
705
|
+
|
|
706
|
+
const ortb2Gpp = 'ortb2_gpp_consent_string';
|
|
707
|
+
const ortb2GppSid = [1];
|
|
708
|
+
|
|
709
|
+
context('When GPP in regs module', function() {
|
|
710
|
+
it('send gpp and gppSid to the server', function() {
|
|
711
|
+
const bidderRequest = new BidderRequestBuilder({
|
|
712
|
+
gppConsent: {
|
|
713
|
+
gppString: regsGpp,
|
|
714
|
+
applicableSections: regsApplicableSections,
|
|
715
|
+
}
|
|
716
|
+
}).build();
|
|
717
|
+
|
|
718
|
+
const requests = spec.buildRequests([bid01], bidderRequest);
|
|
719
|
+
|
|
720
|
+
expect(requests[0].data.regs.gpp).to.equal(regsGpp);
|
|
721
|
+
expect(requests[0].data.regs.gppSid).to.equal(regsApplicableSections);
|
|
722
|
+
});
|
|
723
|
+
});
|
|
724
|
+
|
|
725
|
+
context('When GPP partially defined in regs module', function() {
|
|
726
|
+
it('send gpp and gppSid coming from ortb2 to the server', function() {
|
|
727
|
+
const bidderRequest = new BidderRequestBuilder({
|
|
728
|
+
gppConsent: {
|
|
729
|
+
gppString: regsGpp,
|
|
730
|
+
},
|
|
731
|
+
ortb2: {
|
|
732
|
+
regs: {
|
|
733
|
+
gpp: ortb2Gpp,
|
|
734
|
+
gpp_sid: ortb2GppSid,
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}).build();
|
|
738
|
+
|
|
739
|
+
const requests = spec.buildRequests([bid01], bidderRequest);
|
|
740
|
+
|
|
741
|
+
expect(requests[0].data.regs.gpp).to.equal(ortb2Gpp);
|
|
742
|
+
expect(requests[0].data.regs.gppSid).to.equal(ortb2GppSid);
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
it('send empty gpp and gppSid if no ortb2 fields to the server', function() {
|
|
746
|
+
const bidderRequest = new BidderRequestBuilder({
|
|
747
|
+
gppConsent: {
|
|
748
|
+
gppString: regsGpp,
|
|
749
|
+
}
|
|
750
|
+
}).build();
|
|
751
|
+
|
|
752
|
+
const requests = spec.buildRequests([bid01], bidderRequest);
|
|
753
|
+
|
|
754
|
+
expect(requests[0].data.regs.gpp).to.equal('');
|
|
755
|
+
expect(requests[0].data.regs.gppSid).to.be.empty;
|
|
756
|
+
});
|
|
757
|
+
});
|
|
758
|
+
|
|
759
|
+
context('When GPP defined in ortb2 module', function() {
|
|
760
|
+
it('send gpp and gppSid coming from ortb2 to the server', function() {
|
|
761
|
+
const bidderRequest = new BidderRequestBuilder({
|
|
762
|
+
ortb2: {
|
|
763
|
+
regs: {
|
|
764
|
+
gpp: ortb2Gpp,
|
|
765
|
+
gpp_sid: ortb2GppSid,
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
}).build();
|
|
769
|
+
|
|
770
|
+
const requests = spec.buildRequests([bid01], bidderRequest);
|
|
771
|
+
|
|
772
|
+
expect(requests[0].data.regs.gpp).to.equal(ortb2Gpp);
|
|
773
|
+
expect(requests[0].data.regs.gppSid).to.equal(ortb2GppSid);
|
|
774
|
+
});
|
|
775
|
+
});
|
|
776
|
+
|
|
777
|
+
context('When GPP not defined in any modules', function() {
|
|
778
|
+
it('send empty gpp and gppSid', function() {
|
|
779
|
+
const bidderRequest = new BidderRequestBuilder({}).build();
|
|
780
|
+
|
|
781
|
+
const requests = spec.buildRequests([bid01], bidderRequest);
|
|
782
|
+
|
|
783
|
+
expect(requests[0].data.regs.gpp).to.equal('');
|
|
784
|
+
expect(requests[0].data.regs.gppSid).to.be.empty;
|
|
785
|
+
});
|
|
786
|
+
});
|
|
787
|
+
});
|
|
788
|
+
|
|
700
789
|
describe('with userID modules', function() {
|
|
701
790
|
const userIdAsEids = [{
|
|
702
791
|
'source': 'pubcid.org',
|
|
@@ -184,12 +184,12 @@ describe('AdgenerationAdapter', function () {
|
|
|
184
184
|
}
|
|
185
185
|
};
|
|
186
186
|
const data = {
|
|
187
|
-
banner: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
188
|
-
bannerUSD: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100¤cy=USD&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
189
|
-
native: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=1x1¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
190
|
-
bannerWithHyperId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
191
|
-
bannerWithAdgextCriteoId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
192
|
-
bannerWithAdgextIds: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.
|
|
187
|
+
banner: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com`,
|
|
188
|
+
bannerUSD: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=300x250%2C320x100¤cy=USD&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com`,
|
|
189
|
+
native: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=1x1¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&tp=https%3A%2F%2Fexample.com`,
|
|
190
|
+
bannerWithHyperId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&imark=1&tp=https%3A%2F%2Fexample.com&hyper_id=novatiqId`,
|
|
191
|
+
bannerWithAdgextCriteoId: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&adgext_criteo_id=criteo-id-test-1234567890&imark=1&tp=https%3A%2F%2Fexample.com`,
|
|
192
|
+
bannerWithAdgextIds: `posall=SSPLOC&id=58278&sdktype=0&hb=true&t=json3&sizes=320x100¤cy=JPY&pbver=${prebid.version}&sdkname=prebidjs&adapterver=1.6.2&adgext_id5_id=id5-id-test-1234567890&adgext_id5_id_link_type=2&adgext_imuid=i.KrAH6ZAZTJOnH5S4N2sogA&adgext_uid2=AgAAAAVacu1uAxgAxH%2BHJ8%2BnWlS2H4uVqr6i%2BHBDCNREHD8WKsio%2Fx7D8xXFuq1cJycUU86yXfTH9Xe%2F4C8KkH%2B7UCiU7uQxhyD7Qxnv251pEs6K8oK%2BBPLYR%2B8BLY%2FsJKesa%2FkoKwx1FHgUzIBum582tSy2Oo%2B7C6wYUaaV4QcLr%2F4LPA%3D&gpid=%2F1111%2Fhomepage%23300x250&uach=%7B%22source%22%3A2%2C%22platform%22%3A%7B%22brand%22%3A%22macOS%22%7D%2C%22browsers%22%3A%5B%7B%22brand%22%3A%22Chromium%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Google%20Chrome%22%2C%22version%22%3A%5B%22112%22%5D%7D%2C%7B%22brand%22%3A%22Not%3AA-Brand%22%2C%22version%22%3A%5B%2299%22%5D%7D%5D%2C%22mobile%22%3A0%7D&schain=%7B%22ver%22%3A%221.0%22%2C%22complete%22%3A1%2C%22nodes%22%3A%5B%7B%22asi%22%3A%22indirectseller.com%22%2C%22sid%22%3A%2200001%22%2C%22hp%22%3A1%7D%5D%7D&imark=1&tp=https%3A%2F%2Fexample.com`,
|
|
193
193
|
};
|
|
194
194
|
it('sends bid request to ENDPOINT via GET', function () {
|
|
195
195
|
const request = spec.buildRequests(bidRequests, bidderRequest)[0];
|
|
@@ -28,6 +28,7 @@ describe('admaticBidAdapter', () => {
|
|
|
28
28
|
'bidderRequestId': '22edbae2733bf6',
|
|
29
29
|
'auctionId': '1d1a030790a475',
|
|
30
30
|
'creativeId': 'er2ee',
|
|
31
|
+
'ortb2Imp': { 'ext': { 'instl': 1 } },
|
|
31
32
|
'ortb2': { 'badv': ['admatic.com.tr'] }
|
|
32
33
|
};
|
|
33
34
|
|
|
@@ -52,6 +53,7 @@ describe('admaticBidAdapter', () => {
|
|
|
52
53
|
'networkId': 10433394,
|
|
53
54
|
'host': 'layer.serve.admatic.com.tr'
|
|
54
55
|
},
|
|
56
|
+
'ortb2Imp': { 'ext': { 'instl': 1 } },
|
|
55
57
|
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
56
58
|
'mediaTypes': {
|
|
57
59
|
'banner': {
|
|
@@ -162,6 +164,7 @@ describe('admaticBidAdapter', () => {
|
|
|
162
164
|
'networkId': 10433394,
|
|
163
165
|
'host': 'layer.serve.admatic.com.tr'
|
|
164
166
|
},
|
|
167
|
+
'ortb2Imp': { 'ext': { 'instl': 1 } },
|
|
165
168
|
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
166
169
|
'mediaTypes': {
|
|
167
170
|
'banner': {
|
|
@@ -284,6 +287,7 @@ describe('admaticBidAdapter', () => {
|
|
|
284
287
|
'sizes': [[300, 250], [728, 90]]
|
|
285
288
|
}
|
|
286
289
|
},
|
|
290
|
+
'ortb2Imp': { 'ext': { 'instl': 1 } },
|
|
287
291
|
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
288
292
|
getFloor: inputParams => {
|
|
289
293
|
if (inputParams.mediaType === BANNER && inputParams.size[0] === 300 && inputParams.size[1] === 250) {
|
|
@@ -308,6 +312,7 @@ describe('admaticBidAdapter', () => {
|
|
|
308
312
|
'networkId': 10433394,
|
|
309
313
|
'host': 'layer.serve.admatic.com.tr'
|
|
310
314
|
},
|
|
315
|
+
'ortb2Imp': { 'ext': { 'instl': 1 } },
|
|
311
316
|
'ortb2': { 'badv': ['admatic.com.tr'] },
|
|
312
317
|
'adUnitCode': 'adunit-code',
|
|
313
318
|
'sizes': [[300, 250], [728, 90]],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import {adqueryIdSubmodule, storage} from 'modules/adqueryIdSystem.js';
|
|
2
|
+
import {server} from 'test/mocks/xhr.js';
|
|
3
|
+
import sinon from 'sinon';
|
|
3
4
|
|
|
4
5
|
const config = {
|
|
5
6
|
storage: {
|
|
@@ -18,7 +19,7 @@ describe('AdqueryIdSystem', function () {
|
|
|
18
19
|
});
|
|
19
20
|
});
|
|
20
21
|
|
|
21
|
-
describe('getId', function() {
|
|
22
|
+
describe('getId', function () {
|
|
22
23
|
let getDataFromLocalStorageStub;
|
|
23
24
|
|
|
24
25
|
beforeEach(function() {
|
|
@@ -29,7 +30,7 @@ describe('AdqueryIdSystem', function () {
|
|
|
29
30
|
getDataFromLocalStorageStub.restore();
|
|
30
31
|
});
|
|
31
32
|
|
|
32
|
-
it('gets a adqueryId', function() {
|
|
33
|
+
it('gets a adqueryId', function () {
|
|
33
34
|
const config = {
|
|
34
35
|
params: {}
|
|
35
36
|
};
|
|
@@ -37,36 +38,24 @@ describe('AdqueryIdSystem', function () {
|
|
|
37
38
|
const callback = adqueryIdSubmodule.getId(config).callback;
|
|
38
39
|
callback(callbackSpy);
|
|
39
40
|
const request = server.requests[0];
|
|
40
|
-
expect(request.url).to.
|
|
41
|
-
request.respond(200, {
|
|
42
|
-
expect(callbackSpy.lastCall.lastArg).to.deep.equal(
|
|
41
|
+
expect(request.url).to.contains(`https://bidder.adquery.io/prebid/qid?qid=`);
|
|
42
|
+
request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({qid: '6dd9eab7dfeab7df6dd9ea'}));
|
|
43
|
+
expect(callbackSpy.lastCall.lastArg).to.deep.equal('6dd9eab7dfeab7df6dd9ea');
|
|
43
44
|
});
|
|
44
45
|
|
|
45
|
-
it('
|
|
46
|
-
const config = {
|
|
47
|
-
params: {}
|
|
48
|
-
};
|
|
49
|
-
getDataFromLocalStorageStub.withArgs('qid').returns('qid');
|
|
50
|
-
|
|
51
|
-
const callbackSpy = sinon.spy();
|
|
52
|
-
const callback = adqueryIdSubmodule.getId(config).callback;
|
|
53
|
-
callback(callbackSpy);
|
|
54
|
-
expect(callbackSpy.lastCall.lastArg).to.deep.equal({qid: 'qid'});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('allows configurable id url', function() {
|
|
46
|
+
it('allows configurable id url', function () {
|
|
58
47
|
const config = {
|
|
59
48
|
params: {
|
|
60
|
-
url: 'https://
|
|
49
|
+
url: 'https://another_bidder.adquery.io/qid'
|
|
61
50
|
}
|
|
62
51
|
};
|
|
63
52
|
const callbackSpy = sinon.spy();
|
|
64
53
|
const callback = adqueryIdSubmodule.getId(config).callback;
|
|
65
54
|
callback(callbackSpy);
|
|
66
55
|
const request = server.requests[0];
|
|
67
|
-
expect(request.url).to.
|
|
68
|
-
request.respond(200, {
|
|
69
|
-
expect(callbackSpy.lastCall.lastArg).to.deep.equal(
|
|
56
|
+
expect(request.url).to.contains('https://another_bidder.adquery.io');
|
|
57
|
+
request.respond(200, {'Content-Type': 'application/json'}, JSON.stringify({qid: 'testqid'}));
|
|
58
|
+
expect(callbackSpy.lastCall.lastArg).to.deep.equal('testqid');
|
|
70
59
|
});
|
|
71
60
|
});
|
|
72
61
|
});
|
|
@@ -14,8 +14,7 @@ const REQUEST = {
|
|
|
14
14
|
},
|
|
15
15
|
'params': {
|
|
16
16
|
bidFloor: 0.1,
|
|
17
|
-
token: 'e64782a4-8e68-4c38-965b-80ccf115d46f'
|
|
18
|
-
pos: 7
|
|
17
|
+
token: 'e64782a4-8e68-4c38-965b-80ccf115d46f'
|
|
19
18
|
},
|
|
20
19
|
'userIdAsEids': [{
|
|
21
20
|
'source': 'criteo.com',
|
|
@@ -96,10 +95,6 @@ describe('alkimiBidAdapter', function () {
|
|
|
96
95
|
delete bid.params.token
|
|
97
96
|
expect(spec.isBidRequestValid(bid)).to.equal(false)
|
|
98
97
|
|
|
99
|
-
bid = Object.assign({}, REQUEST)
|
|
100
|
-
delete bid.params.bidFloor
|
|
101
|
-
expect(spec.isBidRequestValid(bid)).to.equal(false)
|
|
102
|
-
|
|
103
98
|
bid = Object.assign({}, REQUEST)
|
|
104
99
|
delete bid.params
|
|
105
100
|
expect(spec.isBidRequestValid(bid)).to.equal(false)
|
|
@@ -109,7 +104,6 @@ describe('alkimiBidAdapter', function () {
|
|
|
109
104
|
describe('buildRequests', function () {
|
|
110
105
|
let bidRequests = [REQUEST]
|
|
111
106
|
let requestData = {
|
|
112
|
-
auctionId: '123',
|
|
113
107
|
refererInfo: {
|
|
114
108
|
page: 'http://test.com/path.html'
|
|
115
109
|
},
|
|
@@ -137,10 +131,10 @@ describe('alkimiBidAdapter', function () {
|
|
|
137
131
|
|
|
138
132
|
it('sends bid request to ENDPOINT via POST', function () {
|
|
139
133
|
expect(bidderRequest.method).to.equal('POST')
|
|
140
|
-
expect(bidderRequest.data.requestId).to.equal(
|
|
134
|
+
expect(bidderRequest.data.requestId).to.not.equal(undefined)
|
|
141
135
|
expect(bidderRequest.data.referer).to.equal('http://test.com/path.html')
|
|
142
136
|
expect(bidderRequest.data.schain).to.deep.contains({ ver: '1.0', complete: 1, nodes: [{ asi: 'alkimi-onboarding.com', sid: '00001', hp: 1 }] })
|
|
143
|
-
expect(bidderRequest.data.signRequest.bids).to.deep.contains({ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f',
|
|
137
|
+
expect(bidderRequest.data.signRequest.bids).to.deep.contains({ token: 'e64782a4-8e68-4c38-965b-80ccf115d46f', bidFloor: 0.1, sizes: [{ width: 300, height: 250 }], playerSizes: [], impMediaTypes: ['Banner'], adUnitCode: 'bannerAdUnitCode', instl: undefined, exp: undefined, banner: { sizes: [[300, 250]] }, video: undefined })
|
|
144
138
|
expect(bidderRequest.data.signRequest.randomUUID).to.equal(undefined)
|
|
145
139
|
expect(bidderRequest.data.bidIds).to.deep.contains('456')
|
|
146
140
|
expect(bidderRequest.data.signature).to.equal(undefined)
|