prebid.js 8.4.0 → 8.5.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 -0
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adfBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtelligentIdSystem.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/beachfrontBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/britepoolIdSystem.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/consentManagementGpp.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/criteoIdSystem.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/czechAdIdSystem.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/deepintentDpesIdSystem.js +1 -1
- package/dist/dependencies.json +3 -0
- package/dist/dmdIdSystem.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/fabrickIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/geolocationRtdProvider.js +1 -0
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gravitoIdSystem.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/idxIdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justIdSystem.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kinessoIdSystem.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/lotamePanoramaIdSystem.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/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/netIdSystem.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +176 -173
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/oneKeyIdSystem.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/pairIdSystem.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/quantcastIdSystem.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/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/silverpushBidAdapter.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/ssmasBidAdapter.js +1 -0
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/tncIdSystem.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/unifiedIdSystem.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/utiqSystem.js +1 -1
- package/dist/verizonMediaIdSystem.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.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/dist/zeotapIdPlusIdSystem.js +1 -1
- package/integrationExamples/gpt/adUnitFloors.html +0 -1
- package/modules/.submodules.json +1 -0
- package/modules/33acrossIdSystem.js +9 -0
- package/modules/a1MediaRtdProvider.js +92 -0
- package/modules/a1MediaRtdProvider.md +46 -0
- package/modules/adfBidAdapter.js +4 -1
- package/modules/adkernelAdnBidAdapter.js +1 -1
- package/modules/adkernelBidAdapter.js +10 -3
- package/modules/admixerIdSystem.js +6 -0
- package/modules/adnuntiusBidAdapter.js +5 -13
- package/modules/adqueryIdSystem.js +6 -0
- package/modules/adtelligentIdSystem.js +6 -0
- package/modules/adyoulikeBidAdapter.js +6 -3
- package/modules/amxIdSystem.js +6 -0
- package/modules/beachfrontBidAdapter.js +32 -6
- package/modules/britepoolIdSystem.js +6 -0
- package/modules/connectIdSystem.js +6 -0
- package/modules/consentManagementGpp.js +10 -1
- package/modules/consumableBidAdapter.js +9 -1
- package/modules/criteoIdSystem.js +6 -0
- package/modules/czechAdIdSystem.js +6 -0
- package/modules/dacIdSystem.js +6 -0
- package/modules/deepintentDpesIdSystem.js +7 -2
- package/modules/dmdIdSystem.js +6 -0
- package/modules/euidIdSystem.js +9 -0
- package/modules/fabrickIdSystem.js +6 -0
- package/modules/ftrackIdSystem.js +16 -0
- package/modules/geolocationRtdProvider.js +65 -0
- package/modules/gravitoIdSystem.js +6 -0
- package/modules/greenbidsRtdProvider.js +1 -1
- package/modules/growthCodeIdSystem.js +20 -1
- package/modules/hadronIdSystem.js +6 -0
- package/modules/id5IdSystem.js +34 -8
- package/modules/identityLinkIdSystem.js +6 -0
- package/modules/idxIdSystem.js +6 -0
- package/modules/imdsBidAdapter.js +38 -14
- package/modules/imuIdSystem.js +10 -0
- package/modules/intentIqIdSystem.js +6 -0
- package/modules/invibesBidAdapter.js +5 -5
- package/modules/ixBidAdapter.js +16 -0
- package/modules/justIdSystem.js +6 -0
- package/modules/kinessoIdSystem.js +7 -2
- package/modules/liveIntentIdSystem.js +53 -0
- package/modules/lotamePanoramaIdSystem.js +6 -0
- package/modules/merkleIdSystem.js +24 -0
- package/modules/mwOpenLinkIdSystem.js +6 -0
- package/modules/naveggIdSystem.js +6 -0
- package/modules/netIdSystem.js +6 -0
- package/modules/novatiqIdSystem.js +12 -0
- package/modules/oneKeyIdSystem.js +26 -0
- package/modules/ozoneBidAdapter.js +65 -18
- package/modules/ozoneBidAdapter.md +3 -1
- package/modules/pairIdSystem.js +6 -0
- package/modules/parrableIdSystem.js +38 -2
- package/modules/publinkIdSystem.js +7 -1
- package/modules/quantcastIdSystem.js +6 -0
- package/modules/rubiconBidAdapter.js +9 -0
- package/modules/sharedIdSystem.js +6 -0
- package/modules/silverpushBidAdapter.js +2 -2
- package/modules/ssmasBidAdapter.js +126 -0
- package/modules/ssmasBidAdapter.md +35 -0
- package/modules/sspBCBidAdapter.js +36 -13
- package/modules/tapadIdSystem.js +6 -0
- package/modules/tncIdSystem.js +6 -0
- package/modules/tripleliftBidAdapter.js +5 -0
- package/modules/uid2IdSystem.js +14 -0
- package/modules/unifiedIdSystem.js +11 -0
- package/modules/userId/eids.js +6 -445
- package/modules/userId/index.js +36 -24
- package/modules/utiqSystem.js +9 -0
- package/modules/verizonMediaIdSystem.js +6 -0
- package/modules/vrtcalBidAdapter.js +10 -6
- package/modules/zeotapIdPlusIdSystem.js +6 -0
- package/package.json +1 -1
- package/src/adapters/bidderFactory.js +15 -6
- package/src/adloader.js +2 -1
- package/test/spec/modules/a1MediaRtdProvider_spec.js +105 -0
- package/test/spec/modules/adfBidAdapter_spec.js +47 -0
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -2
- package/test/spec/modules/adkernelBidAdapter_spec.js +7 -2
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +116 -64
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -24
- package/test/spec/modules/beachfrontBidAdapter_spec.js +35 -2
- package/test/spec/modules/consentManagementGpp_spec.js +16 -0
- package/test/spec/modules/consumableBidAdapter_spec.js +15 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +5 -5
- package/test/spec/modules/geolocationRtdProvider_spec.js +119 -0
- package/test/spec/modules/greenbidsRtdProvider_spec.js +1 -1
- package/test/spec/modules/id5IdSystem_spec.js +18 -0
- package/test/spec/modules/imdsBidAdapter_spec.js +98 -17
- package/test/spec/modules/invibesBidAdapter_spec.js +123 -32
- package/test/spec/modules/ixBidAdapter_spec.js +23 -5
- package/test/spec/modules/medianetBidAdapter_spec.js +117 -0
- package/test/spec/modules/outbrainBidAdapter_spec.js +3 -5
- package/test/spec/modules/ozoneBidAdapter_spec.js +27 -1
- package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -20
- package/test/spec/modules/priceFloors_spec.js +14 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +6 -373
- package/test/spec/modules/rubiconBidAdapter_spec.js +220 -9
- package/test/spec/modules/smaatoBidAdapter_spec.js +4 -6
- package/test/spec/modules/ssmasBidAdapter_spec.js +244 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +18 -19
- package/test/spec/modules/tripleliftBidAdapter_spec.js +40 -0
- package/test/spec/modules/userId_spec.js +116 -7
- package/test/spec/modules/vrtcalBidAdapter_spec.js +12 -4
- package/test/spec/modules/xeBidAdapter_spec.js +366 -368
- package/test/spec/modules/yahoosspBidAdapter_spec.js +5 -18
- package/test/spec/unit/core/bidderFactory_spec.js +61 -14
- package/integrationExamples/gpt/pbjs_video_adUnit.html +0 -109
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { BANNER } from '../src/mediaTypes.js';
|
|
2
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
|
+
import { triggerPixel, deepSetValue } from '../src/utils.js';
|
|
4
|
+
import { ortbConverter } from '../libraries/ortbConverter/converter.js';
|
|
5
|
+
import {config} from '../src/config.js';
|
|
6
|
+
|
|
7
|
+
export const SSMAS_CODE = 'ssmas';
|
|
8
|
+
const SSMAS_SERVER = 'ads.ssmas.com';
|
|
9
|
+
export const SSMAS_ENDPOINT = `http://${SSMAS_SERVER}/ortb`;
|
|
10
|
+
const SYNC_URL = `http://sync.ssmas.com/user_sync`;
|
|
11
|
+
export const SSMAS_REQUEST_METHOD = 'POST';
|
|
12
|
+
const GDPR_VENDOR_ID = 1183;
|
|
13
|
+
|
|
14
|
+
export const ssmasOrtbConverter = ortbConverter({
|
|
15
|
+
context: {
|
|
16
|
+
netRevenue: true,
|
|
17
|
+
ttl: 300,
|
|
18
|
+
mediaType: BANNER,
|
|
19
|
+
},
|
|
20
|
+
imp(buildImp, bidRequest, context) {
|
|
21
|
+
const imp = buildImp(bidRequest, context);
|
|
22
|
+
deepSetValue(imp, 'ext.placementId', bidRequest.params.placementId);
|
|
23
|
+
return imp;
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const spec = {
|
|
28
|
+
code: SSMAS_CODE,
|
|
29
|
+
supportedMediaTypes: [BANNER],
|
|
30
|
+
gvlid: GDPR_VENDOR_ID,
|
|
31
|
+
|
|
32
|
+
isBidRequestValid: (bid) => {
|
|
33
|
+
return !!bid.params.placementId && !!bid.bidId && bid.bidder === SSMAS_CODE;
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
buildRequests: (bidRequests, bidderRequest) => {
|
|
37
|
+
const data = ssmasOrtbConverter.toORTB({ bidRequests, bidderRequest });
|
|
38
|
+
|
|
39
|
+
const options = {
|
|
40
|
+
contentType: 'application/json',
|
|
41
|
+
withCredentials: false,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
data.imp && data.imp.forEach(imp => {
|
|
45
|
+
if (imp.ext && imp.ext.placementId) {
|
|
46
|
+
imp.tagId = imp.ext.placementId;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
data.regs = data.regs || {};
|
|
51
|
+
data.regs.ext = data.regs.ext || {};
|
|
52
|
+
|
|
53
|
+
if (bidderRequest.gdprConsent) {
|
|
54
|
+
data.regs.ext.consent = bidderRequest.gdprConsent.consentString;
|
|
55
|
+
data.regs.ext.gdpr = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
|
|
56
|
+
}
|
|
57
|
+
if (bidderRequest.uspConsent) {
|
|
58
|
+
data.regs.ext.consent = bidderRequest.uspConsent.consentString;
|
|
59
|
+
data.regs.ext.ccpa = 1;
|
|
60
|
+
}
|
|
61
|
+
if (config.getConfig('coppa') === true) {
|
|
62
|
+
data.regs.coppa = 1;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return [
|
|
66
|
+
{
|
|
67
|
+
method: SSMAS_REQUEST_METHOD,
|
|
68
|
+
url: SSMAS_ENDPOINT,
|
|
69
|
+
data,
|
|
70
|
+
options,
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
interpretResponse: (serverResponse, bidRequest) => {
|
|
76
|
+
const bids = ssmasOrtbConverter.fromORTB({
|
|
77
|
+
response: serverResponse.body,
|
|
78
|
+
request: bidRequest.data,
|
|
79
|
+
}).bids;
|
|
80
|
+
|
|
81
|
+
return bids.filter((bid) => {
|
|
82
|
+
return bid.cpm > 0;
|
|
83
|
+
});
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
onBidWon: (bid) => {
|
|
87
|
+
if (bid.burl) {
|
|
88
|
+
triggerPixel(bid.burl);
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
getUserSyncs: (
|
|
93
|
+
syncOptions,
|
|
94
|
+
serverResponses,
|
|
95
|
+
gdprConsent,
|
|
96
|
+
uspConsent
|
|
97
|
+
) => {
|
|
98
|
+
const syncs = [];
|
|
99
|
+
|
|
100
|
+
let params = ['pbjs=1'];
|
|
101
|
+
|
|
102
|
+
if (gdprConsent) {
|
|
103
|
+
if (typeof gdprConsent.gdprApplies === 'boolean') {
|
|
104
|
+
params.push(`gdpr=${Boolean(gdprConsent.gdprApplies)}&gdpr_consent=${
|
|
105
|
+
gdprConsent.consentString
|
|
106
|
+
}`);
|
|
107
|
+
} else {
|
|
108
|
+
params.push(`gdpr_consent=${gdprConsent.consentString}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (uspConsent && uspConsent.consentString) {
|
|
113
|
+
params.push(`ccpa_consent=${uspConsent.consentString}`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (syncOptions.pixelEnabled && serverResponses.length > 0) {
|
|
117
|
+
syncs.push({
|
|
118
|
+
type: 'image',
|
|
119
|
+
url: `${SYNC_URL}?${params.join('&')}`
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return syncs;
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
registerBidder(spec);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
Module Name: SSMas Bidder Adapter
|
|
4
|
+
Module Type: Bidder Adapter
|
|
5
|
+
Maintainer: hzchen.work@gmail.com
|
|
6
|
+
|
|
7
|
+
# Description
|
|
8
|
+
|
|
9
|
+
Module that connects to Sem Seo & Mas header bidding endpoint to fetch bids.
|
|
10
|
+
Supports Banner
|
|
11
|
+
Supported currencies: EUR
|
|
12
|
+
|
|
13
|
+
Required parameters:
|
|
14
|
+
- placement id
|
|
15
|
+
|
|
16
|
+
# Test Parameters
|
|
17
|
+
```
|
|
18
|
+
var adUnits = [
|
|
19
|
+
// Banner adUnit
|
|
20
|
+
{
|
|
21
|
+
code: 'banner-div',
|
|
22
|
+
mediaTypes: {
|
|
23
|
+
banner: {
|
|
24
|
+
sizes: [[300, 250]]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
bids: [{
|
|
28
|
+
bidder: 'ssmas',
|
|
29
|
+
params: {
|
|
30
|
+
placementId: "10336"
|
|
31
|
+
}
|
|
32
|
+
}]
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
```
|
|
@@ -12,13 +12,14 @@ const SYNC_URL = 'https://ssp.wp.pl/bidder/usersync';
|
|
|
12
12
|
const NOTIFY_URL = 'https://ssp.wp.pl/bidder/notify';
|
|
13
13
|
const GVLID = 676;
|
|
14
14
|
const TMAX = 450;
|
|
15
|
-
const BIDDER_VERSION = '5.
|
|
15
|
+
const BIDDER_VERSION = '5.9';
|
|
16
16
|
const DEFAULT_CURRENCY = 'PLN';
|
|
17
17
|
const W = window;
|
|
18
18
|
const { navigator } = W;
|
|
19
19
|
const oneCodeDetection = {};
|
|
20
20
|
const adUnitsCalled = {};
|
|
21
21
|
const adSizesCalled = {};
|
|
22
|
+
const bidderRequestsMap = {};
|
|
22
23
|
const pageView = {};
|
|
23
24
|
var consentApiVersion;
|
|
24
25
|
|
|
@@ -93,19 +94,17 @@ const getNotificationPayload = bidData => {
|
|
|
93
94
|
const bids = isArray(bidData) ? bidData : [bidData];
|
|
94
95
|
if (bids.length > 0) {
|
|
95
96
|
let result = {
|
|
96
|
-
requestId: undefined,
|
|
97
97
|
siteId: [],
|
|
98
98
|
slotId: [],
|
|
99
99
|
tagid: [],
|
|
100
100
|
}
|
|
101
101
|
bids.forEach(bid => {
|
|
102
|
-
const { adUnitCode,
|
|
102
|
+
const { adUnitCode, cpm, creativeId, meta, mediaType, params: bidParams, bidderRequestId, requestId, timeout } = bid;
|
|
103
103
|
const params = unpackParams(bidParams);
|
|
104
104
|
|
|
105
105
|
// basic notification data
|
|
106
106
|
const bidBasicData = {
|
|
107
|
-
|
|
108
|
-
requestId: auctionId || result.requestId,
|
|
107
|
+
requestId: bidderRequestId || bidderRequestsMap[requestId],
|
|
109
108
|
timeout: timeout || result.timeout,
|
|
110
109
|
pvid: pageView.id,
|
|
111
110
|
}
|
|
@@ -127,12 +126,14 @@ const getNotificationPayload = bidData => {
|
|
|
127
126
|
|
|
128
127
|
if (cpm) {
|
|
129
128
|
// non-empty bid data
|
|
129
|
+
const { advertiserDomains = [], networkName, pricepl } = meta;
|
|
130
130
|
const bidNonEmptyData = {
|
|
131
131
|
cpm,
|
|
132
|
-
cpmpl:
|
|
132
|
+
cpmpl: pricepl,
|
|
133
133
|
creativeId,
|
|
134
|
-
adomain:
|
|
135
|
-
|
|
134
|
+
adomain: advertiserDomains[0],
|
|
135
|
+
adtype: mediaType,
|
|
136
|
+
networkName,
|
|
136
137
|
}
|
|
137
138
|
result = { ...result, ...bidNonEmptyData }
|
|
138
139
|
}
|
|
@@ -447,10 +448,15 @@ var mapVideo = (slot, videoFromBid) => {
|
|
|
447
448
|
};
|
|
448
449
|
|
|
449
450
|
const mapImpression = slot => {
|
|
450
|
-
const { adUnitCode, bidId, params = {}, ortb2Imp = {} } = slot;
|
|
451
|
+
const { adUnitCode, bidderRequestId, bidId, params = {}, ortb2Imp = {} } = slot;
|
|
451
452
|
const { id, siteId, video } = params;
|
|
452
453
|
const { ext = {} } = ortb2Imp;
|
|
453
454
|
|
|
455
|
+
/*
|
|
456
|
+
store bidId <-> bidderRequestId mapping for bidWon notification
|
|
457
|
+
*/
|
|
458
|
+
bidderRequestsMap[bidId] = bidderRequestId;
|
|
459
|
+
|
|
454
460
|
/*
|
|
455
461
|
check max size for this imp, and check/store number this size was called (for current view)
|
|
456
462
|
send this info as ext.pbsize
|
|
@@ -494,15 +500,20 @@ const isNativeAd = bid => {
|
|
|
494
500
|
return bid.admNative || (bid.adm && bid.adm.match(xmlTester));
|
|
495
501
|
}
|
|
496
502
|
|
|
497
|
-
const parseNative = (nativeData) => {
|
|
503
|
+
const parseNative = (nativeData, adUnitCode) => {
|
|
498
504
|
const { link = {}, imptrackers: impressionTrackers, jstracker } = nativeData;
|
|
499
505
|
const { url: clickUrl, clicktrackers: clickTrackers = [] } = link;
|
|
506
|
+
const macroReplacer = tracker => tracker.replace(new RegExp('%native_dom_id%', 'g'), adUnitCode);
|
|
507
|
+
let javascriptTrackers = isArray(jstracker) ? jstracker : jstracker && [jstracker];
|
|
508
|
+
|
|
509
|
+
// replace known macros in js trackers
|
|
510
|
+
javascriptTrackers = javascriptTrackers && javascriptTrackers.map(macroReplacer);
|
|
500
511
|
|
|
501
512
|
const result = {
|
|
502
513
|
clickUrl,
|
|
503
514
|
clickTrackers,
|
|
504
515
|
impressionTrackers,
|
|
505
|
-
javascriptTrackers
|
|
516
|
+
javascriptTrackers,
|
|
506
517
|
};
|
|
507
518
|
|
|
508
519
|
nativeData.assets.forEach(asset => {
|
|
@@ -627,6 +638,8 @@ const spec = {
|
|
|
627
638
|
return true;
|
|
628
639
|
},
|
|
629
640
|
buildRequests(validBidRequests, bidderRequest) {
|
|
641
|
+
logWarn('DEBUG: buildRequests', bidderRequest.auctionId, bidderRequest.bidderRequestId);
|
|
642
|
+
|
|
630
643
|
// convert Native ORTB definition to old-style prebid native definition
|
|
631
644
|
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
|
|
632
645
|
|
|
@@ -644,7 +657,7 @@ const spec = {
|
|
|
644
657
|
const ref = bidderRequest.refererInfo.ref;
|
|
645
658
|
|
|
646
659
|
const payload = {
|
|
647
|
-
id: bidderRequest.
|
|
660
|
+
id: bidderRequest.bidderRequestId,
|
|
648
661
|
site: {
|
|
649
662
|
id: siteId ? `${siteId}` : undefined,
|
|
650
663
|
publisher: publisherId ? { id: publisherId } : undefined,
|
|
@@ -725,6 +738,7 @@ const spec = {
|
|
|
725
738
|
|
|
726
739
|
if (bidRequest && site.id && !strIncludes(site.id, 'bidid')) {
|
|
727
740
|
// found a matching request; add this bid
|
|
741
|
+
const { adUnitCode } = bidRequest;
|
|
728
742
|
|
|
729
743
|
// store site data for future notification
|
|
730
744
|
oneCodeDetection[bidId] = [site.id, site.slot];
|
|
@@ -760,7 +774,7 @@ const spec = {
|
|
|
760
774
|
// check native object
|
|
761
775
|
try {
|
|
762
776
|
const nativeData = serverBid.admNative || JSON.parse(serverBid.adm).native;
|
|
763
|
-
bid.native = parseNative(nativeData);
|
|
777
|
+
bid.native = parseNative(nativeData, adUnitCode);
|
|
764
778
|
bid.width = 1;
|
|
765
779
|
bid.height = 1;
|
|
766
780
|
} catch (err) {
|
|
@@ -807,6 +821,15 @@ const spec = {
|
|
|
807
821
|
}
|
|
808
822
|
},
|
|
809
823
|
|
|
824
|
+
onBidViewable(bid) {
|
|
825
|
+
const payload = getNotificationPayload(bid);
|
|
826
|
+
if (payload) {
|
|
827
|
+
payload.event = 'bidViewable';
|
|
828
|
+
sendNotification(payload);
|
|
829
|
+
return payload;
|
|
830
|
+
}
|
|
831
|
+
},
|
|
832
|
+
|
|
810
833
|
onBidWon(bid) {
|
|
811
834
|
const payload = getNotificationPayload(bid);
|
|
812
835
|
if (payload) {
|
package/modules/tapadIdSystem.js
CHANGED
package/modules/tncIdSystem.js
CHANGED
|
@@ -189,6 +189,11 @@ function _buildPostBody(bidRequests, bidderRequest) {
|
|
|
189
189
|
if (bidderRequest?.ortb2?.regs?.gpp) {
|
|
190
190
|
data.regs = Object.assign({}, bidderRequest.ortb2.regs);
|
|
191
191
|
}
|
|
192
|
+
|
|
193
|
+
if (bidderRequest?.ortb2) {
|
|
194
|
+
data.ext.ortb2 = Object.assign({}, bidderRequest.ortb2);
|
|
195
|
+
}
|
|
196
|
+
|
|
192
197
|
return data;
|
|
193
198
|
}
|
|
194
199
|
|
package/modules/uid2IdSystem.js
CHANGED
|
@@ -83,6 +83,20 @@ export const uid2IdSubmodule = {
|
|
|
83
83
|
_logInfo(`UID2 getId returned`, result);
|
|
84
84
|
return result;
|
|
85
85
|
},
|
|
86
|
+
eids: {
|
|
87
|
+
'uid2': {
|
|
88
|
+
source: 'uidapi.com',
|
|
89
|
+
atype: 3,
|
|
90
|
+
getValue: function(data) {
|
|
91
|
+
return data.id;
|
|
92
|
+
},
|
|
93
|
+
getUidExt: function(data) {
|
|
94
|
+
if (data.ext) {
|
|
95
|
+
return data.ext;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
},
|
|
86
100
|
};
|
|
87
101
|
|
|
88
102
|
function decodeImpl(value) {
|
|
@@ -67,6 +67,17 @@ export const unifiedIdSubmodule = {
|
|
|
67
67
|
ajax(url, callbacks, undefined, {method: 'GET', withCredentials: true});
|
|
68
68
|
};
|
|
69
69
|
return {callback: resp};
|
|
70
|
+
},
|
|
71
|
+
eids: {
|
|
72
|
+
'tdid': {
|
|
73
|
+
source: 'adserver.org',
|
|
74
|
+
atype: 1,
|
|
75
|
+
getUidExt: function() {
|
|
76
|
+
return {
|
|
77
|
+
rtiPartner: 'TDID'
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
},
|
|
70
81
|
}
|
|
71
82
|
};
|
|
72
83
|
|