prebid.js 7.52.0 → 7.54.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/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adhashBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.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/airgridRtdProvider.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/beopBidAdapter.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/conceptxBidAdapter.js +1 -0
- package/dist/concertBidAdapter.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/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/eskimiBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -0
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freepassIdSystem.js +1 -0
- 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 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -0
- package/dist/id5IdSystem.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/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/limelightDigitalBidAdapter.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 +153 -148
- 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/outbrainBidAdapter.js +1 -1
- package/dist/oxxionRtdProvider.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/proxistoreBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.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/richaudienceBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/schain.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/sirdataRtdProvider.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/stroeerCoreBidAdapter.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/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/uid2IdSystem_shared.js +1 -0
- 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/videojsVideoProvider.js +1 -1
- package/dist/viouslyBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/weboramaRtdProvider.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldlabBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/integrationExamples/gpt/userId_example.html +20 -6
- package/modules/.submodules.json +3 -1
- package/modules/1plusXRtdProvider.js +31 -60
- package/modules/adagioBidAdapter.js +86 -24
- package/modules/adhashBidAdapter.js +56 -34
- package/modules/adkernelBidAdapter.js +2 -2
- package/modules/airgridRtdProvider.js +11 -12
- package/modules/asoBidAdapter.js +2 -1
- package/modules/beopBidAdapter.js +6 -0
- package/modules/conceptxBidAdapter.js +70 -0
- package/modules/conceptxBidAdapter.md +36 -0
- package/modules/criteoBidAdapter.js +9 -2
- package/modules/eskimiBidAdapter.js +171 -41
- package/modules/eskimiBidAdapter.md +35 -16
- package/modules/euidIdSystem.js +121 -0
- package/modules/euidIdSystem.md +131 -0
- package/modules/freepassIdSystem.js +61 -0
- package/modules/freepassIdSystem.md +47 -0
- package/modules/greenbidsAnalyticsAdapter.js +1 -1
- package/modules/hypelabBidAdapter.js +153 -0
- package/modules/hypelabBidAdapter.md +38 -0
- package/modules/id5IdSystem.js +3 -5
- package/modules/ixBidAdapter.js +12 -1
- package/modules/limelightDigitalBidAdapter.js +1 -1
- package/modules/logicadBidAdapter.js +14 -1
- package/modules/mediasquareBidAdapter.js +13 -5
- package/modules/nexx360BidAdapter.js +1 -0
- package/modules/oxxionRtdProvider.js +7 -29
- package/modules/pairIdSystem.js +10 -5
- package/modules/proxistoreBidAdapter.js +11 -14
- package/modules/pubmaticAnalyticsAdapter.js +31 -8
- package/modules/richaudienceBidAdapter.js +10 -1
- package/modules/riseBidAdapter.js +1 -1
- package/modules/schain.js +2 -2
- package/modules/sirdataRtdProvider.js +73 -146
- package/modules/sovrnBidAdapter.js +4 -1
- package/modules/stroeerCoreBidAdapter.js +55 -6
- package/modules/teadsBidAdapter.js +0 -1
- package/modules/topicsFpdModule.js +4 -1
- package/modules/uid2IdSystem.js +27 -210
- package/modules/uid2IdSystem.md +104 -23
- package/modules/uid2IdSystem_shared.js +232 -0
- package/modules/userId/eids.js +8 -0
- package/modules/userId/userId.md +2 -1
- package/modules/videojsVideoProvider.js +2 -0
- package/modules/viouslyBidAdapter.js +2 -2
- package/modules/vrtcalBidAdapter.js +5 -0
- package/modules/weboramaRtdProvider.js +25 -95
- package/modules/weboramaRtdProvider.md +4 -4
- package/modules/yieldlabBidAdapter.js +23 -14
- package/modules/zeta_global_sspBidAdapter.js +27 -22
- package/package.json +1 -1
- package/src/adloader.js +1 -0
- package/test/spec/modules/1plusXRtdProvider_spec.js +98 -149
- package/test/spec/modules/adagioBidAdapter_spec.js +46 -17
- package/test/spec/modules/adhashBidAdapter_spec.js +18 -2
- package/test/spec/modules/airgridRtdProvider_spec.js +2 -0
- package/test/spec/modules/beopBidAdapter_spec.js +24 -0
- package/test/spec/modules/conceptxBidAdapter_spec.js +136 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +1 -1
- package/test/spec/modules/eids_spec.js +15 -0
- package/test/spec/modules/eskimiBidAdapter_spec.js +264 -112
- package/test/spec/modules/euidIdSystem_spec.js +130 -0
- package/test/spec/modules/freepassIdSystem_spec.js +186 -0
- package/test/spec/modules/hypelabBidAdapter_spec.js +281 -0
- package/test/spec/modules/id5IdSystem_spec.js +10 -3
- package/test/spec/modules/ixBidAdapter_spec.js +30 -0
- package/test/spec/modules/logicadBidAdapter_spec.js +122 -2
- package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -0
- package/test/spec/modules/oxxionRtdProvider_spec.js +3 -2
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +7 -0
- package/test/spec/modules/richaudienceBidAdapter_spec.js +44 -0
- package/test/spec/modules/schain_spec.js +9 -0
- package/test/spec/modules/sirdataRtdProvider_spec.js +110 -17
- package/test/spec/modules/sovrnBidAdapter_spec.js +13 -0
- package/test/spec/modules/stroeerCoreBidAdapter_spec.js +151 -6
- package/test/spec/modules/teadsBidAdapter_spec.js +7 -0
- package/test/spec/modules/uid2IdSystem_helpers.js +70 -0
- package/test/spec/modules/uid2IdSystem_spec.js +131 -86
- package/test/spec/modules/userId_spec.js +16 -12
- package/test/spec/modules/vrtcalBidAdapter_spec.js +9 -2
- package/test/spec/modules/weboramaRtdProvider_spec.js +331 -205
- package/test/spec/modules/yieldlabBidAdapter_spec.js +42 -2
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +200 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
2
|
import {BANNER, NATIVE} from '../src/mediaTypes.js';
|
|
3
3
|
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
|
|
4
|
+
import { deepAccess } from '../src/utils.js';
|
|
4
5
|
|
|
5
6
|
const BIDDER_CODE = 'logicad';
|
|
6
7
|
const ENDPOINT_URL = 'https://pb.ladsp.com/adrequest/prebid';
|
|
@@ -52,7 +53,7 @@ export const spec = {
|
|
|
52
53
|
};
|
|
53
54
|
|
|
54
55
|
function newBidRequest(bid, bidderRequest) {
|
|
55
|
-
|
|
56
|
+
const data = {
|
|
56
57
|
auctionId: bid.auctionId,
|
|
57
58
|
bidderRequestId: bid.bidderRequestId,
|
|
58
59
|
bids: [{
|
|
@@ -69,6 +70,18 @@ function newBidRequest(bid, bidderRequest) {
|
|
|
69
70
|
auctionStartTime: bidderRequest.auctionStart,
|
|
70
71
|
eids: bid.userIdAsEids,
|
|
71
72
|
};
|
|
73
|
+
|
|
74
|
+
const sua = deepAccess(bid, 'ortb2.device.sua');
|
|
75
|
+
if (sua) {
|
|
76
|
+
data.sua = sua;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const userData = deepAccess(bid, 'ortb2.user.data');
|
|
80
|
+
if (userData) {
|
|
81
|
+
data.userData = userData;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return data;
|
|
72
85
|
}
|
|
73
86
|
|
|
74
87
|
registerBidder(spec);
|
|
@@ -127,6 +127,9 @@ export const spec = {
|
|
|
127
127
|
'advertiserDomains': value['adomain']
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
|
+
if ('context' in value) {
|
|
131
|
+
bidResponse['mediasquare']['context'] = value['context'];
|
|
132
|
+
}
|
|
130
133
|
if ('match' in value) {
|
|
131
134
|
bidResponse['mediasquare']['match'] = value['match'];
|
|
132
135
|
}
|
|
@@ -171,15 +174,20 @@ export const spec = {
|
|
|
171
174
|
*/
|
|
172
175
|
onBidWon: function(bid) {
|
|
173
176
|
// fires a pixel to confirm a winning bid
|
|
177
|
+
if (bid.hasOwnProperty('mediaType') && bid.mediaType == 'video') {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
174
180
|
let params = { pbjs: '$prebid.version$', referer: encodeURIComponent(getRefererInfo().page || getRefererInfo().topmostLocation) };
|
|
175
181
|
let endpoint = document.location.search.match(/msq_test=true/) ? BIDDER_URL_TEST : BIDDER_URL_PROD;
|
|
176
|
-
let paramsToSearchFor = ['
|
|
182
|
+
let paramsToSearchFor = ['bidder', 'code', 'match', 'hasConsent', 'context'];
|
|
177
183
|
if (bid.hasOwnProperty('mediasquare')) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
184
|
+
for (let i = 0; i < paramsToSearchFor.length; i++) {
|
|
185
|
+
if (bid['mediasquare'].hasOwnProperty(paramsToSearchFor[i])) {
|
|
186
|
+
params[paramsToSearchFor[i]] = bid['mediasquare'][paramsToSearchFor[i]];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
182
189
|
};
|
|
190
|
+
paramsToSearchFor = ['cpm', 'size', 'mediaType', 'currency', 'creativeId', 'adUnitCode', 'timeToRespond', 'requestId', 'auctionId', 'originalCpm', 'originalCurrency'];
|
|
183
191
|
for (let i = 0; i < paramsToSearchFor.length; i++) {
|
|
184
192
|
if (bid.hasOwnProperty(paramsToSearchFor[i])) {
|
|
185
193
|
params[paramsToSearchFor[i]] = bid[paramsToSearchFor[i]];
|
|
@@ -10,8 +10,8 @@ const allAdUnits = [];
|
|
|
10
10
|
export const oxxionSubmodule = {
|
|
11
11
|
name: 'oxxionRtd',
|
|
12
12
|
init: init,
|
|
13
|
-
onAuctionEndEvent: onAuctionEnd,
|
|
14
13
|
getBidRequestData: getAdUnits,
|
|
14
|
+
onBidResponseEvent: insertVideoTracking,
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
function init(config, userConsent) {
|
|
@@ -32,8 +32,10 @@ function getAdUnits(reqBidsConfigObj, callback, config, userConsent) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function insertVideoTracking(bidResponse, config,
|
|
35
|
+
function insertVideoTracking(bidResponse, config, userConsent) {
|
|
36
|
+
// this should only be do for video bids
|
|
36
37
|
if (bidResponse.mediaType === 'video') {
|
|
38
|
+
let maxCpm = 0;
|
|
37
39
|
const trackingUrl = getImpUrl(config, bidResponse, maxCpm);
|
|
38
40
|
if (!trackingUrl) {
|
|
39
41
|
return;
|
|
@@ -42,7 +44,8 @@ function insertVideoTracking(bidResponse, config, maxCpm) {
|
|
|
42
44
|
if (bidResponse.vastUrl) {
|
|
43
45
|
bidResponse.vastImpUrl = bidResponse.vastImpUrl
|
|
44
46
|
? trackingUrl + '&url=' + encodeURI(bidResponse.vastImpUrl)
|
|
45
|
-
: trackingUrl
|
|
47
|
+
: trackingUrl;
|
|
48
|
+
logInfo(LOG_PREFIX + 'insert into vastImpUrl for adId ' + bidResponse.adId);
|
|
46
49
|
}
|
|
47
50
|
// Vast XML document
|
|
48
51
|
if (bidResponse.vastXml !== undefined) {
|
|
@@ -87,33 +90,8 @@ function getImpUrl(config, data, maxCpm) {
|
|
|
87
90
|
}
|
|
88
91
|
return acc;
|
|
89
92
|
}, '');
|
|
90
|
-
const cpmIncrement =
|
|
93
|
+
const cpmIncrement = 0.0;
|
|
91
94
|
return trackingImpUrl + 'cpmIncrement=' + cpmIncrement + '&context=' + context;
|
|
92
95
|
}
|
|
93
96
|
|
|
94
|
-
function onAuctionEnd(auctionDetails, config, userConsent) {
|
|
95
|
-
const transactionsToCheck = {}
|
|
96
|
-
auctionDetails.adUnits.forEach(adunit => {
|
|
97
|
-
if (config.params.contexts.includes(deepAccess(adunit, 'mediaTypes.video.context'))) {
|
|
98
|
-
transactionsToCheck[adunit.transactionId] = {'bids': {}, 'maxCpm': 0.0, 'secondMaxCpm': 0.0};
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
for (const key in auctionDetails.bidsReceived) {
|
|
102
|
-
if (auctionDetails.bidsReceived[key].transactionId in transactionsToCheck) {
|
|
103
|
-
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['bids'][auctionDetails.bidsReceived[key].adId] = {'key': key, 'cpm': auctionDetails.bidsReceived[key].cpm};
|
|
104
|
-
if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm']) {
|
|
105
|
-
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'];
|
|
106
|
-
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'] = auctionDetails.bidsReceived[key].cpm;
|
|
107
|
-
} else if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm']) {
|
|
108
|
-
transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = auctionDetails.bidsReceived[key].cpm;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
Object.keys(transactionsToCheck).forEach(transaction => {
|
|
113
|
-
Object.keys(transactionsToCheck[transaction]['bids']).forEach(bid => {
|
|
114
|
-
insertVideoTracking(auctionDetails.bidsReceived[transactionsToCheck[transaction]['bids'][bid].key], config, transactionsToCheck[transaction].secondMaxCpm);
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
97
|
submodule('realTimeData', oxxionSubmodule);
|
package/modules/pairIdSystem.js
CHANGED
|
@@ -32,11 +32,16 @@ export const pairIdSubmodule = {
|
|
|
32
32
|
*/
|
|
33
33
|
name: MODULE_NAME,
|
|
34
34
|
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
* used to specify vendor id
|
|
36
|
+
* @type {number}
|
|
37
|
+
*/
|
|
38
|
+
gvlid: 755,
|
|
39
|
+
/**
|
|
40
|
+
* decode the stored id value for passing to bid requests
|
|
41
|
+
* @function
|
|
42
|
+
* @param { string | undefined } value
|
|
43
|
+
* @returns {{pairId:string} | undefined }
|
|
44
|
+
*/
|
|
40
45
|
decode(value) {
|
|
41
46
|
return value && Array.isArray(value) ? {'pairId': value} : undefined
|
|
42
47
|
},
|
|
@@ -88,23 +88,20 @@ function _createServerRequest(bidRequests, bidderRequest) {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
function _assignSegments(bid) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
bid.ortb2.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
bid.ortb2.
|
|
99
|
-
|
|
100
|
-
contextual_categories: {},
|
|
101
|
-
}
|
|
102
|
-
);
|
|
91
|
+
var segs = (bid.ortb2 && bid.ortb2.user && bid.ortb2.user.ext && bid.ortb2.user.ext.data && bid.ortb2.user.ext.data.sd_rtd && bid.ortb2.user.ext.data.sd_rtd.segments ? bid.ortb2.user.ext.data.sd_rtd.segments : []);
|
|
92
|
+
var cats = {};
|
|
93
|
+
if (bid.ortb2 && bid.ortb2.site && bid.ortb2.site.ext && bid.ortb2.site.ext.data && bid.ortb2.site.ext.data.sd_rtd) {
|
|
94
|
+
if (bid.ortb2.site.ext.data.sd_rtd.categories) {
|
|
95
|
+
segs = segs.concat(bid.ortb2.site.ext.data.sd_rtd.categories);
|
|
96
|
+
}
|
|
97
|
+
if (bid.ortb2.site.ext.data.sd_rtd.categories_score) {
|
|
98
|
+
cats = bid.ortb2.site.ext.data.sd_rtd.categories_score;
|
|
99
|
+
}
|
|
103
100
|
}
|
|
104
101
|
|
|
105
102
|
return {
|
|
106
|
-
segments:
|
|
107
|
-
contextual_categories:
|
|
103
|
+
segments: segs,
|
|
104
|
+
contextual_categories: cats
|
|
108
105
|
};
|
|
109
106
|
}
|
|
110
107
|
|
|
@@ -256,6 +256,10 @@ export function getMetadata(meta) {
|
|
|
256
256
|
return metaObj;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
+
function isS2SBidder(bidder) {
|
|
260
|
+
return (s2sBidders.indexOf(bidder) > -1) ? 1 : 0
|
|
261
|
+
}
|
|
262
|
+
|
|
259
263
|
function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
|
|
260
264
|
highestBid = (highestBid && highestBid.length > 0) ? highestBid[0] : null;
|
|
261
265
|
return Object.keys(adUnit.bids).reduce(function(partnerBids, bidId) {
|
|
@@ -275,7 +279,7 @@ function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
|
|
|
275
279
|
'l1': bid.bidResponse ? bid.clientLatencyTimeMs : 0,
|
|
276
280
|
'l2': 0,
|
|
277
281
|
'adv': bid.bidResponse ? getAdDomain(bid.bidResponse) || undefined : undefined,
|
|
278
|
-
'ss': (
|
|
282
|
+
'ss': isS2SBidder(bid.bidder),
|
|
279
283
|
't': (bid.status == ERROR && bid.error.code == TIMEOUT_ERROR) ? 1 : 0,
|
|
280
284
|
'wb': (highestBid && highestBid.adId === bid.adId ? 1 : 0),
|
|
281
285
|
'mi': bid.bidResponse ? (bid.bidResponse.mi || undefined) : undefined,
|
|
@@ -311,6 +315,14 @@ function getAdUnit(adUnits, adUnitId) {
|
|
|
311
315
|
return adUnits.filter(adUnit => (adUnit.divID && adUnit.divID == adUnitId) || (adUnit.code == adUnitId))[0];
|
|
312
316
|
}
|
|
313
317
|
|
|
318
|
+
function getTgId() {
|
|
319
|
+
var testGroupId = parseInt(config.getConfig('testGroupId') || 0);
|
|
320
|
+
if (testGroupId <= 15 && testGroupId >= 0) {
|
|
321
|
+
return testGroupId;
|
|
322
|
+
}
|
|
323
|
+
return 0;
|
|
324
|
+
}
|
|
325
|
+
|
|
314
326
|
function executeBidsLoggerCall(e, highestCpmBids) {
|
|
315
327
|
let auctionId = e.auctionId;
|
|
316
328
|
let referrer = config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '';
|
|
@@ -337,13 +349,7 @@ function executeBidsLoggerCall(e, highestCpmBids) {
|
|
|
337
349
|
outputObj['pid'] = '' + profileId;
|
|
338
350
|
outputObj['pdvid'] = '' + profileVersionId;
|
|
339
351
|
outputObj['dvc'] = {'plt': getDevicePlatform()};
|
|
340
|
-
outputObj['tgid'] = (
|
|
341
|
-
var testGroupId = parseInt(config.getConfig('testGroupId') || 0);
|
|
342
|
-
if (testGroupId <= 15 && testGroupId >= 0) {
|
|
343
|
-
return testGroupId;
|
|
344
|
-
}
|
|
345
|
-
return 0;
|
|
346
|
-
})();
|
|
352
|
+
outputObj['tgid'] = getTgId();
|
|
347
353
|
|
|
348
354
|
if (floorData) {
|
|
349
355
|
outputObj['fmv'] = floorData.floorRequestData ? floorData.floorRequestData.modelVersion || undefined : undefined;
|
|
@@ -391,6 +397,12 @@ function executeBidWonLoggerCall(auctionId, adUnitId) {
|
|
|
391
397
|
|
|
392
398
|
const adapterName = getAdapterNameForAlias(winningBid.adapterCode || winningBid.bidder);
|
|
393
399
|
let origAdUnit = getAdUnit(cache.auctions[auctionId].origAdUnits, adUnitId) || {};
|
|
400
|
+
let auctionCache = cache.auctions[auctionId];
|
|
401
|
+
let floorData = auctionCache.floorData;
|
|
402
|
+
let referrer = config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '';
|
|
403
|
+
let adv = winningBid.bidResponse ? getAdDomain(winningBid.bidResponse) || undefined : undefined;
|
|
404
|
+
let fskp = floorData ? (floorData.floorRequestData ? (floorData.floorRequestData.skipped == false ? 0 : 1) : undefined) : undefined;
|
|
405
|
+
|
|
394
406
|
let pixelURL = END_POINT_WIN_BID_LOGGER;
|
|
395
407
|
pixelURL += 'pubid=' + publisherId;
|
|
396
408
|
pixelURL += '&purl=' + enc(config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '');
|
|
@@ -407,6 +419,17 @@ function executeBidWonLoggerCall(auctionId, adUnitId) {
|
|
|
407
419
|
pixelURL += '&eg=' + enc(winningBid.bidResponse.bidGrossCpmUSD);
|
|
408
420
|
pixelURL += '&kgpv=' + enc(getValueForKgpv(winningBid, adUnitId));
|
|
409
421
|
pixelURL += '&piid=' + enc(winningBid.bidResponse.partnerImpId || EMPTY_STRING);
|
|
422
|
+
|
|
423
|
+
pixelURL += '&plt=' + enc(getDevicePlatform());
|
|
424
|
+
pixelURL += '&psz=' + enc((winningBid?.bidResponse?.dimensions?.width || '0') + 'x' +
|
|
425
|
+
(winningBid?.bidResponse?.dimensions?.height || '0'));
|
|
426
|
+
pixelURL += '&tgid=' + enc(getTgId());
|
|
427
|
+
adv && (pixelURL += '&adv=' + enc(adv));
|
|
428
|
+
pixelURL += '&orig=' + enc(getDomainFromUrl(referrer));
|
|
429
|
+
pixelURL += '&ss=' + enc(isS2SBidder(winningBid.bidder));
|
|
430
|
+
(fskp != undefined) && (pixelURL += '&fskp=' + enc(fskp));
|
|
431
|
+
pixelURL += '&af=' + enc(winningBid.bidResponse ? (winningBid.bidResponse.mediaType || undefined) : undefined);
|
|
432
|
+
|
|
410
433
|
ajax(
|
|
411
434
|
pixelURL,
|
|
412
435
|
null,
|
|
@@ -54,7 +54,8 @@ export const spec = {
|
|
|
54
54
|
scr_rsl: raiGetResolution(),
|
|
55
55
|
cpuc: (typeof window.navigator != 'undefined' ? window.navigator.hardwareConcurrency : null),
|
|
56
56
|
kws: (!isEmpty(bid.params.keywords) ? bid.params.keywords : null),
|
|
57
|
-
schain: bid.schain
|
|
57
|
+
schain: bid.schain,
|
|
58
|
+
gpid: raiSetPbAdSlot(bid)
|
|
58
59
|
};
|
|
59
60
|
|
|
60
61
|
// TODO: is 'page' the right value here?
|
|
@@ -283,6 +284,14 @@ function raiGetResolution() {
|
|
|
283
284
|
return resolution;
|
|
284
285
|
}
|
|
285
286
|
|
|
287
|
+
function raiSetPbAdSlot(bid) {
|
|
288
|
+
let pbAdSlot = '';
|
|
289
|
+
if (deepAccess(bid, 'ortb2Imp.ext.data.pbadslot') != null) {
|
|
290
|
+
pbAdSlot = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot')
|
|
291
|
+
}
|
|
292
|
+
return pbAdSlot
|
|
293
|
+
}
|
|
294
|
+
|
|
286
295
|
function raiGetSyncInclude(config) {
|
|
287
296
|
try {
|
|
288
297
|
let raConfig = null;
|
|
@@ -417,7 +417,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
|
|
|
417
417
|
device_type: getDeviceType(navigator.userAgent),
|
|
418
418
|
ua: navigator.userAgent,
|
|
419
419
|
is_wrapper: !!generalBidParams.isWrapper,
|
|
420
|
-
session_id: generalBidParams.sessionId || getBidIdParameter('
|
|
420
|
+
session_id: generalBidParams.sessionId || getBidIdParameter('bidderRequestId', generalObject),
|
|
421
421
|
tmax: timeout
|
|
422
422
|
};
|
|
423
423
|
|
package/modules/schain.js
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
isInteger,
|
|
11
11
|
_each,
|
|
12
12
|
logWarn,
|
|
13
|
-
deepAccess, deepSetValue
|
|
13
|
+
deepAccess, deepSetValue, deepClone
|
|
14
14
|
} from '../src/utils.js';
|
|
15
15
|
import {registerOrtbProcessor, REQUEST} from '../src/pbjsORTB.js';
|
|
16
16
|
|
|
@@ -180,7 +180,7 @@ export function makeBidRequestsHook(fn, bidderRequests) {
|
|
|
180
180
|
bidderRequest.bids.forEach(bid => {
|
|
181
181
|
let result = resolveSchainConfig(schainConfig, bidder);
|
|
182
182
|
if (result) {
|
|
183
|
-
bid.schain = result;
|
|
183
|
+
bid.schain = deepClone(result);
|
|
184
184
|
}
|
|
185
185
|
});
|
|
186
186
|
});
|