diff --git a/modules/33acrossBidAdapter.js b/modules/33acrossBidAdapter.js
index e99aa727a87..26fc0a11fd5 100644
--- a/modules/33acrossBidAdapter.js
+++ b/modules/33acrossBidAdapter.js
@@ -1,19 +1,19 @@
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { config } from '../src/config.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {config} from '../src/config.js';
import {
deepAccess,
- uniques,
- isArray,
+ getWindowSelf,
getWindowTop,
+ isArray,
isGptPubadsDefined,
isSlotMatchingAdUnitCode,
logInfo,
logWarn,
- getWindowSelf,
mergeDeep,
- pick
+ pick,
+ uniques
} from '../src/utils.js';
-import { BANNER, VIDEO } from '../src/mediaTypes.js';
+import {BANNER, VIDEO} from '../src/mediaTypes.js';
// **************************** UTILS *************************** //
const BIDDER_CODE = '33across';
@@ -183,7 +183,8 @@ function buildRequests(bidRequests, bidderRequest) {
uspConsent,
pageUrl,
referer,
- ttxSettings
+ ttxSettings,
+ bidderRequest,
})
)
}
@@ -246,7 +247,7 @@ function _getMRAKey(bidRequest) {
}
// Infer the necessary data from valid bid for a minimal ttxRequest and create HTTP request
-function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, referer, ttxSettings }) {
+function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, referer, ttxSettings, bidderRequest }) {
const ttxRequest = {};
const firstBidRequest = bidRequests[0];
const { siteId, test } = firstBidRequest.params;
@@ -271,7 +272,7 @@ function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageU
ttxRequest.site.ref = referer;
}
- ttxRequest.id = firstBidRequest.auctionId;
+ ttxRequest.id = bidderRequest?.bidderRequestId;
if (gdprConsent.consentString) {
ttxRequest.user = setExtensions(ttxRequest.user, {
diff --git a/modules/adWMGBidAdapter.js b/modules/adWMGBidAdapter.js
index 12dc36d694c..36935e80d3b 100644
--- a/modules/adWMGBidAdapter.js
+++ b/modules/adWMGBidAdapter.js
@@ -59,11 +59,12 @@ export const spec = {
}
const request = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
requestId: bidRequest.bidId,
bidRequestsCount: bidRequest.bidRequestsCount,
bidderRequestId: bidRequest.bidderRequestId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
referrer: referrer,
timeout: timeout,
adUnit: adUnit,
diff --git a/modules/adagioBidAdapter.js b/modules/adagioBidAdapter.js
index 86021d2a90c..fc3ce0445e5 100644
--- a/modules/adagioBidAdapter.js
+++ b/modules/adagioBidAdapter.js
@@ -866,6 +866,7 @@ function storeRequestInAdagioNS(bidRequest) {
bidder: bidRequest.bidder,
params: bidRequest.params // use the updated bid.params object with auto-detected params
}],
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
pageviewId: internal.getPageviewId(),
printNumber,
diff --git a/modules/adbookpspBidAdapter.js b/modules/adbookpspBidAdapter.js
index 917d18e9fae..cb03f2ffc17 100644
--- a/modules/adbookpspBidAdapter.js
+++ b/modules/adbookpspBidAdapter.js
@@ -203,7 +203,7 @@ function buildRegs(bidderRequest) {
function buildSource(bidRequests, bidderRequest) {
const source = {
fd: 1,
- tid: bidderRequest.auctionId,
+ tid: bidderRequest.ortb2.source.tid,
};
const schain = deepAccess(bidRequests, '0.schain');
diff --git a/modules/addefendBidAdapter.js b/modules/addefendBidAdapter.js
index d73c25935ee..dbb186fdc86 100644
--- a/modules/addefendBidAdapter.js
+++ b/modules/addefendBidAdapter.js
@@ -30,6 +30,7 @@ export const spec = {
for (var i = 0; i < validBidRequests.length; i++) {
let vb = validBidRequests[i];
let o = vb.params;
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
bid.auctionId = vb.auctionId;
o.bidId = vb.bidId;
o.transactionId = vb.transactionId;
diff --git a/modules/adfBidAdapter.js b/modules/adfBidAdapter.js
index 82bd7f03ff0..5c4b03c3bb2 100644
--- a/modules/adfBidAdapter.js
+++ b/modules/adfBidAdapter.js
@@ -3,7 +3,7 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
-import {deepAccess, deepSetValue, mergeDeep, parseSizesInput, deepClone} from '../src/utils.js';
+import {deepAccess, deepClone, deepSetValue, mergeDeep, parseSizesInput} from '../src/utils.js';
import {config} from '../src/config.js';
import {Renderer} from '../src/Renderer.js';
@@ -58,7 +58,7 @@ export const spec = {
const adxDomain = setOnAny(validBidRequests, 'params.adxDomain') || 'adx.adform.net';
const pt = setOnAny(validBidRequests, 'params.pt') || setOnAny(validBidRequests, 'params.priceType') || 'net';
- const tid = bidderRequest.auctionId;
+ const tid = bidderRequest.ortb2?.source?.tid;
const test = setOnAny(validBidRequests, 'params.test');
const currency = getConfig('currency.adServerCurrency');
const cur = currency && [ currency ];
@@ -139,7 +139,7 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site,
app,
user,
diff --git a/modules/adgenerationBidAdapter.js b/modules/adgenerationBidAdapter.js
index 199dd0955c7..35dd2902b2f 100644
--- a/modules/adgenerationBidAdapter.js
+++ b/modules/adgenerationBidAdapter.js
@@ -45,7 +45,7 @@ export const spec = {
data = tryAppendQueryString(data, 'sdktype', '0');
data = tryAppendQueryString(data, 'hb', 'true');
data = tryAppendQueryString(data, 't', 'json3');
- data = tryAppendQueryString(data, 'transactionid', validReq.transactionId);
+ data = tryAppendQueryString(data, 'transactionid', validReq.ortb2Imp?.ext?.tid);
data = tryAppendQueryString(data, 'sizes', getSizes(validReq));
data = tryAppendQueryString(data, 'currency', getCurrencyType());
data = tryAppendQueryString(data, 'pbver', '$prebid.version$');
diff --git a/modules/adkernelAdnBidAdapter.js b/modules/adkernelAdnBidAdapter.js
index 3d26f649601..4db46aca3c6 100644
--- a/modules/adkernelAdnBidAdapter.js
+++ b/modules/adkernelAdnBidAdapter.js
@@ -1,4 +1,4 @@
-import { deepAccess, parseSizesInput, isArray, deepSetValue, isStr, isNumber, logInfo } from '../src/utils.js';
+import {deepAccess, deepSetValue, isArray, isNumber, isStr, logInfo, parseSizesInput} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER, VIDEO} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
@@ -58,11 +58,11 @@ function canonicalizeSizesArray(sizes) {
}
function buildRequestParams(tags, bidderRequest) {
- let {auctionId, gdprConsent, uspConsent, transactionId, refererInfo} = bidderRequest;
+ let {gdprConsent, uspConsent, refererInfo, ortb2} = bidderRequest;
let req = {
- id: auctionId,
- // TODO: transactionId is undefined here, should this be auctionId? see #8573
- tid: transactionId,
+ id: bidderRequest.bidderRequestId,
+ // TODO: root-level `tid` is not ORTB; is this intentional?
+ tid: ortb2?.source?.tid,
site: buildSite(refererInfo),
imp: tags
};
diff --git a/modules/adkernelBidAdapter.js b/modules/adkernelBidAdapter.js
index d5639f57c10..cbeeaf3e705 100644
--- a/modules/adkernelBidAdapter.js
+++ b/modules/adkernelBidAdapter.js
@@ -6,6 +6,7 @@ import {
deepAccess,
deepSetValue,
getAdUnitSizes,
+ getDefinedParams,
getDNT,
isArray,
isArrayOfNums,
@@ -14,14 +15,13 @@ import {
isPlainObject,
isStr,
mergeDeep,
- parseGPTSingleSizeArrayToRtbSize,
- getDefinedParams
+ parseGPTSingleSizeArrayToRtbSize
} from '../src/utils.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {find} from '../src/polyfill.js';
import {config} from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
/*
* In case you're AdKernel whitelable platform's client who needs branded adapter to
@@ -490,9 +490,9 @@ function makeRegulations(bidderRequest) {
* @returns
*/
function makeBaseRequest(bidderRequest, imps, fpd) {
- let {auctionId, timeout} = bidderRequest;
+ let {timeout} = bidderRequest;
let request = {
- 'id': auctionId,
+ 'id': bidderRequest.bidderRequestId,
'imp': imps,
'at': 1,
'tmax': parseInt(timeout)
diff --git a/modules/adqueryBidAdapter.js b/modules/adqueryBidAdapter.js
index 63e0c7dbe22..6155459cc8d 100644
--- a/modules/adqueryBidAdapter.js
+++ b/modules/adqueryBidAdapter.js
@@ -193,6 +193,7 @@ function buildRequest(validBidRequests, bidderRequest) {
let bid = validBidRequests;
return {
placementCode: bid.params.placementId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
type: bid.params.type,
adUnitCode: bid.adUnitCode,
diff --git a/modules/adtrueBidAdapter.js b/modules/adtrueBidAdapter.js
index 9bff2c85c57..389986eb586 100644
--- a/modules/adtrueBidAdapter.js
+++ b/modules/adtrueBidAdapter.js
@@ -469,7 +469,7 @@ export const spec = {
conf.zoneId = conf.zoneId || bid.params.zoneId;
conf.pubId = conf.pubId || bid.params.publisherId;
- conf.transactionId = bid.transactionId;
+ conf.transactionId = bid.ortb2Imp?.ext?.tid;
if (bidCurrency === '') {
bidCurrency = bid.params.currency || UNDEFINED;
} else if (bid.params.hasOwnProperty('currency') && bidCurrency !== bid.params.currency) {
@@ -492,7 +492,7 @@ export const spec = {
payload.ext.wrapper = {};
payload.ext.wrapper.transactionId = conf.transactionId;
- payload.ext.wrapper.wiid = conf.wiid || bidderRequest.auctionId;
+ payload.ext.wrapper.wiid = conf.wiid || bidderRequest.ortb2?.ext?.tid;
payload.ext.wrapper.wp = 'pbjs';
payload.user.geo = {};
@@ -507,7 +507,7 @@ export const spec = {
if (typeof config.getConfig('device') === 'object') {
payload.device = Object.assign(payload.device, config.getConfig('device'));
}
-
+ deepSetValue(payload, 'source.tid', conf.transactionId);
// test bids
if (window.location.href.indexOf('adtrueTest=true') !== -1) {
payload.test = 1;
diff --git a/modules/aduptechBidAdapter.js b/modules/aduptechBidAdapter.js
index c7138e43cfe..1ea5f1a0096 100644
--- a/modules/aduptechBidAdapter.js
+++ b/modules/aduptechBidAdapter.js
@@ -255,6 +255,7 @@ export const spec = {
url: internal.buildEndpointUrl(publisher),
method: ENDPOINT_METHOD,
data: {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId,
pageUrl: pageUrl,
referrer: referrer,
@@ -271,7 +272,7 @@ export const spec = {
groupedBidRequests[publisher].forEach(bidRequest => {
const bid = {
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
adUnitCode: bidRequest.adUnitCode,
params: internal.extractParams(bidRequest)
};
diff --git a/modules/adxcgBidAdapter.js b/modules/adxcgBidAdapter.js
index 564960cf2c9..5930f3adb67 100644
--- a/modules/adxcgBidAdapter.js
+++ b/modules/adxcgBidAdapter.js
@@ -98,7 +98,7 @@ export const spec = {
device.dnt = getDNT() ? 1 : 0;
device.language = (navigator && navigator.language) ? navigator.language.split('-')[0] : '';
- const tid = bidderRequest.auctionId;
+ const tid = bidderRequest.ortb2?.source?.tid;
const test = setOnAny(validBidRequests, 'params.test');
const currency = getConfig('currency.adServerCurrency');
const cur = currency && [ currency ];
diff --git a/modules/adyoulikeBidAdapter.js b/modules/adyoulikeBidAdapter.js
index 376d108e980..4080d9f25cd 100644
--- a/modules/adyoulikeBidAdapter.js
+++ b/modules/adyoulikeBidAdapter.js
@@ -71,7 +71,7 @@ export const spec = {
let size = getSize(sizesArray);
accumulator[bidReq.bidId] = {};
accumulator[bidReq.bidId].PlacementID = bidReq.params.placement;
- accumulator[bidReq.bidId].TransactionID = bidReq.transactionId;
+ accumulator[bidReq.bidId].TransactionID = bidReq.ortb2Imp?.ext?.tid;
accumulator[bidReq.bidId].Width = size.width;
accumulator[bidReq.bidId].Height = size.height;
accumulator[bidReq.bidId].AvailableSizes = sizesArray.join(',');
diff --git a/modules/afpBidAdapter.js b/modules/afpBidAdapter.js
index f690b70973d..cec61b29b82 100644
--- a/modules/afpBidAdapter.js
+++ b/modules/afpBidAdapter.js
@@ -100,13 +100,13 @@ export const spec = {
pageUrl: IS_DEV ? TEST_PAGE_URL : refererInfo.page,
gdprConsent: gdprConsent,
bidRequests: validBidRequests.map(validBidRequest => {
- const {bidId, transactionId, sizes, params: {
+ const {bidId, ortb2Imp, sizes, params: {
placeId, placeType, imageUrl, imageWidth, imageHeight
}} = validBidRequest
bidRequestMap[bidId] = validBidRequest
const bidRequest = {
bidId,
- transactionId,
+ transactionId: ortb2Imp?.ext?.tid,
sizes,
placeId,
}
diff --git a/modules/aidemBidAdapter.js b/modules/aidemBidAdapter.js
index d43c07aeece..7469f26156b 100644
--- a/modules/aidemBidAdapter.js
+++ b/modules/aidemBidAdapter.js
@@ -1,4 +1,15 @@
-import {_each, contains, deepAccess, deepSetValue, getDNT, isBoolean, isStr, isNumber, logError, logInfo} from '../src/utils.js';
+import {
+ _each,
+ contains,
+ deepAccess,
+ deepSetValue,
+ getDNT,
+ isBoolean,
+ isNumber,
+ isStr,
+ logError,
+ logInfo
+} from '../src/utils.js';
import {config} from '../src/config.js';
import {BANNER, VIDEO} from '../src/mediaTypes.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
@@ -164,6 +175,7 @@ function buildWinNotice(bid) {
impid: deepAccess(bid, 'meta.impid'),
dsp_id: deepAccess(bid, 'meta.dsp_id'),
adUnitCode: bid.adUnitCode,
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
transactionId: bid.transactionId,
ttl: bid.ttl,
@@ -201,7 +213,7 @@ function getMediaType(bidRequest) {
function getPrebidRequestFields(bidderRequest, bidRequests) {
const payload = {};
// Base Payload Data
- deepSetValue(payload, 'id', bidderRequest.auctionId);
+ deepSetValue(payload, 'id', bidderRequest.bidderRequestId);
// Impressions
setPrebidImpressionObject(bidRequests, payload);
// Device
@@ -231,7 +243,8 @@ function setPrebidImpressionObject(bidRequests, payload) {
// Placement or ad tag used to initiate the auction
deepSetValue(impressionObject, 'id', bidRequest.bidId);
// Transaction id
- deepSetValue(impressionObject, 'tid', deepAccess(bidRequest, 'transactionId'));
+ // TODO: `imp.tid` is not ORTB, is this intentional?
+ deepSetValue(impressionObject, 'tid', deepAccess(bidRequest, 'ortb2Imp.ext.tid'));
// placement id
deepSetValue(impressionObject, 'tagid', deepAccess(bidRequest, 'params.placementId', null));
// Publisher id
diff --git a/modules/ajaBidAdapter.js b/modules/ajaBidAdapter.js
index 133a2fdbadf..ffab41611ef 100644
--- a/modules/ajaBidAdapter.js
+++ b/modules/ajaBidAdapter.js
@@ -55,7 +55,7 @@ export const spec = {
const asi = getBidIdParameter('asi', bidRequest.params);
queryString = tryAppendQueryString(queryString, 'asi', asi);
queryString = tryAppendQueryString(queryString, 'skt', SDKType);
- queryString = tryAppendQueryString(queryString, 'tid', bidRequest.transactionId)
+ queryString = tryAppendQueryString(queryString, 'tid', bidRequest.ortb2Imp?.ext?.tid)
queryString = tryAppendQueryString(queryString, 'prebid_id', bidRequest.bidId);
queryString = tryAppendQueryString(queryString, 'prebid_ver', '$prebid.version$');
diff --git a/modules/alkimiBidAdapter.js b/modules/alkimiBidAdapter.js
index 69b3fdae3d8..c087b3061a0 100644
--- a/modules/alkimiBidAdapter.js
+++ b/modules/alkimiBidAdapter.js
@@ -1,5 +1,5 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
-import {deepClone, deepAccess} from '../src/utils.js';
+import {deepAccess, deepClone} from '../src/utils.js';
import {ajax} from '../src/ajax.js';
import {VIDEO} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
@@ -41,6 +41,7 @@ export const spec = {
const alkimiConfig = config.getConfig('alkimi');
let payload = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
requestId: bidderRequest.auctionId,
signRequest: {bids, randomUUID: alkimiConfig && alkimiConfig.randomUUID},
bidIds,
diff --git a/modules/amxBidAdapter.js b/modules/amxBidAdapter.js
index 68a3a370c01..7286001b888 100644
--- a/modules/amxBidAdapter.js
+++ b/modules/amxBidAdapter.js
@@ -303,6 +303,7 @@ export const spec = {
};
const payload = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
a: bidderRequest.auctionId,
B: 0,
b: loc.host,
diff --git a/modules/apacdexBidAdapter.js b/modules/apacdexBidAdapter.js
index 10593855c59..94c1e08f6af 100644
--- a/modules/apacdexBidAdapter.js
+++ b/modules/apacdexBidAdapter.js
@@ -141,7 +141,7 @@ export const spec = {
return {
params: bid.params,
mediaTypes: bid.mediaTypes,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
sizes: bid.sizes,
bidId: bid.bidId,
adUnitCode: bid.adUnitCode,
diff --git a/modules/appnexusBidAdapter.js b/modules/appnexusBidAdapter.js
index 1ab16c5a636..c92b45622b6 100644
--- a/modules/appnexusBidAdapter.js
+++ b/modules/appnexusBidAdapter.js
@@ -960,6 +960,7 @@ function bidToTag(bid) {
tag['banner_frameworks'] = bid.params.frameworks;
}
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
tag.ad_types.push(BANNER);
diff --git a/modules/apstreamBidAdapter.js b/modules/apstreamBidAdapter.js
index 871b04442da..2856fb02087 100644
--- a/modules/apstreamBidAdapter.js
+++ b/modules/apstreamBidAdapter.js
@@ -421,6 +421,7 @@ function buildRequests(bidRequests, bidderRequest) {
bidRequests = convertOrtbRequestToProprietaryNative(bidRequests);
const data = {
med: encodeURIComponent(window.location.href),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auid: bidderRequest.auctionId,
ref: document.referrer,
dnt: getDNT() ? 1 : 0,
diff --git a/modules/asoBidAdapter.js b/modules/asoBidAdapter.js
index 39c42f193b2..d8700ac6c6c 100644
--- a/modules/asoBidAdapter.js
+++ b/modules/asoBidAdapter.js
@@ -299,7 +299,7 @@ function createBasePayload(bidRequest, bidderRequest) {
const urlsInfo = getUrlsInfo(bidderRequest);
const payload = {
- id: bidRequest.auctionId + '_' + bidRequest.bidId,
+ id: bidRequest.bidId,
at: 1,
tmax: bidderRequest.timeout,
site: {
diff --git a/modules/astraoneBidAdapter.js b/modules/astraoneBidAdapter.js
index d6bfa4b93ee..d7f92bb5fac 100644
--- a/modules/astraoneBidAdapter.js
+++ b/modules/astraoneBidAdapter.js
@@ -11,7 +11,7 @@ function buildBidRequests(validBidRequests) {
const params = validBidRequest.params;
const bidRequest = {
bidId: validBidRequest.bidId,
- transactionId: validBidRequest.transactionId,
+ transactionId: validBidRequest.ortb2Imp?.ext?.tid,
sizes: validBidRequest.sizes,
placement: params.placement,
placeId: params.placeId,
diff --git a/modules/audiencerunBidAdapter.js b/modules/audiencerunBidAdapter.js
index efd88aa6f58..9beb20d4f77 100644
--- a/modules/audiencerunBidAdapter.js
+++ b/modules/audiencerunBidAdapter.js
@@ -114,8 +114,9 @@ export const spec = {
bidId: bid.bidId,
bidderRequestId: getBidIdParameter('bidderRequestId', bid),
adUnitCode: getBidIdParameter('adUnitCode', bid),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: getBidIdParameter('auctionId', bid),
- transactionId: getBidIdParameter('transactionId', bid),
+ transactionId: bid.ortb2Imp?.ext?.tid || '',
};
});
diff --git a/modules/automatadBidAdapter.js b/modules/automatadBidAdapter.js
index 1174c2a9f38..bea2a9df5b2 100644
--- a/modules/automatadBidAdapter.js
+++ b/modules/automatadBidAdapter.js
@@ -1,7 +1,7 @@
-import { logInfo } from '../src/utils.js';
-import {registerBidder} from '../src/adapters/bidderFactory.js'
-import {BANNER} from '../src/mediaTypes.js'
-import {ajax} from '../src/ajax.js'
+import {logInfo} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER} from '../src/mediaTypes.js';
+import {ajax} from '../src/ajax.js';
const BIDDER = 'automatad'
@@ -57,7 +57,7 @@ export const spec = {
// params from bid request
const openrtbRequest = {
- id: validBidRequests[0].auctionId,
+ id: bidderRequest.bidderRequestId,
imp: impressions,
site: {
id: siteId,
diff --git a/modules/beopBidAdapter.js b/modules/beopBidAdapter.js
index 2a0a4c5fd4c..fd41f352cb9 100644
--- a/modules/beopBidAdapter.js
+++ b/modules/beopBidAdapter.js
@@ -122,6 +122,7 @@ function buildTrackingParams(data, info, value) {
nptnid: params.networkPartnerId,
bid: data.bidId || data.requestId,
sl_n: data.adUnitCode,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
aid: data.auctionId,
se_ca: 'bid',
se_ac: info,
@@ -150,8 +151,9 @@ function beOpRequestSlotsMaker(bid) {
bid: getBidIdParameter('bidId', bid),
brid: getBidIdParameter('bidderRequestId', bid),
name: getBidIdParameter('adUnitCode', bid),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
aid: getBidIdParameter('auctionId', bid),
- tid: getBidIdParameter('transactionId', bid),
+ tid: bid.ortb2Imp?.ext?.tid || '',
brc: getBidIdParameter('bidRequestsCount', bid),
bdrc: getBidIdParameter('bidderRequestCount', bid),
bwc: getBidIdParameter('bidderWinsCount', bid),
diff --git a/modules/betweenBidAdapter.js b/modules/betweenBidAdapter.js
index ea28420481d..d615e433cc0 100644
--- a/modules/betweenBidAdapter.js
+++ b/modules/betweenBidAdapter.js
@@ -43,7 +43,8 @@ export const spec = {
rr: getRr(),
s: i.params && i.params.s,
bidid: i.bidId,
- transactionid: i.transactionId,
+ transactionid: i.ortb2Imp?.ext?.tid,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionid: i.auctionId
};
diff --git a/modules/bizzclickBidAdapter.js b/modules/bizzclickBidAdapter.js
index 8219a2a41cf..dc7731231ab 100644
--- a/modules/bizzclickBidAdapter.js
+++ b/modules/bizzclickBidAdapter.js
@@ -1,8 +1,9 @@
-import { logMessage, getDNT, deepSetValue, deepAccess, _map, logWarn } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
+import {_map, deepAccess, deepSetValue, getDNT, logMessage, logWarn} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
+
const BIDDER_CODE = 'bizzclick';
const ACCOUNTID_MACROS = '[account_id]';
const URL_ENDPOINT = `https://us-e-node1.bizzclick.com/bid?rtb_seat_id=prebidjs&secret_key=${ACCOUNTID_MACROS}`;
@@ -92,7 +93,7 @@ export const spec = {
host: location.host
},
source: {
- tid: bidRequest.auctionId,
+ tid: bidRequest.ortb2Imp?.ext?.tid,
ext: {
schain: {}
}
@@ -234,7 +235,9 @@ const prepareImpObject = (bidRequest) => {
};
const addNativeParameters = bidRequest => {
let impObject = {
- id: bidRequest.transactionId,
+ // TODO: top-level ID is not in ORTB native 1.2, is this intentional?
+ // (despite the name, this appears to be an ORTB native request - not an imp - object)
+ id: bidRequest.bidId,
ver: NATIVE_VERSION,
};
const assets = _map(bidRequest.mediaTypes.native, (bidParams, key) => {
diff --git a/modules/bliinkBidAdapter.js b/modules/bliinkBidAdapter.js
index ee814807331..9a9d74d14c1 100644
--- a/modules/bliinkBidAdapter.js
+++ b/modules/bliinkBidAdapter.js
@@ -154,6 +154,7 @@ export const buildRequests = (validBidRequests, bidderRequest) => {
return {
sizes: bid.sizes.map((size) => ({ w: size[0], h: size[1] })),
id: bid.params.tagId,
+ // TODO: bidId is globally unique, is it a good choice for transaction ID (vs ortb2Imp.ext.tid)?
transactionId: bid.bidId,
mediaTypes: Object.keys(bid.mediaTypes),
imageUrl: deepAccess(bid, 'params.imageUrl', ''),
diff --git a/modules/bluebillywigBidAdapter.js b/modules/bluebillywigBidAdapter.js
index 9022ca120af..d4bde9b3f2c 100644
--- a/modules/bluebillywigBidAdapter.js
+++ b/modules/bluebillywigBidAdapter.js
@@ -276,8 +276,8 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
- source: {tid: bidderRequest.auctionId},
+ id: bidderRequest.bidderRequestId,
+ source: {tid: bidderRequest.ortb2?.source?.tid},
tmax: BB_CONSTANTS.DEFAULT_TIMEOUT,
imp: imps,
test: DEV_MODE ? 1 : 0,
diff --git a/modules/braveBidAdapter.js b/modules/braveBidAdapter.js
index ea8b4af690c..d954522ae24 100644
--- a/modules/braveBidAdapter.js
+++ b/modules/braveBidAdapter.js
@@ -1,8 +1,8 @@
-import { parseUrl, isEmpty, isStr, triggerPixel } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
-import { config } from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {isEmpty, isStr, parseUrl, triggerPixel} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
+import {config} from '../src/config.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const BIDDER_CODE = 'brave';
const DEFAULT_CUR = 'USD';
@@ -58,7 +58,8 @@ export const spec = {
impObject.video = createVideoRequest(br);
} else if (br.mediaTypes.native) {
impObject.native = {
- id: br.transactionId,
+ // TODO: `id` is not part of the ORTB native spec, is this intentional?
+ id: br.bidId,
ver: '1.2',
request: createNativeRequest(br)
};
@@ -229,7 +230,8 @@ const createBannerRequest = br => {
};
const createVideoRequest = br => {
- let videoObj = {id: br.transactionId};
+ // TODO: `id` is not part of imp.video in ORTB; is this intentional?
+ let videoObj = {id: br.bidId};
let supportParamsList = ['mimes', 'minduration', 'maxduration', 'protocols', 'startdelay', 'skip', 'minbitrate', 'maxbitrate', 'api', 'linearity'];
for (let param of supportParamsList) {
diff --git a/modules/browsiBidAdapter.js b/modules/browsiBidAdapter.js
index f96b203ca10..03b6b2a8f3d 100644
--- a/modules/browsiBidAdapter.js
+++ b/modules/browsiBidAdapter.js
@@ -38,7 +38,7 @@ export const spec = {
const requests = [];
const {refererInfo, bidderRequestId, gdprConsent, uspConsent} = bidderRequest;
validBidRequests.forEach(bidRequest => {
- const {bidId, adUnitCode, auctionId, transactionId, schain, params} = bidRequest;
+ const {bidId, adUnitCode, auctionId, ortb2Imp, schain, params} = bidRequest;
const video = getVideoMediaType(bidRequest);
const request = {
@@ -55,8 +55,9 @@ export const spec = {
sizes: video.playerSize,
video: video,
aUCode: adUnitCode,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
aID: auctionId,
- tID: transactionId,
+ tID: ortb2Imp?.ext?.tid,
schain: schain,
params: params
}
diff --git a/modules/carodaBidAdapter.js b/modules/carodaBidAdapter.js
index 7267452dd4c..cb7b5fbe7c5 100644
--- a/modules/carodaBidAdapter.js
+++ b/modules/carodaBidAdapter.js
@@ -48,6 +48,7 @@ export const spec = {
const eids = getFirstWithKey(validBidRequests, 'userIdAsEids');
const schain = getFirstWithKey(validBidRequests, 'schain');
const request = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidderRequest.auctionId,
currency,
hb_version: '$prebid.version$',
diff --git a/modules/ccxBidAdapter.js b/modules/ccxBidAdapter.js
index 28f3fe3a166..b1fcb29e3d0 100644
--- a/modules/ccxBidAdapter.js
+++ b/modules/ccxBidAdapter.js
@@ -178,7 +178,7 @@ export const spec = {
requestBody.imp = []
requestBody.site = _getSiteObj(bidderRequest)
requestBody.device = _getDeviceObj()
- requestBody.id = bidderRequest.bids[0].auctionId
+ requestBody.id = bidderRequest.bidderRequestId;
requestBody.ext = {'ce': (storage.cookiesAreEnabled() ? 1 : 0)}
// Attaching GDPR Consent Params
diff --git a/modules/cleanmedianetBidAdapter.js b/modules/cleanmedianetBidAdapter.js
index 46253d7af69..601a237baa8 100644
--- a/modules/cleanmedianetBidAdapter.js
+++ b/modules/cleanmedianetBidAdapter.js
@@ -80,11 +80,11 @@ export const spec = {
buildRequests: function (validBidRequests, bidderRequest) {
return validBidRequests.map(bidRequest => {
- const {adUnitCode, auctionId, mediaTypes, params, sizes, transactionId} = bidRequest;
+ const {adUnitCode, bidId, mediaTypes, params, sizes} = bidRequest;
const baseEndpoint = (params['rtbEndpoint'] || ENDPOINTS['cleanmedianet']).replace(/^http:/, 'https:');
const rtbEndpoint = `${baseEndpoint}/r/${params.supplyPartnerId}/bidr?rformat=open_rtb&reqformat=rtb_json&bidder=prebid` + (params.query ? '&' + params.query : '');
const rtbBidRequest = {
- id: auctionId,
+ id: bidId,
site: {
domain: bidderRequest.refererInfo.domain,
page: bidderRequest.refererInfo.page,
@@ -118,7 +118,7 @@ export const spec = {
}
const imp = {
- id: transactionId,
+ id: bidId,
instl: deepAccess(bidderRequest.ortb2Imp, 'instl') === 1 || params.instl === 1 ? 1 : 0,
tagid: adUnitCode,
bidfloor: helper.getBidFloor(bidRequest) || 0,
diff --git a/modules/codefuelBidAdapter.js b/modules/codefuelBidAdapter.js
index bde168a79e3..2548b20189b 100644
--- a/modules/codefuelBidAdapter.js
+++ b/modules/codefuelBidAdapter.js
@@ -58,7 +58,7 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site: { page, domain, publisher },
device: { ua, devicetype },
source: { fd: 1 },
diff --git a/modules/colossussspBidAdapter.js b/modules/colossussspBidAdapter.js
index 082fb0ac4db..00d90f62a2c 100644
--- a/modules/colossussspBidAdapter.js
+++ b/modules/colossussspBidAdapter.js
@@ -125,7 +125,7 @@ export const spec = {
placementId: bid.params.placement_id,
groupId: bid.params.group_id,
bidId: bid.bidId,
- tid: bid.transactionId,
+ tid: bid.ortb2Imp?.ext?.tid,
eids: [],
floor: {}
};
diff --git a/modules/concertBidAdapter.js b/modules/concertBidAdapter.js
index a25d9086446..bf4079322ff 100644
--- a/modules/concertBidAdapter.js
+++ b/modules/concertBidAdapter.js
@@ -66,7 +66,7 @@ export const spec = {
let slot = {
name: bidRequest.adUnitCode,
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
sizes: bidRequest.params.sizes || bidRequest.sizes,
partnerId: bidRequest.params.partnerId,
slotType: bidRequest.params.slotType,
diff --git a/modules/connectadBidAdapter.js b/modules/connectadBidAdapter.js
index d53e3b28ab5..d5665b318be 100644
--- a/modules/connectadBidAdapter.js
+++ b/modules/connectadBidAdapter.js
@@ -77,6 +77,7 @@ export const spec = {
validBidRequests.map(bid => {
const placement = Object.assign({
+ // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: bid.transactionId,
divName: bid.bidId,
pisze: bid.mediaTypes.banner.sizes[0] || bid.sizes[0],
diff --git a/modules/conversantBidAdapter.js b/modules/conversantBidAdapter.js
index b5a1424dcba..eb9f13b8f5d 100644
--- a/modules/conversantBidAdapter.js
+++ b/modules/conversantBidAdapter.js
@@ -1,4 +1,21 @@
-import { logWarn, isStr, deepAccess, isArray, getBidIdParameter, deepSetValue, isEmpty, _each, convertTypes, parseUrl, mergeDeep, buildUrl, _map, logError, isFn, isPlainObject } from '../src/utils.js';
+import {
+ logWarn,
+ isStr,
+ deepAccess,
+ isArray,
+ getBidIdParameter,
+ deepSetValue,
+ isEmpty,
+ _each,
+ convertTypes,
+ parseUrl,
+ mergeDeep,
+ buildUrl,
+ _map,
+ logError,
+ isFn,
+ isPlainObject,
+} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER, VIDEO} from '../src/mediaTypes.js';
import {getStorageManager} from '../src/storageManager.js';
@@ -56,7 +73,6 @@ export const spec = {
buildRequests: function(validBidRequests, bidderRequest) {
const page = (bidderRequest && bidderRequest.refererInfo) ? bidderRequest.refererInfo.page : '';
let siteId = '';
- let requestId = '';
let pubcid = null;
let pubcidName = '_pubcid';
let bidurl = URL;
@@ -67,8 +83,6 @@ export const spec = {
siteId = getBidIdParameter('site_id', bid.params) || siteId;
pubcidName = getBidIdParameter('pubcid_name', bid.params) || pubcidName;
- requestId = bid.auctionId;
-
const imp = {
id: bid.bidId,
secure: 1,
@@ -122,10 +136,10 @@ export const spec = {
});
const payload = {
- id: requestId,
+ id: bidderRequest.bidderRequestId,
imp: conversantImps,
source: {
- tid: requestId
+ tid: bidderRequest.ortb2?.source?.tid,
},
site: {
id: siteId,
diff --git a/modules/craftBidAdapter.js b/modules/craftBidAdapter.js
index 8ffdabcb597..d1017e85bc8 100644
--- a/modules/craftBidAdapter.js
+++ b/modules/craftBidAdapter.js
@@ -207,6 +207,7 @@ function bidToTag(bid) {
}
tag.keywords = keywords;
}
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
tag.ad_types.push(BANNER);
diff --git a/modules/criteoBidAdapter.js b/modules/criteoBidAdapter.js
index 63c4482ab84..bc839de2eb9 100644
--- a/modules/criteoBidAdapter.js
+++ b/modules/criteoBidAdapter.js
@@ -429,7 +429,8 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
schain = bidRequest.schain || schain;
const slot = {
impid: bidRequest.adUnitCode,
- transactionid: bidRequest.transactionId,
+ transactionid: bidRequest.ortb2Imp?.ext?.tid,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
};
if (bidRequest.params.zoneId) {
diff --git a/modules/dailyhuntBidAdapter.js b/modules/dailyhuntBidAdapter.js
index 5ae8ee3ea21..f96e07b71bf 100644
--- a/modules/dailyhuntBidAdapter.js
+++ b/modules/dailyhuntBidAdapter.js
@@ -4,7 +4,7 @@ import {_map, deepAccess, isEmpty} from '../src/utils.js';
import {ajax} from '../src/ajax.js';
import {find} from '../src/polyfill.js';
import {INSTREAM, OUTSTREAM} from '../src/video.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const BIDDER_CODE = 'dailyhunt';
const BIDDER_ALIAS = 'dh';
@@ -99,7 +99,7 @@ const createOrtbRequest = (validBidRequests, bidderRequest) => {
let user = createOrtbUserObj(validBidRequests)
let site = createOrtbSiteObj(validBidRequests, bidderRequest.refererInfo.page)
return {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: [],
site,
device,
diff --git a/modules/datablocksBidAdapter.js b/modules/datablocksBidAdapter.js
index 4e21e08ba57..11d3ebb1589 100644
--- a/modules/datablocksBidAdapter.js
+++ b/modules/datablocksBidAdapter.js
@@ -1,10 +1,11 @@
-import { getWindowTop, isGptPubadsDefined, deepAccess, getAdUnitSizes, isEmpty } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { config } from '../src/config.js';
-import { BANNER, NATIVE } from '../src/mediaTypes.js';
-import { getStorageManager } from '../src/storageManager.js';
-import { ajax } from '../src/ajax.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {deepAccess, getAdUnitSizes, getWindowTop, isEmpty, isGptPubadsDefined} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {config} from '../src/config.js';
+import {BANNER, NATIVE} from '../src/mediaTypes.js';
+import {getStorageManager} from '../src/storageManager.js';
+import {ajax} from '../src/ajax.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
+
export const storage = getStorageManager({bidderCode: 'datablocks'});
const NATIVE_ID_MAP = {};
@@ -229,6 +230,7 @@ export const spec = {
let scope = this;
if (isGptPubadsDefined()) {
if (typeof window['googletag'].pubads().addEventListener == 'function') {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
window['googletag'].pubads().addEventListener('impressionViewable', function(event) {
scope.queue_metric({type: 'slot_view', source_id: scope.db_obj.source_id, auction_id: bid.auctionId, div_id: event.slot.getSlotElementId(), slot_id: event.slot.getSlotId().getAdUnitPath()});
});
@@ -400,7 +402,7 @@ export const spec = {
method: 'POST',
url: `https://${host}/openrtb/?sid=${sourceId}`,
data: {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: imps,
site: site,
device: device
diff --git a/modules/datawrkzBidAdapter.js b/modules/datawrkzBidAdapter.js
index 193a1723403..2cf28c36330 100644
--- a/modules/datawrkzBidAdapter.js
+++ b/modules/datawrkzBidAdapter.js
@@ -414,8 +414,6 @@ function buildBannerResponse(bidRequest, bidResponse) {
}
let bidSizes = (deepAccess(bidRequest, 'mediaTypes.banner.sizes')) ? deepAccess(bidRequest, 'mediaTypes.banner.sizes') : bidRequest.sizes;
bidResponse.requestId = bidRequest.bidId;
- bidResponse.auctionId = bidRequest.auctionId;
- bidResponse.transactionId = bidRequest.transactionId;
bidResponse.placementCode = placementCode;
bidResponse.cpm = responseCPM;
bidResponse.size = bidSizes;
@@ -456,8 +454,6 @@ function buildNativeResponse(bidRequest, response) {
return;
}
bidResponse.requestId = bidRequest.bidId;
- bidResponse.auctionId = bidRequest.auctionId;
- bidResponse.transactionId = bidRequest.transactionId;
bidResponse.placementCode = placementCode;
bidResponse.cpm = responseCPM;
@@ -509,8 +505,6 @@ function buildVideoResponse(bidRequest, response) {
let context = bidRequest.mediaTypes.video.context;
bidResponse.requestId = bidRequest.bidId;
- bidResponse.auctionId = bidRequest.auctionId;
- bidResponse.transactionId = bidRequest.transactionId;
bidResponse.placementCode = placementCode;
bidResponse.cpm = responseCPM;
diff --git a/modules/deltaprojectsBidAdapter.js b/modules/deltaprojectsBidAdapter.js
index 92b8d29d209..c66e381b8f1 100644
--- a/modules/deltaprojectsBidAdapter.js
+++ b/modules/deltaprojectsBidAdapter.js
@@ -1,6 +1,15 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
-import {_each, _map, createTrackPixelHtml, deepAccess, isFn, isNumber, logError, logWarn} from '../src/utils.js';
+import {
+ _each,
+ _map,
+ createTrackPixelHtml,
+ deepAccess,
+ isFn,
+ isNumber,
+ logError,
+ logWarn
+} from '../src/utils.js';
import {config} from '../src/config.js';
export const BIDDER_CODE = 'deltaprojects';
@@ -27,7 +36,7 @@ function isBidRequestValid(bid) {
function buildRequests(validBidRequests, bidderRequest) {
/** == shared ==**/
// -- build id
- const id = bidderRequest.auctionId;
+ const id = bidderRequest.bidderRequestId;
// -- build site
const publisherId = setOnAny(validBidRequests, 'params.publisherId');
diff --git a/modules/dianomiBidAdapter.js b/modules/dianomiBidAdapter.js
index f8f47df1239..d4b2a4a5da5 100644
--- a/modules/dianomiBidAdapter.js
+++ b/modules/dianomiBidAdapter.js
@@ -112,7 +112,7 @@ export const spec = {
setOnAny(validBidRequests, 'params.pt') ||
setOnAny(validBidRequests, 'params.priceType') ||
'net';
- const tid = bidderRequest.auctionId;
+ const tid = bidderRequest.ortb2?.source?.tid;
const currency = getConfig('currency.adServerCurrency');
const cur = currency && [currency];
const eids = setOnAny(validBidRequests, 'userIdAsEids');
diff --git a/modules/discoveryBidAdapter.js b/modules/discoveryBidAdapter.js
index a0f864d529f..675ede273a6 100644
--- a/modules/discoveryBidAdapter.js
+++ b/modules/discoveryBidAdapter.js
@@ -301,6 +301,7 @@ function getParam(validBidRequests, bidderRequest) {
if (items && items.length) {
let c = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: 'pp_hbjs_' + auctionId,
test: +isTest,
at: 1,
diff --git a/modules/dspxBidAdapter.js b/modules/dspxBidAdapter.js
index 74a93ce086e..b8e812f581a 100644
--- a/modules/dspxBidAdapter.js
+++ b/modules/dspxBidAdapter.js
@@ -29,6 +29,7 @@ export const spec = {
const referrer = bidderRequest.refererInfo.page;
const bidId = bidRequest.bidId;
const pbcode = bidRequest.adUnitCode || false; // div id
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
const auctionId = bidRequest.auctionId || false;
const isDev = params.devMode || false;
diff --git a/modules/etargetBidAdapter.js b/modules/etargetBidAdapter.js
index b290a62420c..cced180e061 100644
--- a/modules/etargetBidAdapter.js
+++ b/modules/etargetBidAdapter.js
@@ -35,7 +35,7 @@ export const spec = {
lastCountry = countryMap[bid.params.country];
}
reqParams = bid.params;
- reqParams.transactionId = bid.transactionId;
+ reqParams.transactionId = bid.ortb2Imp?.ext?.tid;
request.push(formRequestUrl(reqParams));
floors[i] = getBidFloor(bid);
}
@@ -137,7 +137,6 @@ export const spec = {
vastXml: data.vast_content,
vastUrl: data.vast_link,
mediaType: data.response,
- transactionId: bid.transactionId
};
if (bidRequest.gdpr) {
bidObject.gdpr = bidRequest.gdpr.gdpr;
diff --git a/modules/feedadBidAdapter.js b/modules/feedadBidAdapter.js
index 34e14cd674a..7b41f0fcc03 100644
--- a/modules/feedadBidAdapter.js
+++ b/modules/feedadBidAdapter.js
@@ -234,7 +234,7 @@ function buildRequests(validBidRequests, bidderRequest) {
});
data.bids.forEach(bid => BID_METADATA[bid.bidId] = {
referer: data.refererInfo.page,
- transactionId: bid.transactionId
+ transactionId: bid.ortb2Imp?.ext?.tid,
});
if (bidderRequest.gdprConsent) {
data.consentIabTcf = bidderRequest.gdprConsent.consentString;
diff --git a/modules/finativeBidAdapter.js b/modules/finativeBidAdapter.js
index ea7d1281872..87580a209bb 100644
--- a/modules/finativeBidAdapter.js
+++ b/modules/finativeBidAdapter.js
@@ -1,11 +1,11 @@
// jshint esversion: 6, es3: false, node: true
'use strict';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { NATIVE } from '../src/mediaTypes.js';
-import { _map, deepSetValue, isEmpty, deepAccess } from '../src/utils.js';
-import { config } from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {NATIVE} from '../src/mediaTypes.js';
+import {_map, deepAccess, deepSetValue, isEmpty} from '../src/utils.js';
+import {config} from '../src/config.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const BIDDER_CODE = 'finative';
const DEFAULT_CUR = 'EUR';
@@ -63,7 +63,7 @@ export const spec = {
// convert Native ORTB definition to old-style prebid native definition
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
const pt = setOnAny(validBidRequests, 'params.pt') || setOnAny(validBidRequests, 'params.priceType') || 'net';
- const tid = bidderRequest.auctionId;
+ const tid = bidderRequest.ortb2?.source?.tid;
const cur = [config.getConfig('currency.adServerCurrency') || DEFAULT_CUR];
let url = bidderRequest.refererInfo.referer;
@@ -104,6 +104,7 @@ export const spec = {
return {
id: String(id + 1),
tagid: bid.params.adUnitId,
+ // TODO: `tid` is not under `imp` in ORTB, is this intentional?
tid: tid,
pt: pt,
native: {
@@ -115,7 +116,7 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site: {
page: url
},
diff --git a/modules/fluctBidAdapter.js b/modules/fluctBidAdapter.js
index 9286898b44e..edb750a6b90 100644
--- a/modules/fluctBidAdapter.js
+++ b/modules/fluctBidAdapter.js
@@ -48,7 +48,7 @@ export const spec = {
data.page = page;
data.adUnitCode = request.adUnitCode;
data.bidId = request.bidId;
- data.transactionId = request.transactionId;
+ data.transactionId = request.ortb2Imp?.ext?.tid;
data.user = {
eids: (request.userIdAsEids || []).filter((eid) => SUPPORTED_USER_ID_SOURCES.indexOf(eid.source) !== -1)
};
diff --git a/modules/gamoshiBidAdapter.js b/modules/gamoshiBidAdapter.js
index ae320db1251..1c279cdb9b8 100644
--- a/modules/gamoshiBidAdapter.js
+++ b/modules/gamoshiBidAdapter.js
@@ -80,11 +80,11 @@ export const spec = {
buildRequests: function (validBidRequests, bidderRequest) {
return validBidRequests.map(bidRequest => {
- const {adUnitCode, auctionId, mediaTypes, params, sizes, transactionId} = bidRequest;
+ const {adUnitCode, mediaTypes, params, sizes, bidId} = bidRequest;
const baseEndpoint = params['rtbEndpoint'] || ENDPOINTS['gamoshi'];
const rtbEndpoint = `${baseEndpoint}/r/${params.supplyPartnerId}/bidr?rformat=open_rtb&reqformat=rtb_json&bidder=prebid` + (params.query ? '&' + params.query : '');
const rtbBidRequest = {
- id: auctionId,
+ id: bidderRequest.bidderRequestId,
site: {
domain: bidderRequest.refererInfo.domain,
page: bidderRequest.refererInfo.page,
@@ -118,7 +118,7 @@ export const spec = {
}
const imp = {
- id: transactionId,
+ id: bidId,
instl: deepAccess(bidderRequest.ortb2Imp, 'instl') === 1 || params.instl === 1 ? 1 : 0,
tagid: adUnitCode,
bidfloor: helper.getBidFloor(bidRequest) || 0,
diff --git a/modules/glomexBidAdapter.js b/modules/glomexBidAdapter.js
index 5c9b3c1fa28..10f5593940e 100644
--- a/modules/glomexBidAdapter.js
+++ b/modules/glomexBidAdapter.js
@@ -26,6 +26,7 @@ export const spec = {
method: 'POST',
url: `${ENDPOINT}`,
data: {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidderRequest.auctionId,
refererInfo: {
// TODO: this collects everything it finds, except for canonicalUrl
diff --git a/modules/gmosspBidAdapter.js b/modules/gmosspBidAdapter.js
index 9bc1a15b60b..8c90d0cccfe 100644
--- a/modules/gmosspBidAdapter.js
+++ b/modules/gmosspBidAdapter.js
@@ -47,7 +47,7 @@ export const spec = {
let queryString = '';
const request = validBidRequests[i];
- const tid = request.transactionId;
+ const tid = request.ortb2Imp?.ext?.tid;
const bid = request.bidId;
const imuid = deepAccess(request, 'userId.imuid');
const sharedId = deepAccess(request, 'userId.pubcid');
diff --git a/modules/gnetBidAdapter.js b/modules/gnetBidAdapter.js
index 0b02a29c0d4..38e96c183b9 100644
--- a/modules/gnetBidAdapter.js
+++ b/modules/gnetBidAdapter.js
@@ -39,7 +39,7 @@ export const spec = {
data.referer = referer;
data.adUnitCode = request.adUnitCode;
data.bidId = request.bidId;
- data.transactionId = request.transactionId;
+ data.transactionId = request.ortb2Imp?.ext?.tid;
data.gftuid = _getCookie();
data.sizes = parseSizesInput(request.sizes);
diff --git a/modules/goldbachBidAdapter.js b/modules/goldbachBidAdapter.js
index 471586ae795..363adccc01c 100644
--- a/modules/goldbachBidAdapter.js
+++ b/modules/goldbachBidAdapter.js
@@ -901,6 +901,7 @@ function bidToTag(bid) {
tag['banner_frameworks'] = bid.params.frameworks;
}
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
tag.ad_types.push(BANNER);
diff --git a/modules/gothamadsBidAdapter.js b/modules/gothamadsBidAdapter.js
index 4e3d9e190c4..9f44a54460f 100644
--- a/modules/gothamadsBidAdapter.js
+++ b/modules/gothamadsBidAdapter.js
@@ -104,7 +104,7 @@ export const spec = {
host: location.host
},
source: {
- tid: bidRequest.auctionId
+ tid: bidderRequest?.ortb2?.source?.tid,
},
regs: {
coppa: config.getConfig('coppa') === true ? 1 : 0,
@@ -224,7 +224,7 @@ const parseNative = admObject => {
const prepareImpObject = (bidRequest) => {
let impObject = {
- id: bidRequest.transactionId,
+ id: bidRequest.bidId,
secure: 1,
ext: {
placementId: bidRequest.params.placementId
@@ -247,7 +247,8 @@ const prepareImpObject = (bidRequest) => {
const addNativeParameters = bidRequest => {
let impObject = {
- id: bidRequest.transactionId,
+ // TODO: this is not an "impObject", and `id` is not part of the ORTB native spec
+ id: bidRequest.bidId,
ver: NATIVE_VERSION,
};
diff --git a/modules/gridBidAdapter.js b/modules/gridBidAdapter.js
index 130eac9512d..60ae9dbc3a0 100644
--- a/modules/gridBidAdapter.js
+++ b/modules/gridBidAdapter.js
@@ -98,7 +98,7 @@ export const spec = {
let userExt = null;
let endpoint = null;
let forceBidderName = false;
- let {bidderRequestId, auctionId, gdprConsent, uspConsent, timeout, refererInfo, gppConsent} = bidderRequest || {};
+ let {bidderRequestId, gdprConsent, uspConsent, timeout, refererInfo, gppConsent} = bidderRequest || {};
const referer = refererInfo ? encodeURIComponent(refererInfo.page) : '';
const tmax = timeout;
@@ -122,9 +122,6 @@ export const spec = {
if (!bidderRequestId) {
bidderRequestId = bid.bidderRequestId;
}
- if (!auctionId) {
- auctionId = bid.auctionId;
- }
if (!schain) {
schain = bid.schain;
}
@@ -196,7 +193,7 @@ export const spec = {
if (impObj.banner || impObj.video) {
if (multiRequest) {
const reqSource = {
- tid: bid.auctionId && bid.auctionId.toString(),
+ tid: bidderRequest?.ortb2?.source?.tid?.toString?.(),
ext: {
wrapper: 'Prebid_js',
wrapper_version: '$prebid.version$'
@@ -247,7 +244,7 @@ export const spec = {
}
const reqSource = {
- tid: auctionId && auctionId.toString(),
+ tid: bidderRequest?.ortb2?.source?.tid?.toString?.(),
ext: {
wrapper: 'Prebid_js',
wrapper_version: '$prebid.version$'
@@ -949,7 +946,8 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
schain = bidRequest.schain || schain;
const slot = {
impid: bidRequest.adUnitCode,
- transactionid: bidRequest.transactionId,
+ transactionid: bidRequest.ortb2Imp?.ext?.tid,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
};
if (bidRequest.params.zoneId) {
diff --git a/modules/gumgumBidAdapter.js b/modules/gumgumBidAdapter.js
index fdd3030bb7a..d050af4ac8f 100644
--- a/modules/gumgumBidAdapter.js
+++ b/modules/gumgumBidAdapter.js
@@ -293,7 +293,6 @@ function buildRequests(validBidRequests, bidderRequest) {
mediaTypes = {},
params = {},
schain,
- transactionId,
userId = {},
ortb2Imp,
adUnitCode = ''
@@ -404,7 +403,7 @@ function buildRequests(validBidRequests, bidderRequest) {
bids.push({
id: bidId,
tmax: timeout,
- tId: transactionId,
+ tId: ortb2Imp?.ext?.tid,
pi: data.pi,
selector: params.selector,
sizes,
diff --git a/modules/h12mediaBidAdapter.js b/modules/h12mediaBidAdapter.js
index c58f15c9a81..7b1ba9ee286 100644
--- a/modules/h12mediaBidAdapter.js
+++ b/modules/h12mediaBidAdapter.js
@@ -41,7 +41,7 @@ export const spec = {
const bidrequest = {
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
adunitId: bidRequest.adUnitCode,
pubid: bidderParams.pubid,
placementid: bidderParams.placementid || '',
diff --git a/modules/holidBidAdapter.js b/modules/holidBidAdapter.js
index 92b0a1c18db..f41829bd123 100644
--- a/modules/holidBidAdapter.js
+++ b/modules/holidBidAdapter.js
@@ -1,15 +1,9 @@
-import {
- deepAccess,
- getBidIdParameter,
- isStr,
- logMessage,
- triggerPixel,
-} from '../src/utils.js'
-import * as events from '../src/events.js'
-import CONSTANTS from '../src/constants.json'
-import { BANNER } from '../src/mediaTypes.js'
-
-import { registerBidder } from '../src/adapters/bidderFactory.js'
+import {deepAccess, getBidIdParameter, isStr, logMessage, triggerPixel, } from '../src/utils.js';
+import * as events from '../src/events.js';
+import CONSTANTS from '../src/constants.json';
+import {BANNER} from '../src/mediaTypes.js';
+
+import {registerBidder} from '../src/adapters/bidderFactory.js';
const BIDDER_CODE = 'holid'
const GVLID = 1177
@@ -33,7 +27,7 @@ export const spec = {
return validBidRequests.map((bid) => {
const requestData = {
...bid.ortb2,
- id: bid.auctionId,
+ id: _bidderRequest.bidderRequestId,
imp: [getImp(bid)],
}
@@ -56,6 +50,7 @@ export const spec = {
serverResponse.body.seatbid.map((response) => {
response.bid.map((bid) => {
const requestId = bidRequest.bidId
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
const auctionId = bidRequest.auctionId
const wurl = deepAccess(bid, 'ext.prebid.events.win')
const bidResponse = {
diff --git a/modules/hybridBidAdapter.js b/modules/hybridBidAdapter.js
index 6cedb094444..f746e69cbba 100644
--- a/modules/hybridBidAdapter.js
+++ b/modules/hybridBidAdapter.js
@@ -25,7 +25,7 @@ function buildBidRequests(validBidRequests) {
const params = validBidRequest.params;
const bidRequest = {
bidId: validBidRequest.bidId,
- transactionId: validBidRequest.transactionId,
+ transactionId: validBidRequest.ortb2Imp?.ext?.tid,
sizes: validBidRequest.sizes,
placement: placementTypes[params.placement],
placeId: params.placeId,
@@ -88,6 +88,7 @@ function buildBid(bidData) {
bid.vastXml = bidData.content;
bid.mediaType = VIDEO;
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), function (unit) {
return unit.transactionId === bidData.transactionId;
});
@@ -244,7 +245,6 @@ export const spec = {
return item.bidId === bid.bidId;
});
bid.placement = rawBid.placement;
- bid.transactionId = rawBid.transactionId;
bid.placeId = rawBid.placeId;
return buildBid(bid);
});
diff --git a/modules/imdsBidAdapter.js b/modules/imdsBidAdapter.js
index 141c4d125a7..545a0bd1ac3 100644
--- a/modules/imdsBidAdapter.js
+++ b/modules/imdsBidAdapter.js
@@ -39,7 +39,7 @@ export const spec = {
}
const refererInfo = bidderRequest.refererInfo;
const openRtbBidRequest = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site: {
// TODO: does the fallback make sense here?
domain: refererInfo.domain || location.hostname,
diff --git a/modules/impactifyBidAdapter.js b/modules/impactifyBidAdapter.js
index d35d4498136..f2bf9aaddcb 100644
--- a/modules/impactifyBidAdapter.js
+++ b/modules/impactifyBidAdapter.js
@@ -1,7 +1,7 @@
-import { deepAccess, deepSetValue, generateUUID } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { config } from '../src/config.js';
-import { ajax } from '../src/ajax.js';
+import {deepAccess, deepSetValue, generateUUID} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {config} from '../src/config.js';
+import {ajax} from '../src/ajax.js';
const BIDDER_CODE = 'impactify';
const BIDDER_ALIAS = ['imp'];
@@ -41,11 +41,11 @@ const getFloor = (bid) => {
const createOpenRtbRequest = (validBidRequests, bidderRequest) => {
// Create request and set imp bids inside
let request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
validBidRequests,
cur: [DEFAULT_CURRENCY],
imp: [],
- source: {tid: bidderRequest.auctionId}
+ source: {tid: bidderRequest.ortb2?.source?.tid}
};
// Get the url parameters
diff --git a/modules/improvedigitalBidAdapter.js b/modules/improvedigitalBidAdapter.js
index 24f3b2328b7..b56cc56a186 100644
--- a/modules/improvedigitalBidAdapter.js
+++ b/modules/improvedigitalBidAdapter.js
@@ -150,8 +150,7 @@ export const CONVERTER = ortbConverter({
mergeDeep(request, {
id: getUniqueIdentifierStr(),
source: {
- // TODO: once https://github.com/prebid/Prebid.js/issues/8573 is resolved, this should be handled by the base ortbConverter logic
- tid: context.bidRequests[0].auctionId,
+
},
ext: {
improvedigital: {
diff --git a/modules/innityBidAdapter.js b/modules/innityBidAdapter.js
index 71fe588441c..99eec210193 100644
--- a/modules/innityBidAdapter.js
+++ b/modules/innityBidAdapter.js
@@ -30,6 +30,7 @@ export const spec = {
vph: window.screen.height,
callback: 'json',
callback_uid: bidRequest.bidId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auction: bidRequest.auctionId,
},
};
diff --git a/modules/insticatorBidAdapter.js b/modules/insticatorBidAdapter.js
index 46ff17d2a5a..c770ac69dbe 100644
--- a/modules/insticatorBidAdapter.js
+++ b/modules/insticatorBidAdapter.js
@@ -176,7 +176,7 @@ function buildRequest(validBidRequests, bidderRequest) {
tmax: bidderRequest.timeout,
source: {
fd: 1,
- tid: bidderRequest.auctionId,
+ tid: bidderRequest.ortb2?.source?.tid,
},
site: {
// TODO: are these the right refererInfo values?
diff --git a/modules/interactiveOffersBidAdapter.js b/modules/interactiveOffersBidAdapter.js
index 1fad231dff2..feb576fbb02 100644
--- a/modules/interactiveOffersBidAdapter.js
+++ b/modules/interactiveOffersBidAdapter.js
@@ -49,7 +49,7 @@ export const spec = {
return ret;
},
buildRequests: function(validBidRequests, bidderRequest) {
- let aux = parseRequestPrebidjsToOpenRTB(bidderRequest);
+ let aux = parseRequestPrebidjsToOpenRTB(bidderRequest, bidderRequest);
let payload = aux.payload;
return {
method: 'POST',
@@ -71,7 +71,7 @@ export const spec = {
}
};
-function parseRequestPrebidjsToOpenRTB(prebidRequest) {
+function parseRequestPrebidjsToOpenRTB(prebidRequest, bidderRequest) {
let ret = {
payload: {},
partnerId: null
@@ -81,10 +81,11 @@ function parseRequestPrebidjsToOpenRTB(prebidRequest) {
let domain = window.location.hostname;
let secure = (window.location.protocol == 'https:' ? 1 : 0);
let openRTBRequest = JSON.parse(JSON.stringify(DEFAULT['OpenRTBBidRequest']));
- openRTBRequest.id = prebidRequest.auctionId;
+ openRTBRequest.id = bidderRequest.bidderRequestId;
openRTBRequest.ext = {
// TODO: please do not send internal data structures over the network
refererInfo: prebidRequest.refererInfo.legacy,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: prebidRequest.auctionId
};
@@ -105,7 +106,7 @@ function parseRequestPrebidjsToOpenRTB(prebidRequest) {
openRTBRequest.source = JSON.parse(JSON.stringify(DEFAULT['OpenRTBBidRequestSource']));
openRTBRequest.source.fd = 0;
- openRTBRequest.source.tid = prebidRequest.auctionId;
+ openRTBRequest.source.tid = prebidRequest.ortb2?.source?.tid;
openRTBRequest.source.pchain = '';
openRTBRequest.device = JSON.parse(JSON.stringify(DEFAULT['OpenRTBBidRequestDevice']));
diff --git a/modules/iqmBidAdapter.js b/modules/iqmBidAdapter.js
index 51cd8b3bdca..c3808afd225 100644
--- a/modules/iqmBidAdapter.js
+++ b/modules/iqmBidAdapter.js
@@ -111,6 +111,7 @@ export const spec = {
device: device,
site: site,
imp: imp,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
adUnitCode: bid.adUnitCode,
bidderRequestId: bid.bidderRequestId,
diff --git a/modules/ixBidAdapter.js b/modules/ixBidAdapter.js
index 505c5cb5b25..ec2b0fff559 100644
--- a/modules/ixBidAdapter.js
+++ b/modules/ixBidAdapter.js
@@ -638,6 +638,7 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
siteID = validBidRequests[0].params.siteId;
payload.s = siteID;
+ // TODO: this logic should stop relying on `transactionId` always being available; see: https://github.com/prebid/Prebid.js/issues/9781
const transactionIds = Object.keys(impressions);
let isFpdAdded = false;
@@ -776,7 +777,7 @@ function enrichRequest(r, bidderRequest, impressions, validBidRequests, userEids
// set source.tid to auctionId for outgoing request to Exchange.
r.source = {
- tid: validBidRequests[0].auctionId,
+ tid: bidderRequest?.ortb2?.source?.tid
}
// if an schain is provided, send it along
diff --git a/modules/jixieBidAdapter.js b/modules/jixieBidAdapter.js
index 586fce84804..b587011c748 100644
--- a/modules/jixieBidAdapter.js
+++ b/modules/jixieBidAdapter.js
@@ -201,6 +201,7 @@ export const spec = {
}
let transformedParams = Object.assign({}, {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionid: bidderRequest.auctionId,
timeout: bidderRequest.timeout,
currency: currency,
diff --git a/modules/kargoBidAdapter.js b/modules/kargoBidAdapter.js
index b612c88bb12..806af3311b0 100644
--- a/modules/kargoBidAdapter.js
+++ b/modules/kargoBidAdapter.js
@@ -82,6 +82,7 @@ function buildRequests(validBidRequests, bidderRequest) {
const krakenParams = Object.assign({}, {
pbv: PREBID_VERSION,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
aid: firstBidRequest.auctionId,
sid: _getSessionId(),
url: metadata.pageURL,
@@ -438,7 +439,7 @@ function sendTimeoutData(auctionId, auctionTimeout) {
function getImpression(bid) {
const imp = {
id: bid.bidId,
- tid: bid.transactionId,
+ tid: bid.ortb2Imp?.ext?.tid,
pid: bid.params.placementId,
code: bid.adUnitCode
};
diff --git a/modules/koblerBidAdapter.js b/modules/koblerBidAdapter.js
index 4eef99024f9..596e5b2695f 100644
--- a/modules/koblerBidAdapter.js
+++ b/modules/koblerBidAdapter.js
@@ -90,6 +90,7 @@ export const onTimeout = function (timeoutDataArray) {
timeoutDataArray.forEach(timeoutData => {
const query = parseQueryStringParameters({
ad_unit_code: timeoutData.adUnitCode,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auction_id: timeoutData.auctionId,
bid_id: timeoutData.bidId,
timeout: timeoutData.timeout,
@@ -126,7 +127,7 @@ function buildOpenRtbBidRequestPayload(validBidRequests, bidderRequest) {
const timeout = bidderRequest.timeout;
const pageUrl = getPageUrlFromRequest(validBidRequests[0], bidderRequest)
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
at: 1,
tmax: timeout,
cur: [SUPPORTED_CURRENCY],
diff --git a/modules/kueezBidAdapter.js b/modules/kueezBidAdapter.js
index 6efb67ddec8..0a868661310 100644
--- a/modules/kueezBidAdapter.js
+++ b/modules/kueezBidAdapter.js
@@ -249,7 +249,7 @@ function generateBidParameters(bid, bidderRequest) {
floorPrice: Math.max(getFloorPrice(bid, mediaType), paramsFloorPrice),
mediaType,
sizes: sizesArray,
- transactionId: getBidIdParameter('transactionId', bid)
+ transactionId: bid.ortb2Imp?.ext?.tid || ''
};
if (pos) {
diff --git a/modules/kueezRtbBidAdapter.js b/modules/kueezRtbBidAdapter.js
index 02d98064ca2..bb0534d6372 100644
--- a/modules/kueezRtbBidAdapter.js
+++ b/modules/kueezRtbBidAdapter.js
@@ -96,6 +96,7 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
schain: schain,
mediaTypes: mediaTypes,
gpid: gpid,
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId,
transactionId: transactionId,
bidderRequestId: bidderRequestId,
diff --git a/modules/kulturemediaBidAdapter.js b/modules/kulturemediaBidAdapter.js
index ef0f41536a9..fb3f6e4e231 100644
--- a/modules/kulturemediaBidAdapter.js
+++ b/modules/kulturemediaBidAdapter.js
@@ -1,13 +1,14 @@
import {
- deepSetValue,
- logInfo,
deepAccess,
- logError,
+ deepSetValue,
+ isArray,
isFn,
+ isNumber,
isPlainObject,
isStr,
- isNumber,
- isArray, logMessage
+ logError,
+ logInfo,
+ logMessage
} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER, VIDEO} from '../src/mediaTypes.js';
@@ -423,7 +424,7 @@ function buildBannerRequestData(bidRequests, bidderRequest) {
}));
const openrtbRequest = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: impr,
site: {
domain: bidderRequest.refererInfo?.domain,
diff --git a/modules/lassoBidAdapter.js b/modules/lassoBidAdapter.js
index ad25cbe1e85..e1f9636e4f1 100644
--- a/modules/lassoBidAdapter.js
+++ b/modules/lassoBidAdapter.js
@@ -37,9 +37,10 @@ export const spec = {
url: encodeURIComponent(window.location.href),
bidderRequestId: bidRequest.bidderRequestId,
adUnitCode: bidRequest.adUnitCode,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
device: encodeURIComponent(JSON.stringify(getDeviceData())),
sizes,
aimXR,
diff --git a/modules/limelightDigitalBidAdapter.js b/modules/limelightDigitalBidAdapter.js
index 601d78578b3..c7fbc13a8e1 100644
--- a/modules/limelightDigitalBidAdapter.js
+++ b/modules/limelightDigitalBidAdapter.js
@@ -148,7 +148,7 @@ function buildPlacement(bidRequest) {
adUnit: {
id: bidRequest.params.adUnitId,
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
sizes: sizes.map(size => {
return {
width: size[0],
diff --git a/modules/livewrappedBidAdapter.js b/modules/livewrappedBidAdapter.js
index 4742b4113b5..82affe40e03 100644
--- a/modules/livewrappedBidAdapter.js
+++ b/modules/livewrappedBidAdapter.js
@@ -77,6 +77,7 @@ export const spec = {
}
const payload = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId ? auctionId.auctionId : undefined,
publisherId: publisherId ? publisherId.params.publisherId : undefined,
userId: userId ? userId.params.userId : (pubcid ? pubcid.crumbs.pubcid : undefined),
@@ -230,7 +231,7 @@ function bidToAdRequest(bid, currency) {
adUnitId: bid.params.adUnitId,
callerAdUnitId: bid.params.adUnitName || bid.adUnitCode || bid.placementCode,
bidId: bid.bidId,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
formats: getSizes(bid).map(sizeToFormat),
flr: getBidFloor(bid, currency),
options: bid.params.options
diff --git a/modules/logicadBidAdapter.js b/modules/logicadBidAdapter.js
index 034450c447f..a50af601ae1 100644
--- a/modules/logicadBidAdapter.js
+++ b/modules/logicadBidAdapter.js
@@ -53,12 +53,13 @@ export const spec = {
function newBidRequest(bid, bidderRequest) {
return {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
bidderRequestId: bid.bidderRequestId,
bids: [{
adUnitCode: bid.adUnitCode,
bidId: bid.bidId,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
sizes: bid.sizes,
params: bid.params,
mediaTypes: bid.mediaTypes
diff --git a/modules/loglyliftBidAdapter.js b/modules/loglyliftBidAdapter.js
index 47f6e54485d..7cd76bb719d 100644
--- a/modules/loglyliftBidAdapter.js
+++ b/modules/loglyliftBidAdapter.js
@@ -64,9 +64,10 @@ function newBidRequest(bid, bidderRequest) {
const currency = (currencyObj && currencyObj.adServerCurrency) || 'USD';
return {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
bidderRequestId: bid.bidderRequestId,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
adUnitCode: bid.adUnitCode,
bidId: bid.bidId,
mediaTypes: bid.mediaTypes,
diff --git a/modules/luponmediaBidAdapter.js b/modules/luponmediaBidAdapter.js
index 0a4887c007d..20fa601bade 100755
--- a/modules/luponmediaBidAdapter.js
+++ b/modules/luponmediaBidAdapter.js
@@ -1,8 +1,20 @@
-import {isArray, logMessage, deepAccess, logWarn, parseSizesInput, deepSetValue, generateUUID, isEmpty, logError, _each, isFn} from '../src/utils.js';
+import {
+ _each,
+ deepAccess,
+ deepSetValue,
+ generateUUID,
+ isArray,
+ isEmpty,
+ isFn,
+ logError,
+ logMessage,
+ logWarn,
+ parseSizesInput
+} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {config} from '../src/config.js';
import {BANNER} from '../src/mediaTypes.js';
-import { ajax } from '../src/ajax.js';
+import {ajax} from '../src/ajax.js';
const BIDDER_CODE = 'luponmedia';
const ENDPOINT_URL = 'https://rtb.adxpremium.services/openrtb2/auction';
@@ -287,10 +299,10 @@ function newOrtbBidRequest(bidRequest, bidderRequest, currentImps) {
}
const data = {
- id: bidRequest.transactionId,
+ id: bidderRequest.bidderRequestId,
test: config.getConfig('debug') ? 1 : 0,
source: {
- tid: bidRequest.auctionId
+ tid: bidderRequest.ortb2?.source?.tid,
},
tmax: bidderRequest.timeout,
imp: currentImps.concat([{
diff --git a/modules/malltvBidAdapter.js b/modules/malltvBidAdapter.js
index cee8e888986..5ac50936ed6 100644
--- a/modules/malltvBidAdapter.js
+++ b/modules/malltvBidAdapter.js
@@ -68,6 +68,7 @@ export const spec = {
});
let body = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId,
propertyId: propertyId,
pageViewGuid: pageViewGuid,
diff --git a/modules/mediaforceBidAdapter.js b/modules/mediaforceBidAdapter.js
index 744cf89d655..3d33bbf8c12 100644
--- a/modules/mediaforceBidAdapter.js
+++ b/modules/mediaforceBidAdapter.js
@@ -137,7 +137,7 @@ export const spec = {
bidfloor: bidfloor,
ext: {
mediaforce: {
- transactionId: bid.transactionId
+ transactionId: bid.ortb2Imp?.ext?.tid,
}
}
@@ -177,6 +177,7 @@ export const spec = {
},
ext: {
mediaforce: {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
hb_key: auctionId
}
},
diff --git a/modules/mediafuseBidAdapter.js b/modules/mediafuseBidAdapter.js
index 9995f957743..f13c3cf25f9 100644
--- a/modules/mediafuseBidAdapter.js
+++ b/modules/mediafuseBidAdapter.js
@@ -868,6 +868,7 @@ function bidToTag(bid) {
tag['banner_frameworks'] = bid.params.frameworks;
}
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
tag.ad_types.push(BANNER);
diff --git a/modules/mediagoBidAdapter.js b/modules/mediagoBidAdapter.js
index df768cebb92..055fef3bb39 100644
--- a/modules/mediagoBidAdapter.js
+++ b/modules/mediagoBidAdapter.js
@@ -285,6 +285,7 @@ function getParam(validBidRequests, bidderRequest) {
if (items && items.length) {
let c = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: 'mgprebidjs_' + auctionId,
test: +isTest,
at: 1,
diff --git a/modules/mediakeysBidAdapter.js b/modules/mediakeysBidAdapter.js
index de86bfa248f..7af43a3c549 100644
--- a/modules/mediakeysBidAdapter.js
+++ b/modules/mediakeysBidAdapter.js
@@ -20,7 +20,7 @@ import {
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {config} from '../src/config.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const AUCTION_TYPE = 1;
const BIDDER_CODE = 'mediakeys';
@@ -606,10 +606,8 @@ export const spec = {
const payload = createOrtbTemplate();
- // Pass the auctionId as ortb2 id
- // See https://github.com/prebid/Prebid.js/issues/6563
- deepSetValue(payload, 'id', bidderRequest.auctionId);
- deepSetValue(payload, 'source.tid', bidderRequest.auctionId);
+ deepSetValue(payload, 'id', bidderRequest.bidderRequestId);
+ deepSetValue(payload, 'source.tid', bidderRequest.ortb2.source?.tid);
validBidRequests.forEach(validBid => {
let bid = deepClone(validBid);
diff --git a/modules/medianetBidAdapter.js b/modules/medianetBidAdapter.js
index c398d8fd5db..b9e00f45df9 100644
--- a/modules/medianetBidAdapter.js
+++ b/modules/medianetBidAdapter.js
@@ -195,7 +195,7 @@ function slotParams(bidRequest) {
// check with Media.net Account manager for bid floor and crid parameters
let params = {
id: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
ext: {
dfp_id: bidRequest.adUnitCode,
display_count: bidRequest.bidRequestsCount
@@ -331,6 +331,7 @@ function generatePayload(bidRequests, bidderRequests) {
return {
site: siteDetails(bidRequests[0].params.site, bidderRequests),
ext: extParams(bidRequests[0], bidderRequests),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: bidRequests[0].auctionId,
imp: bidRequests.map(request => slotParams(request)),
ortb2: bidderRequests.ortb2,
diff --git a/modules/mediasniperBidAdapter.js b/modules/mediasniperBidAdapter.js
index 71fd270cf8e..378a804487a 100644
--- a/modules/mediasniperBidAdapter.js
+++ b/modules/mediasniperBidAdapter.js
@@ -59,7 +59,7 @@ export const spec = {
buildRequests: function (validBidRequests, bidderRequest) {
const payload = createOrtbTemplate();
- deepSetValue(payload, 'id', bidderRequest.auctionId);
+ deepSetValue(payload, 'id', bidderRequest.bidderRequestId);
validBidRequests.forEach((validBid) => {
let bid = deepClone(validBid);
diff --git a/modules/mediasquareBidAdapter.js b/modules/mediasquareBidAdapter.js
index 4076cd6927a..274cbadca06 100644
--- a/modules/mediasquareBidAdapter.js
+++ b/modules/mediasquareBidAdapter.js
@@ -59,8 +59,9 @@ export const spec = {
code: adunitValue.params.code,
adunit: adunitValue.adUnitCode,
bidId: adunitValue.bidId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: adunitValue.auctionId,
- transactionId: adunitValue.transactionId,
+ transactionId: adunitValue.ortb2Imp?.ext?.tid,
mediatypes: adunitValue.mediaTypes,
floor: floor
});
diff --git a/modules/microadBidAdapter.js b/modules/microadBidAdapter.js
index 13aea0f3f77..d05bc5e3245 100644
--- a/modules/microadBidAdapter.js
+++ b/modules/microadBidAdapter.js
@@ -73,7 +73,7 @@ export const spec = {
url: bidderRequest.refererInfo.page || window.location.href,
referrer: bidderRequest.refererInfo.ref,
bid_id: bid.bidId,
- transaction_id: bid.transactionId,
+ transaction_id: bid.ortb2Imp?.ext?.tid,
media_types: convertMediaTypes(bid),
cbt: createCBT()
};
diff --git a/modules/minutemediaBidAdapter.js b/modules/minutemediaBidAdapter.js
index c19ebbda311..6bf6d5ad863 100644
--- a/modules/minutemediaBidAdapter.js
+++ b/modules/minutemediaBidAdapter.js
@@ -288,7 +288,7 @@ function generateBidParameters(bid, bidderRequest) {
bidId: getBidIdParameter('bidId', bid),
loop: getBidIdParameter('bidderRequestsCount', bid),
bidderRequestId: getBidIdParameter('bidderRequestId', bid),
- transactionId: getBidIdParameter('transactionId', bid),
+ transactionId: bid.ortb2Imp?.ext?.tid || '',
coppa: 0
};
@@ -388,6 +388,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,
device_type: getDeviceType(navigator.userAgent),
ua: navigator.userAgent,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
session_id: getBidIdParameter('auctionId', generalObject),
tmax: timeout
}
diff --git a/modules/minutemediaplusBidAdapter.js b/modules/minutemediaplusBidAdapter.js
index 7e76e1b6a17..33f3634e17f 100644
--- a/modules/minutemediaplusBidAdapter.js
+++ b/modules/minutemediaplusBidAdapter.js
@@ -53,7 +53,7 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
schain,
mediaTypes,
auctionId,
- transactionId,
+ ortb2Imp,
bidderRequestId,
bidRequestsCount,
bidderRequestsCount,
@@ -97,8 +97,9 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
schain: schain,
mediaTypes: mediaTypes,
gpid: gpid,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId,
- transactionId: transactionId,
+ transactionId: ortb2Imp?.ext?.tid,
bidderRequestId: bidderRequestId,
bidRequestsCount: bidRequestsCount,
bidderRequestsCount: bidderRequestsCount,
diff --git a/modules/newspassidBidAdapter.js b/modules/newspassidBidAdapter.js
index ec28a625599..b440edc2beb 100644
--- a/modules/newspassidBidAdapter.js
+++ b/modules/newspassidBidAdapter.js
@@ -1,9 +1,10 @@
-import { logInfo, logError, deepAccess, logWarn, deepSetValue, isArray, contains, parseUrl } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { BANNER, NATIVE } from '../src/mediaTypes.js';
+import {contains, deepAccess, deepSetValue, isArray, logError, logInfo, logWarn, parseUrl} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, NATIVE} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
import {getPriceBucketString} from '../src/cpmBucketManager.js';
import {getRefererInfo} from '../src/refererDetection.js';
+
const BIDDER_CODE = 'newspassid';
const ORIGIN = 'https://bidder.newspassid.com' // applies only to auction & cookie
const AUCTIONURI = '/openrtb2/auction';
@@ -258,6 +259,7 @@ export const spec = {
}
if (singleRequest) {
logInfo('buildRequests starting to generate response for a single request');
+ // TODO: fix auctionId & transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
npRequest.id = bidderRequest.auctionId; // Unique ID of the bid request, provided by the exchange.
npRequest.auctionId = bidderRequest.auctionId; // not sure if this should be here?
npRequest.imp = tosendtags;
diff --git a/modules/nextMillenniumBidAdapter.js b/modules/nextMillenniumBidAdapter.js
index 89c6e677007..cb660ad9fd6 100644
--- a/modules/nextMillenniumBidAdapter.js
+++ b/modules/nextMillenniumBidAdapter.js
@@ -1,25 +1,25 @@
import {
- isArray,
_each,
createTrackPixelHtml,
deepAccess,
- isStr,
- getWindowTop,
getBidIdParameter,
+ getDefinedParams,
+ getWindowTop,
+ isArray,
+ isStr,
logMessage,
+ parseGPTSingleSizeArrayToRtbSize,
parseUrl,
triggerPixel,
- getDefinedParams,
- parseGPTSingleSizeArrayToRtbSize,
} from '../src/utils.js';
import CONSTANTS from '../src/constants.json';
-import { BANNER, VIDEO } from '../src/mediaTypes.js';
+import {BANNER, VIDEO} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
import * as events from '../src/events.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { getRefererInfo } from '../src/refererDetection.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {getRefererInfo} from '../src/refererDetection.js';
const BIDDER_CODE = 'nextMillennium';
const ENDPOINT = 'https://pbs.nextmillmedia.com/openrtb2/auction';
@@ -69,7 +69,7 @@ export const spec = {
const device = getDeviceObj();
const postBody = {
- 'id': bid.auctionId,
+ 'id': bidderRequest?.bidderRequestId,
'ext': {
'prebid': {
'storedrequest': {
@@ -174,6 +174,7 @@ export const spec = {
const params = bidRequest.params;
const auctionId = bidRequest.auctionId;
const wurl = deepAccess(bid, 'ext.prebid.events.win');
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
addWurl({auctionId, requestId, wurl});
const {ad, adUrl, vastUrl, vastXml} = getAd(bid);
diff --git a/modules/oguryBidAdapter.js b/modules/oguryBidAdapter.js
index d09320c00fe..718ae44c83c 100644
--- a/modules/oguryBidAdapter.js
+++ b/modules/oguryBidAdapter.js
@@ -1,9 +1,9 @@
'use strict';
-import { BANNER } from '../src/mediaTypes.js';
-import { getAdUnitSizes, logWarn, isFn, getWindowTop, getWindowSelf } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { ajax } from '../src/ajax.js'
+import {BANNER} from '../src/mediaTypes.js';
+import {getAdUnitSizes, getWindowSelf, getWindowTop, isFn, logWarn} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {ajax} from '../src/ajax.js';
const BIDDER_CODE = 'ogury';
const GVLID = 31;
@@ -66,7 +66,7 @@ function getUserSyncs(syncOptions, serverResponses, gdprConsent, uspConsent) {
function buildRequests(validBidRequests, bidderRequest) {
const openRtbBidRequestBanner = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
tmax: DEFAULT_TIMEOUT,
at: 1,
regs: {
diff --git a/modules/onetagBidAdapter.js b/modules/onetagBidAdapter.js
index 2ae879cdcbc..724a53a3095 100644
--- a/modules/onetagBidAdapter.js
+++ b/modules/onetagBidAdapter.js
@@ -264,8 +264,9 @@ function setGeneralInfo(bidRequest) {
this['adUnitCode'] = bidRequest.adUnitCode;
this['bidId'] = bidRequest.bidId;
this['bidderRequestId'] = bidRequest.bidderRequestId;
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
this['auctionId'] = bidRequest.auctionId;
- this['transactionId'] = bidRequest.transactionId;
+ this['transactionId'] = bidRequest.ortb2Imp?.ext?.tid;
this['gpid'] = deepAccess(bidRequest, 'ortb2Imp.ext.gpid') || deepAccess(bidRequest, 'ortb2Imp.ext.data.pbadslot');
this['pubId'] = params.pubId;
this['ext'] = params.ext;
diff --git a/modules/operaadsBidAdapter.js b/modules/operaadsBidAdapter.js
index 48c6246ce6b..e721fb85fd7 100644
--- a/modules/operaadsBidAdapter.js
+++ b/modules/operaadsBidAdapter.js
@@ -16,7 +16,7 @@ import {config} from '../src/config.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import {Renderer} from '../src/Renderer.js';
import {OUTSTREAM} from '../src/video.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const BIDDER_CODE = 'operaads';
@@ -227,7 +227,7 @@ export const spec = {
function buildOpenRtbBidRequest(bidRequest, bidderRequest) {
// build OpenRTB request body
const payload = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
tmax: bidderRequest.timeout,
test: config.getConfig('debug') ? 1 : 0,
imp: createImp(bidRequest),
diff --git a/modules/optidigitalBidAdapter.js b/modules/optidigitalBidAdapter.js
index 4372aa830e6..a0fa641a424 100755
--- a/modules/optidigitalBidAdapter.js
+++ b/modules/optidigitalBidAdapter.js
@@ -46,6 +46,7 @@ export const spec = {
referrer: (bidderRequest.refererInfo && bidderRequest.refererInfo.page) ? bidderRequest.refererInfo.page : '',
hb_version: '$prebid.version$',
deviceWidth: document.documentElement.clientWidth,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: deepAccess(validBidRequests[0], 'auctionId'),
bidderRequestId: deepAccess(validBidRequests[0], 'bidderRequestId'),
publisherId: deepAccess(validBidRequests[0], 'params.publisherId'),
@@ -107,7 +108,6 @@ export const spec = {
serverResponse.bids.forEach((bid) => {
const bidResponse = {
placementId: bid.placementId,
- transactionId: bid.transactionId,
requestId: bid.bidId,
ttl: bid.ttl,
creativeId: bid.creativeId,
@@ -161,7 +161,7 @@ function buildImp(bidRequest, ortb2) {
sizes: parseSizesInput(deepAccess(bidRequest, 'mediaTypes.banner.sizes')),
bidId: deepAccess(bidRequest, 'bidId'),
adUnitCode: deepAccess(bidRequest, 'adUnitCode'),
- transactionId: deepAccess(bidRequest, 'transactionId'),
+ transactionId: deepAccess(bidRequest, 'ortb2Imp.ext.tid'),
placementId: deepAccess(bidRequest, 'params.placementId')
};
diff --git a/modules/orbidderBidAdapter.js b/modules/orbidderBidAdapter.js
index b84c67ba6d2..f135ebb2bd1 100644
--- a/modules/orbidderBidAdapter.js
+++ b/modules/orbidderBidAdapter.js
@@ -101,7 +101,8 @@ export const spec = {
pageUrl: referer,
bidId: bidRequest.bidId,
auctionId: bidRequest.auctionId,
- transactionId: bidRequest.transactionId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
adUnitCode: bidRequest.adUnitCode,
bidRequestCount: bidRequest.bidRequestCount,
params: bidRequest.params,
diff --git a/modules/otmBidAdapter.js b/modules/otmBidAdapter.js
index 1230694fc65..6125cee6593 100644
--- a/modules/otmBidAdapter.js
+++ b/modules/otmBidAdapter.js
@@ -53,7 +53,8 @@ export const spec = {
const domain = isStr(bid.params.domain) ? bid.params.domain : topOrigin
const cur = getValue(bid.params, 'currency') || DEFAULT_CURRENCY
const bidid = getBidIdParameter('bidId', bid)
- const transactionid = getBidIdParameter('transactionId', bid)
+ const transactionid = bid.ortb2Imp?.ext?.tid || '';
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
const auctionid = getBidIdParameter('auctionId', bid)
const bidfloor = _getBidFloor(bid)
@@ -112,7 +113,6 @@ export const spec = {
netRevenue: true,
ad: bid.ad,
ttl: bid.ttl,
- transactionId: bid.transactionid,
meta: {
advertiserDomains: bid.adDomain ? [bid.adDomain] : []
}
diff --git a/modules/outbrainBidAdapter.js b/modules/outbrainBidAdapter.js
index 6bcbc6a1cba..0637d680912 100644
--- a/modules/outbrainBidAdapter.js
+++ b/modules/outbrainBidAdapter.js
@@ -1,16 +1,14 @@
// jshint esversion: 6, es3: false, node: true
'use strict';
-import {
- registerBidder
-} from '../src/adapters/bidderFactory.js';
-import { NATIVE, BANNER, VIDEO } from '../src/mediaTypes.js';
-import { OUTSTREAM } from '../src/video.js';
-import { deepAccess, deepSetValue, replaceAuctionPrice, _map, isArray, logWarn } from '../src/utils.js';
-import { ajax } from '../src/ajax.js';
-import { config } from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
-import { Renderer } from '../src/Renderer.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
+import {OUTSTREAM} from '../src/video.js';
+import {_map, deepAccess, deepSetValue, isArray, logWarn, replaceAuctionPrice} from '../src/utils.js';
+import {ajax} from '../src/ajax.js';
+import {config} from '../src/config.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
+import {Renderer} from '../src/Renderer.js';
const BIDDER_CODE = 'outbrain';
const GVLID = 164;
@@ -107,7 +105,7 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site: { page, publisher },
device: { ua },
source: { fd: 1 },
diff --git a/modules/ozoneBidAdapter.js b/modules/ozoneBidAdapter.js
index 8882859b532..1b725ce3a05 100644
--- a/modules/ozoneBidAdapter.js
+++ b/modules/ozoneBidAdapter.js
@@ -262,6 +262,7 @@ export const spec = {
obj.placementId = placementId;
deepSetValue(obj, 'ext.prebid', {'storedrequest': {'id': placementId}});
obj.ext[whitelabelBidder] = {};
+ // TODO: fix auctionId/transactionID leak: https://github.com/prebid/Prebid.js/issues/9781
obj.ext[whitelabelBidder].adUnitCode = ozoneBidRequest.adUnitCode; // eg. 'mpu'
obj.ext[whitelabelBidder].transactionId = ozoneBidRequest.transactionId; // this is the transactionId PER adUnit, common across bidders for this unit
if (ozoneBidRequest.params.hasOwnProperty('customData')) {
diff --git a/modules/padsquadBidAdapter.js b/modules/padsquadBidAdapter.js
index d5fe37ef34b..48471fc98e3 100644
--- a/modules/padsquadBidAdapter.js
+++ b/modules/padsquadBidAdapter.js
@@ -1,4 +1,4 @@
-import { logInfo, deepAccess } from '../src/utils.js';
+import {deepAccess, logInfo} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
@@ -40,7 +40,7 @@ export const spec = {
}));
const openrtbRequest = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: impressions,
site: {
domain: bidderRequest?.refererInfo?.domain,
diff --git a/modules/pixfutureBidAdapter.js b/modules/pixfutureBidAdapter.js
index 5019b31b90b..6fc866b5ff9 100644
--- a/modules/pixfutureBidAdapter.js
+++ b/modules/pixfutureBidAdapter.js
@@ -136,8 +136,9 @@ export const spec = {
v: getGlobal().version,
pageUrl: referer,
bidId: bidRequest.bidId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
adUnitCode: bidRequest.adUnitCode,
bidRequestCount: bidRequest.bidRequestCount,
sizes: bidRequest.sizes,
@@ -302,7 +303,7 @@ function bidToTag(bid) {
if (bid.params.frameworks && isArray(bid.params.frameworks)) {
tag['banner_frameworks'] = bid.params.frameworks;
}
-
+ // TODO: why does this need to iterate through every adUnit?
let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
tag.ad_types.push(BANNER);
diff --git a/modules/prismaBidAdapter.js b/modules/prismaBidAdapter.js
index 52a8c18a6fd..94e577d75fe 100644
--- a/modules/prismaBidAdapter.js
+++ b/modules/prismaBidAdapter.js
@@ -70,8 +70,9 @@ export const spec = {
tagId: adunitValue.params.tagId,
label: adunitValue.adUnitCode,
bidId: adunitValue.bidId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: adunitValue.auctionId,
- transactionId: adunitValue.transactionId,
+ transactionId: adunitValue.ortb2Imp?.ext?.tid,
mediatypes: adunitValue.mediaTypes,
bidfloor: 0,
bidfloorCurrency: 'USD',
diff --git a/modules/proxistoreBidAdapter.js b/modules/proxistoreBidAdapter.js
index 1f113f9c432..d7661acda07 100644
--- a/modules/proxistoreBidAdapter.js
+++ b/modules/proxistoreBidAdapter.js
@@ -24,8 +24,9 @@ function _createServerRequest(bidRequests, bidderRequest) {
sizeIds.push(sizeId);
});
var payload = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequests[0].auctionId,
- transactionId: bidRequests[0].auctionId,
+ transactionId: bidRequests[0].ortb2Imp?.ext?.tid,
bids: sizeIds,
website: bidRequests[0].params.website,
language: bidRequests[0].params.language,
diff --git a/modules/pubgeniusBidAdapter.js b/modules/pubgeniusBidAdapter.js
index 5e7ce6fc9fb..d92a9352cee 100644
--- a/modules/pubgeniusBidAdapter.js
+++ b/modules/pubgeniusBidAdapter.js
@@ -1,7 +1,7 @@
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { ajax } from '../src/ajax.js';
-import { config } from '../src/config.js';
-import { BANNER, VIDEO } from '../src/mediaTypes.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {ajax} from '../src/ajax.js';
+import {config} from '../src/config.js';
+import {BANNER, VIDEO} from '../src/mediaTypes.js';
import {
deepAccess,
deepSetValue,
@@ -41,7 +41,7 @@ export const spec = {
buildRequests: function (bidRequests, bidderRequest) {
const data = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: bidRequests.map(buildImp),
tmax: bidderRequest.timeout,
ext: {
diff --git a/modules/pubmaticBidAdapter.js b/modules/pubmaticBidAdapter.js
index 2201945e48a..53504d58f31 100644
--- a/modules/pubmaticBidAdapter.js
+++ b/modules/pubmaticBidAdapter.js
@@ -1077,7 +1077,7 @@ export const spec = {
}
conf.pubId = conf.pubId || bid.params.publisherId;
conf = _handleCustomParams(bid.params, conf);
- conf.transactionId = bid.transactionId;
+ conf.transactionId = bid.ortb2Imp?.ext?.tid;
if (bidCurrency === '') {
bidCurrency = bid.params.currency || UNDEFINED;
} else if (bid.params.hasOwnProperty('currency') && bidCurrency !== bid.params.currency) {
@@ -1109,14 +1109,11 @@ export const spec = {
payload.ext.wrapper = {};
payload.ext.wrapper.profile = parseInt(conf.profId) || UNDEFINED;
payload.ext.wrapper.version = parseInt(conf.verId) || UNDEFINED;
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
payload.ext.wrapper.wiid = conf.wiid || bidderRequest.auctionId;
// eslint-disable-next-line no-undef
payload.ext.wrapper.wv = $$REPO_AND_VERSION$$;
-
- if (bidderRequest) {
- payload.ext.wrapper.transactionId = bidderRequest.auctionId;
- }
-
+ payload.ext.wrapper.transactionId = conf.transactionId;
payload.ext.wrapper.wp = 'pbjs';
const allowAlternateBidder = bidderRequest ? bidderSettings.get(bidderRequest.bidderCode, 'allowAlternateBidderCodes') : undefined;
if (allowAlternateBidder !== undefined) {
@@ -1155,8 +1152,8 @@ export const spec = {
// update device.language to ISO-639-1-alpha-2 (2 character language)
payload.device.language = payload.device.language && payload.device.language.split('-')[0];
- // passing auctionId in source.tid
- if (bidderRequest) deepSetValue(payload, 'source.tid', bidderRequest.auctionId);
+ // passing transactionId in source.tid
+ deepSetValue(payload, 'source.tid', bidderRequest?.ortb2?.source?.tid);
// test bids
if (window.location.href.indexOf('pubmaticTest=true') !== -1) {
diff --git a/modules/pubwiseBidAdapter.js b/modules/pubwiseBidAdapter.js
index a7381bb2884..094eff13b36 100644
--- a/modules/pubwiseBidAdapter.js
+++ b/modules/pubwiseBidAdapter.js
@@ -194,7 +194,7 @@ export const spec = {
_parseAdSlot(bid);
conf = _handleCustomParams(bid.params, conf);
- conf.transactionId = bid.transactionId;
+ conf.transactionId = bid.ortb2Imp?.ext?.tid;
bidCurrency = bid.params.currency || UNDEFINED;
bid.params.currency = bidCurrency;
@@ -242,7 +242,7 @@ export const spec = {
}
// passing transactionId in source.tid
- deepSetValue(payload, 'source.tid', bidderRequest?.auctionId);
+ deepSetValue(payload, 'source.tid', bidderRequest?.ortb2?.source?.tid);
// schain
if (validBidRequests[0].schain) {
@@ -528,7 +528,7 @@ function _createImpressionObject(bid, conf) {
secure: 1,
bidfloorcur: bid.params.currency ? _parseSlotParam('currency', bid.params.currency) : DEFAULT_CURRENCY, // capitalization dicated by 3.2.4 spec
ext: {
- tid: (bid.transactionId ? bid.transactionId : '')
+ tid: bid.ortb2Imp?.ext?.tid || ''
}
};
diff --git a/modules/pxyzBidAdapter.js b/modules/pxyzBidAdapter.js
index b40e0c79d6b..1ab432496a3 100644
--- a/modules/pxyzBidAdapter.js
+++ b/modules/pxyzBidAdapter.js
@@ -1,6 +1,6 @@
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { BANNER } from '../src/mediaTypes.js';
-import { logInfo, logError, isArray } from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER} from '../src/mediaTypes.js';
+import {isArray, logError, logInfo} from '../src/utils.js';
const BIDDER_CODE = 'pxyz';
const URL = 'https://ads.playground.xyz/host-config/prebid?v=2';
@@ -42,7 +42,7 @@ export const spec = {
}
const payload = {
- id: bidRequests[0].auctionId,
+ id: bidderRequest.bidderRequestId,
site: {
domain: protocol + '//' + hostname,
name: hostname,
diff --git a/modules/readpeakBidAdapter.js b/modules/readpeakBidAdapter.js
index 844e287c622..718d6504b56 100644
--- a/modules/readpeakBidAdapter.js
+++ b/modules/readpeakBidAdapter.js
@@ -41,7 +41,7 @@ export const spec = {
cur: [currency],
source: {
fd: 1,
- tid: bidderRequest.auctionId,
+ tid: bidderRequest.ortb2?.source?.tid,
ext: {
prebid: '$prebid.version$'
}
diff --git a/modules/relaidoBidAdapter.js b/modules/relaidoBidAdapter.js
index 347cf66ee2b..b2961b09eb5 100644
--- a/modules/relaidoBidAdapter.js
+++ b/modules/relaidoBidAdapter.js
@@ -85,9 +85,10 @@ function buildRequests(validBidRequests, bidderRequest) {
bids.push({
bid_id: bidRequest.bidId,
placement_id: getBidIdParameter('placementId', bidRequest.params),
- transaction_id: bidRequest.transactionId,
+ transaction_id: bidRequest.ortb2Imp?.ext?.tid,
bidder_request_id: bidRequest.bidderRequestId,
ad_unit_code: bidRequest.adUnitCode,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auction_id: bidRequest.auctionId,
player: bidRequest.params.player,
width: width,
diff --git a/modules/resetdigitalBidAdapter.js b/modules/resetdigitalBidAdapter.js
index 93846e402e9..8264e0cc9cc 100644
--- a/modules/resetdigitalBidAdapter.js
+++ b/modules/resetdigitalBidAdapter.js
@@ -105,6 +105,7 @@ export const spec = {
keywords: keywords.join(','),
zone_id: req.params.zoneId,
bid_id: req.bidId,
+ // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
imp_id: req.transactionId,
sizes: req.sizes,
force_bid: req.params.forceBid,
diff --git a/modules/revcontentBidAdapter.js b/modules/revcontentBidAdapter.js
index c0ed7799204..5bf7dd691e7 100644
--- a/modules/revcontentBidAdapter.js
+++ b/modules/revcontentBidAdapter.js
@@ -2,10 +2,10 @@
'use strict';
import {registerBidder} from '../src/adapters/bidderFactory.js';
-import { BANNER, NATIVE } from '../src/mediaTypes.js';
-import { triggerPixel, isFn, deepAccess, getAdUnitSizes, parseGPTSingleSizeArrayToRtbSize, _map } from '../src/utils.js';
+import {BANNER, NATIVE} from '../src/mediaTypes.js';
+import {_map, deepAccess, getAdUnitSizes, isFn, parseGPTSingleSizeArrayToRtbSize, triggerPixel} from '../src/utils.js';
import {parseDomain} from '../src/refererDetection.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const BIDDER_CODE = 'revcontent';
const NATIVE_PARAMS = {
@@ -65,7 +65,7 @@ export const spec = {
const imp = validBidRequests.map((bid, id) => buildImp(bid, id));
let data = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: imp,
site: {
id: widgetId,
@@ -215,8 +215,9 @@ function buildImp(bid, id) {
id: id + 1,
tagid: bid.adUnitCode,
bidderRequestId: bid.bidderRequestId,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
instl: 0,
bidfloor: bidfloor,
secure: '1'
diff --git a/modules/richaudienceBidAdapter.js b/modules/richaudienceBidAdapter.js
index 1faed74d84e..56ceaaa7444 100755
--- a/modules/richaudienceBidAdapter.js
+++ b/modules/richaudienceBidAdapter.js
@@ -36,6 +36,7 @@ export const spec = {
pid: bid.params.pid,
supplyType: bid.params.supplyType,
currencyCode: config.getConfig('currency.adServerCurrency'),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
bidId: bid.bidId,
BidRequestsCount: bid.bidRequestsCount,
@@ -46,7 +47,7 @@ export const spec = {
// TODO: is 'page' the right value here?
referer: (typeof bidderRequest.refererInfo.page != 'undefined' ? encodeURIComponent(bidderRequest.refererInfo.page) : null),
numIframes: (typeof bidderRequest.refererInfo.numIframes != 'undefined' ? bidderRequest.refererInfo.numIframes : null),
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
timeout: config.getConfig('bidderTimeout'),
user: raiSetEids(bid),
demand: raiGetDemandType(bid),
diff --git a/modules/riseBidAdapter.js b/modules/riseBidAdapter.js
index e0f196fb072..743a3c1cd70 100644
--- a/modules/riseBidAdapter.js
+++ b/modules/riseBidAdapter.js
@@ -291,7 +291,7 @@ function generateBidParameters(bid, bidderRequest) {
bidId: getBidIdParameter('bidId', bid),
bidderRequestId: getBidIdParameter('bidderRequestId', bid),
loop: getBidIdParameter('bidderRequestsCount', bid),
- transactionId: getBidIdParameter('transactionId', bid),
+ transactionId: bid.ortb2Imp?.ext?.tid,
coppa: 0
};
@@ -407,6 +407,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
device_type: getDeviceType(navigator.userAgent),
ua: navigator.userAgent,
is_wrapper: !!generalBidParams.isWrapper,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
session_id: generalBidParams.sessionId || getBidIdParameter('auctionId', generalObject),
tmax: timeout
};
diff --git a/modules/rtbhouseBidAdapter.js b/modules/rtbhouseBidAdapter.js
index 5ebf51b6e0d..5d687552201 100644
--- a/modules/rtbhouseBidAdapter.js
+++ b/modules/rtbhouseBidAdapter.js
@@ -1,10 +1,10 @@
-import {deepAccess, mergeDeep, isArray, logError, logInfo} from '../src/utils.js';
-import { getOrigin } from '../libraries/getOrigin/index.js';
+import {deepAccess, isArray, logError, logInfo, mergeDeep} from '../src/utils.js';
+import {getOrigin} from '../libraries/getOrigin/index.js';
import {BANNER, NATIVE} from '../src/mediaTypes.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {includes} from '../src/polyfill.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
-import { config } from '../src/config.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
+import {config} from '../src/config.js';
const BIDDER_CODE = 'rtbhouse';
const REGIONS = ['prebid-eu', 'prebid-us', 'prebid-asia'];
@@ -51,7 +51,7 @@ export const spec = {
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
const request = {
- id: validBidRequests[0].auctionId,
+ id: bidderRequest.bidderRequestId,
imp: validBidRequests.map(slot => mapImpression(slot, bidderRequest)),
site: mapSite(validBidRequests, bidderRequest),
cur: DEFAULT_CURRENCY_ARR,
diff --git a/modules/rtbsapeBidAdapter.js b/modules/rtbsapeBidAdapter.js
index cf3d79eb377..5b1a92b02a0 100644
--- a/modules/rtbsapeBidAdapter.js
+++ b/modules/rtbsapeBidAdapter.js
@@ -39,6 +39,7 @@ export const spec = {
url: ENDPOINT,
method: 'POST',
data: {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidderRequest.auctionId,
requestId: bidderRequest.bidderRequestId,
bids: validBidRequests,
diff --git a/modules/rubiconBidAdapter.js b/modules/rubiconBidAdapter.js
index 1e407d0bc0b..20dbf1e4995 100644
--- a/modules/rubiconBidAdapter.js
+++ b/modules/rubiconBidAdapter.js
@@ -468,8 +468,8 @@ export const spec = {
'rp_floor': (params.floor = parseFloat(params.floor)) >= 0.01 ? params.floor : undefined,
'rp_secure': '1',
'tk_flint': `${rubiConf.int_type || DEFAULT_INTEGRATION}_v$prebid.version$`,
- 'x_source.tid': deepAccess(bidderRequest, 'ortb2.source.tid'),
- 'x_imp.ext.tid': bidRequest.transactionId,
+ 'x_source.tid': bidderRequest.ortb2?.source?.tid,
+ 'x_imp.ext.tid': bidRequest.ortb2Imp?.ext?.tid,
'l_pb_bid_id': bidRequest.bidId,
'p_screen_res': _getScreenResolution(),
'tk_user_key': params.userId,
diff --git a/modules/seedingAllianceBidAdapter.js b/modules/seedingAllianceBidAdapter.js
index 79c15f306cd..e287ea7ff78 100755
--- a/modules/seedingAllianceBidAdapter.js
+++ b/modules/seedingAllianceBidAdapter.js
@@ -1,11 +1,11 @@
// jshint esversion: 6, es3: false, node: true
'use strict';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
-import { NATIVE, BANNER } from '../src/mediaTypes.js';
-import { _map, isArray, isEmpty, deepSetValue, replaceAuctionPrice } from '../src/utils.js';
-import { config } from '../src/config.js';
-import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, NATIVE} from '../src/mediaTypes.js';
+import {_map, deepSetValue, isArray, isEmpty, replaceAuctionPrice} from '../src/utils.js';
+import {config} from '../src/config.js';
+import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
const GVL_ID = 371;
const BIDDER_CODE = 'seedingAlliance';
@@ -110,7 +110,7 @@ export const spec = {
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
site: {
page: url
},
diff --git a/modules/seedtagBidAdapter.js b/modules/seedtagBidAdapter.js
index f54245a41ab..7ac7d048c50 100644
--- a/modules/seedtagBidAdapter.js
+++ b/modules/seedtagBidAdapter.js
@@ -110,7 +110,7 @@ function buildBidRequest(validBidRequest) {
const bidRequest = {
id: validBidRequest.bidId,
- transactionId: validBidRequest.transactionId,
+ transactionId: validBidRequest.ortb2Imp?.ext?.tid,
sizes: validBidRequest.sizes,
supplyTypes: mediaTypes,
adUnitId: params.adUnitId,
diff --git a/modules/sharethroughBidAdapter.js b/modules/sharethroughBidAdapter.js
index 9c91af8b130..acaeb41f527 100644
--- a/modules/sharethroughBidAdapter.js
+++ b/modules/sharethroughBidAdapter.js
@@ -51,7 +51,7 @@ export const sharethroughAdapterSpec = {
ext: {},
},
source: {
- tid: bidderRequest.auctionId,
+ tid: bidderRequest.ortb2?.source?.tid,
ext: {
version: '$prebid.version$',
str: VERSION,
diff --git a/modules/shinezBidAdapter.js b/modules/shinezBidAdapter.js
index f93736894f5..96b6d281fdc 100644
--- a/modules/shinezBidAdapter.js
+++ b/modules/shinezBidAdapter.js
@@ -1,435 +1,435 @@
-import { logWarn, logInfo, isArray, isFn, deepAccess, isEmpty, contains, timestamp, getBidIdParameter, triggerPixel, isInteger } from '../src/utils.js';
-import {registerBidder} from '../src/adapters/bidderFactory.js';
-import {BANNER, VIDEO} from '../src/mediaTypes.js';
-import {config} from '../src/config.js';
-
-const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
-const BIDDER_CODE = 'shinez';
-const ADAPTER_VERSION = '1.0.0';
-const TTL = 360;
-const CURRENCY = 'USD';
-const SELLER_ENDPOINT = 'https://hb.sweetgum.io/';
-const MODES = {
- PRODUCTION: 'hb-sz-multi',
- TEST: 'hb-multi-sz-test'
-}
-const SUPPORTED_SYNC_METHODS = {
- IFRAME: 'iframe',
- PIXEL: 'pixel'
-}
-
-export const spec = {
- code: BIDDER_CODE,
- version: ADAPTER_VERSION,
- supportedMediaTypes: SUPPORTED_AD_TYPES,
- isBidRequestValid: function (bidRequest) {
- if (!bidRequest.params) {
- logWarn('no params have been set to Shinez adapter');
- return false;
- }
-
- if (!bidRequest.params.org) {
- logWarn('org is a mandatory param for Shinez adapter');
- return false;
- }
-
- return true;
- },
- buildRequests: function (validBidRequests, bidderRequest) {
- const combinedRequestsObject = {};
-
- // use data from the first bid, to create the general params for all bids
- const generalObject = validBidRequests[0];
- const testMode = generalObject.params.testMode;
-
- combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
- combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
-
- return {
- method: 'POST',
- url: getEndpoint(testMode),
- data: combinedRequestsObject
- }
- },
- interpretResponse: function ({body}) {
- const bidResponses = [];
-
- if (body.bids) {
- body.bids.forEach(adUnit => {
- const bidResponse = {
- requestId: adUnit.requestId,
- cpm: adUnit.cpm,
- currency: adUnit.currency || CURRENCY,
- width: adUnit.width,
- height: adUnit.height,
- ttl: adUnit.ttl || TTL,
- creativeId: adUnit.requestId,
- netRevenue: adUnit.netRevenue || true,
- nurl: adUnit.nurl,
- mediaType: adUnit.mediaType,
- meta: {
- mediaType: adUnit.mediaType
- }
- };
-
- if (adUnit.mediaType === VIDEO) {
- bidResponse.vastXml = adUnit.vastXml;
- } else if (adUnit.mediaType === BANNER) {
- bidResponse.ad = adUnit.ad;
- }
-
- if (adUnit.adomain && adUnit.adomain.length) {
- bidResponse.meta.advertiserDomains = adUnit.adomain;
- }
-
- bidResponses.push(bidResponse);
- });
- }
-
- return bidResponses;
- },
- getUserSyncs: function (syncOptions, serverResponses) {
- const syncs = [];
- for (const response of serverResponses) {
- if (syncOptions.iframeEnabled && response.body.params.userSyncURL) {
- syncs.push({
- type: 'iframe',
- url: response.body.params.userSyncURL
- });
- }
- if (syncOptions.pixelEnabled && isArray(response.body.params.userSyncPixels)) {
- const pixels = response.body.params.userSyncPixels.map(pixel => {
- return {
- type: 'image',
- url: pixel
- }
- })
- syncs.push(...pixels)
- }
- }
- return syncs;
- },
- onBidWon: function (bid) {
- if (bid == null) {
- return;
- }
-
- logInfo('onBidWon:', bid);
- if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
- triggerPixel(bid.nurl);
- }
- }
-};
-
-registerBidder(spec);
-
-/**
- * Get floor price
- * @param bid {bid}
- * @returns {Number}
- */
-function getFloor(bid, mediaType) {
- if (!isFn(bid.getFloor)) {
- return 0;
- }
- let floorResult = bid.getFloor({
- currency: CURRENCY,
- mediaType: mediaType,
- size: '*'
- });
- return floorResult.currency === CURRENCY && floorResult.floor ? floorResult.floor : 0;
-}
-
-/**
- * Get the the ad sizes array from the bid
- * @param bid {bid}
- * @returns {Array}
- */
-function getSizesArray(bid, mediaType) {
- let sizesArray = []
-
- if (deepAccess(bid, `mediaTypes.${mediaType}.sizes`)) {
- sizesArray = bid.mediaTypes[mediaType].sizes;
- } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {
- sizesArray = bid.sizes;
- }
-
- return sizesArray;
-}
-
-/**
- * Get schain string value
- * @param schainObject {Object}
- * @returns {string}
- */
-function getSupplyChain(schainObject) {
- if (isEmpty(schainObject)) {
- return '';
- }
- let scStr = `${schainObject.ver},${schainObject.complete}`;
- schainObject.nodes.forEach((node) => {
- scStr += '!';
- scStr += `${getEncodedValIfNotEmpty(node.asi)},`;
- scStr += `${getEncodedValIfNotEmpty(node.sid)},`;
- scStr += `${node.hp ? encodeURIComponent(node.hp) : ''},`;
- scStr += `${getEncodedValIfNotEmpty(node.rid)},`;
- scStr += `${getEncodedValIfNotEmpty(node.name)},`;
- scStr += `${getEncodedValIfNotEmpty(node.domain)}`;
- });
- return scStr;
-}
-
-/**
- * Get encoded node value
- * @param val {string}
- * @returns {string}
- */
-function getEncodedValIfNotEmpty(val) {
- return !isEmpty(val) ? encodeURIComponent(val) : '';
-}
-
-/**
- * Get preferred user-sync method based on publisher configuration
- * @param bidderCode {string}
- * @returns {string}
- */
-function getAllowedSyncMethod(filterSettings, bidderCode) {
- const iframeConfigsToCheck = ['all', 'iframe'];
- const pixelConfigToCheck = 'image';
- if (filterSettings && iframeConfigsToCheck.some(config => isSyncMethodAllowed(filterSettings[config], bidderCode))) {
- return SUPPORTED_SYNC_METHODS.IFRAME;
- }
- if (!filterSettings || !filterSettings[pixelConfigToCheck] || isSyncMethodAllowed(filterSettings[pixelConfigToCheck], bidderCode)) {
- return SUPPORTED_SYNC_METHODS.PIXEL;
- }
-}
-
-/**
- * Check if sync rule is supported
- * @param syncRule {Object}
- * @param bidderCode {string}
- * @returns {boolean}
- */
-function isSyncMethodAllowed(syncRule, bidderCode) {
- if (!syncRule) {
- return false;
- }
- const isInclude = syncRule.filter === 'include';
- const bidders = isArray(syncRule.bidders) ? syncRule.bidders : [bidderCode];
- return isInclude && contains(bidders, bidderCode);
-}
-
-/**
- * Get the seller endpoint
- * @param testMode {boolean}
- * @returns {string}
- */
-function getEndpoint(testMode) {
- return testMode
- ? SELLER_ENDPOINT + MODES.TEST
- : SELLER_ENDPOINT + MODES.PRODUCTION;
-}
-
-/**
- * get device type
- * @param uad {ua}
- * @returns {string}
- */
-function getDeviceType(ua) {
- if (/ipad|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i
- .test(ua.toLowerCase())) {
- return '5';
- }
- if (/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i
- .test(ua.toLowerCase())) {
- return '4';
- }
- if (/smart[-_\s]?tv|hbbtv|appletv|googletv|hdmi|netcast|viera|nettv|roku|\bdtv\b|sonydtv|inettvbrowser|\btv\b/i
- .test(ua.toLowerCase())) {
- return '3';
- }
- return '1';
-}
-
-function generateBidsParams(validBidRequests, bidderRequest) {
- const bidsArray = [];
-
- if (validBidRequests.length) {
- validBidRequests.forEach(bid => {
- bidsArray.push(generateBidParameters(bid, bidderRequest));
- });
- }
-
- return bidsArray;
-}
-
-/**
- * Generate bid specific parameters
- * @param {bid} bid
- * @param {bidderRequest} bidderRequest
- * @returns {Object} bid specific params object
- */
-function generateBidParameters(bid, bidderRequest) {
- const {params} = bid;
- const mediaType = isBanner(bid) ? BANNER : VIDEO;
- const sizesArray = getSizesArray(bid, mediaType);
-
- // fix floor price in case of NAN
- if (isNaN(params.floorPrice)) {
- params.floorPrice = 0;
- }
-
- const bidObject = {
- mediaType,
- adUnitCode: getBidIdParameter('adUnitCode', bid),
- sizes: sizesArray,
- floorPrice: Math.max(getFloor(bid, mediaType), params.floorPrice),
- bidId: getBidIdParameter('bidId', bid),
- bidderRequestId: getBidIdParameter('bidderRequestId', bid),
- transactionId: getBidIdParameter('transactionId', bid),
- };
-
- const pos = deepAccess(bid, `mediaTypes.${mediaType}.pos`);
- if (pos) {
- bidObject.pos = pos;
- }
-
- const gpid = deepAccess(bid, `ortb2Imp.ext.gpid`);
- if (gpid) {
- bidObject.gpid = gpid;
- }
-
- const placementId = params.placementId || deepAccess(bid, `mediaTypes.${mediaType}.name`);
- if (placementId) {
- bidObject.placementId = placementId;
- }
-
- if (mediaType === VIDEO) {
- const playbackMethod = deepAccess(bid, `mediaTypes.video.playbackmethod`);
- let playbackMethodValue;
-
- // verify playbackMethod is of type integer array, or integer only.
- if (Array.isArray(playbackMethod) && isInteger(playbackMethod[0])) {
- // only the first playbackMethod in the array will be used, according to OpenRTB 2.5 recommendation
- playbackMethodValue = playbackMethod[0];
- } else if (isInteger(playbackMethod)) {
- playbackMethodValue = playbackMethod;
- }
-
- if (playbackMethodValue) {
- bidObject.playbackMethod = playbackMethodValue;
- }
-
- const placement = deepAccess(bid, `mediaTypes.video.placement`);
- if (placement) {
- bidObject.placement = placement;
- }
-
- const minDuration = deepAccess(bid, `mediaTypes.video.minduration`);
- if (minDuration) {
- bidObject.minDuration = minDuration;
- }
-
- const maxDuration = deepAccess(bid, `mediaTypes.video.maxduration`);
- if (maxDuration) {
- bidObject.maxDuration = maxDuration;
- }
-
- const skip = deepAccess(bid, `mediaTypes.video.skip`);
- if (skip) {
- bidObject.skip = skip;
- }
-
- const linearity = deepAccess(bid, `mediaTypes.video.linearity`);
- if (linearity) {
- bidObject.linearity = linearity;
- }
- }
-
- return bidObject;
-}
-
-function isBanner(bid) {
- return bid.mediaTypes && bid.mediaTypes.banner;
-}
-
-/**
- * Generate params that are common between all bids
- * @param {single bid object} generalObject
- * @param {bidderRequest} bidderRequest
- * @returns {object} the common params object
- */
-function generateGeneralParams(generalObject, bidderRequest) {
- const domain = window.location.hostname;
- const {syncEnabled, filterSettings} = config.getConfig('userSync') || {};
- const {bidderCode} = bidderRequest;
- const generalBidParams = generalObject.params;
- const timeout = bidderRequest.timeout;
-
- // these params are snake_case instead of camelCase to allow backwards compatability on the server.
- // in the future, these will be converted to camelCase to match our convention.
- const generalParams = {
- wrapper_type: 'prebidjs',
- wrapper_vendor: '$$PREBID_GLOBAL$$',
- wrapper_version: '$prebid.version$',
- adapter_version: ADAPTER_VERSION,
- auction_start: timestamp(),
- publisher_id: generalBidParams.org,
- publisher_name: domain,
- site_domain: domain,
- dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,
- device_type: getDeviceType(navigator.userAgent),
- ua: navigator.userAgent,
- session_id: getBidIdParameter('auctionId', generalObject),
- tmax: timeout
- };
-
- const userIdsParam = getBidIdParameter('userId', generalObject);
- if (userIdsParam) {
- generalParams.userIds = JSON.stringify(userIdsParam);
- }
-
- const ortb2Metadata = bidderRequest.ortb2 || {};
- if (ortb2Metadata.site) {
- generalParams.site_metadata = JSON.stringify(ortb2Metadata.site);
- }
- if (ortb2Metadata.user) {
- generalParams.user_metadata = JSON.stringify(ortb2Metadata.user);
- }
-
- if (syncEnabled) {
- const allowedSyncMethod = getAllowedSyncMethod(filterSettings, bidderCode);
- if (allowedSyncMethod) {
- generalParams.cs_method = allowedSyncMethod;
- }
- }
-
- if (bidderRequest.uspConsent) {
- generalParams.us_privacy = bidderRequest.uspConsent;
- }
-
- if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies) {
- generalParams.gdpr = bidderRequest.gdprConsent.gdprApplies;
- generalParams.gdpr_consent = bidderRequest.gdprConsent.consentString;
- }
-
- if (generalBidParams.ifa) {
- generalParams.ifa = generalBidParams.ifa;
- }
-
- if (generalObject.schain) {
- generalParams.schain = getSupplyChain(generalObject.schain);
- }
-
- if (bidderRequest.ortb2 && bidderRequest.ortb2.site) {
- generalParams.referrer = bidderRequest.ortb2.site.ref;
- generalParams.page_url = bidderRequest.ortb2.site.page;
- }
-
- if (bidderRequest && bidderRequest.refererInfo) {
- generalParams.referrer = generalParams.referrer || deepAccess(bidderRequest, 'refererInfo.referer');
- generalParams.page_url = generalParams.page_url || config.getConfig('pageUrl') || deepAccess(window, 'location.href');
- }
-
- return generalParams;
-}
+import { logWarn, logInfo, isArray, isFn, deepAccess, isEmpty, contains, timestamp, getBidIdParameter, triggerPixel, isInteger } from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
+import {BANNER, VIDEO} from '../src/mediaTypes.js';
+import {config} from '../src/config.js';
+
+const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
+const BIDDER_CODE = 'shinez';
+const ADAPTER_VERSION = '1.0.0';
+const TTL = 360;
+const CURRENCY = 'USD';
+const SELLER_ENDPOINT = 'https://hb.sweetgum.io/';
+const MODES = {
+ PRODUCTION: 'hb-sz-multi',
+ TEST: 'hb-multi-sz-test'
+}
+const SUPPORTED_SYNC_METHODS = {
+ IFRAME: 'iframe',
+ PIXEL: 'pixel'
+}
+
+export const spec = {
+ code: BIDDER_CODE,
+ version: ADAPTER_VERSION,
+ supportedMediaTypes: SUPPORTED_AD_TYPES,
+ isBidRequestValid: function (bidRequest) {
+ if (!bidRequest.params) {
+ logWarn('no params have been set to Shinez adapter');
+ return false;
+ }
+
+ if (!bidRequest.params.org) {
+ logWarn('org is a mandatory param for Shinez adapter');
+ return false;
+ }
+
+ return true;
+ },
+ buildRequests: function (validBidRequests, bidderRequest) {
+ const combinedRequestsObject = {};
+
+ // use data from the first bid, to create the general params for all bids
+ const generalObject = validBidRequests[0];
+ const testMode = generalObject.params.testMode;
+
+ combinedRequestsObject.params = generateGeneralParams(generalObject, bidderRequest);
+ combinedRequestsObject.bids = generateBidsParams(validBidRequests, bidderRequest);
+
+ return {
+ method: 'POST',
+ url: getEndpoint(testMode),
+ data: combinedRequestsObject
+ }
+ },
+ interpretResponse: function ({body}) {
+ const bidResponses = [];
+
+ if (body.bids) {
+ body.bids.forEach(adUnit => {
+ const bidResponse = {
+ requestId: adUnit.requestId,
+ cpm: adUnit.cpm,
+ currency: adUnit.currency || CURRENCY,
+ width: adUnit.width,
+ height: adUnit.height,
+ ttl: adUnit.ttl || TTL,
+ creativeId: adUnit.requestId,
+ netRevenue: adUnit.netRevenue || true,
+ nurl: adUnit.nurl,
+ mediaType: adUnit.mediaType,
+ meta: {
+ mediaType: adUnit.mediaType
+ }
+ };
+
+ if (adUnit.mediaType === VIDEO) {
+ bidResponse.vastXml = adUnit.vastXml;
+ } else if (adUnit.mediaType === BANNER) {
+ bidResponse.ad = adUnit.ad;
+ }
+
+ if (adUnit.adomain && adUnit.adomain.length) {
+ bidResponse.meta.advertiserDomains = adUnit.adomain;
+ }
+
+ bidResponses.push(bidResponse);
+ });
+ }
+
+ return bidResponses;
+ },
+ getUserSyncs: function (syncOptions, serverResponses) {
+ const syncs = [];
+ for (const response of serverResponses) {
+ if (syncOptions.iframeEnabled && response.body.params.userSyncURL) {
+ syncs.push({
+ type: 'iframe',
+ url: response.body.params.userSyncURL
+ });
+ }
+ if (syncOptions.pixelEnabled && isArray(response.body.params.userSyncPixels)) {
+ const pixels = response.body.params.userSyncPixels.map(pixel => {
+ return {
+ type: 'image',
+ url: pixel
+ }
+ })
+ syncs.push(...pixels)
+ }
+ }
+ return syncs;
+ },
+ onBidWon: function (bid) {
+ if (bid == null) {
+ return;
+ }
+
+ logInfo('onBidWon:', bid);
+ if (bid.hasOwnProperty('nurl') && bid.nurl.length > 0) {
+ triggerPixel(bid.nurl);
+ }
+ }
+};
+
+registerBidder(spec);
+
+/**
+ * Get floor price
+ * @param bid {bid}
+ * @returns {Number}
+ */
+function getFloor(bid, mediaType) {
+ if (!isFn(bid.getFloor)) {
+ return 0;
+ }
+ let floorResult = bid.getFloor({
+ currency: CURRENCY,
+ mediaType: mediaType,
+ size: '*'
+ });
+ return floorResult.currency === CURRENCY && floorResult.floor ? floorResult.floor : 0;
+}
+
+/**
+ * Get the the ad sizes array from the bid
+ * @param bid {bid}
+ * @returns {Array}
+ */
+function getSizesArray(bid, mediaType) {
+ let sizesArray = []
+
+ if (deepAccess(bid, `mediaTypes.${mediaType}.sizes`)) {
+ sizesArray = bid.mediaTypes[mediaType].sizes;
+ } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {
+ sizesArray = bid.sizes;
+ }
+
+ return sizesArray;
+}
+
+/**
+ * Get schain string value
+ * @param schainObject {Object}
+ * @returns {string}
+ */
+function getSupplyChain(schainObject) {
+ if (isEmpty(schainObject)) {
+ return '';
+ }
+ let scStr = `${schainObject.ver},${schainObject.complete}`;
+ schainObject.nodes.forEach((node) => {
+ scStr += '!';
+ scStr += `${getEncodedValIfNotEmpty(node.asi)},`;
+ scStr += `${getEncodedValIfNotEmpty(node.sid)},`;
+ scStr += `${node.hp ? encodeURIComponent(node.hp) : ''},`;
+ scStr += `${getEncodedValIfNotEmpty(node.rid)},`;
+ scStr += `${getEncodedValIfNotEmpty(node.name)},`;
+ scStr += `${getEncodedValIfNotEmpty(node.domain)}`;
+ });
+ return scStr;
+}
+
+/**
+ * Get encoded node value
+ * @param val {string}
+ * @returns {string}
+ */
+function getEncodedValIfNotEmpty(val) {
+ return !isEmpty(val) ? encodeURIComponent(val) : '';
+}
+
+/**
+ * Get preferred user-sync method based on publisher configuration
+ * @param bidderCode {string}
+ * @returns {string}
+ */
+function getAllowedSyncMethod(filterSettings, bidderCode) {
+ const iframeConfigsToCheck = ['all', 'iframe'];
+ const pixelConfigToCheck = 'image';
+ if (filterSettings && iframeConfigsToCheck.some(config => isSyncMethodAllowed(filterSettings[config], bidderCode))) {
+ return SUPPORTED_SYNC_METHODS.IFRAME;
+ }
+ if (!filterSettings || !filterSettings[pixelConfigToCheck] || isSyncMethodAllowed(filterSettings[pixelConfigToCheck], bidderCode)) {
+ return SUPPORTED_SYNC_METHODS.PIXEL;
+ }
+}
+
+/**
+ * Check if sync rule is supported
+ * @param syncRule {Object}
+ * @param bidderCode {string}
+ * @returns {boolean}
+ */
+function isSyncMethodAllowed(syncRule, bidderCode) {
+ if (!syncRule) {
+ return false;
+ }
+ const isInclude = syncRule.filter === 'include';
+ const bidders = isArray(syncRule.bidders) ? syncRule.bidders : [bidderCode];
+ return isInclude && contains(bidders, bidderCode);
+}
+
+/**
+ * Get the seller endpoint
+ * @param testMode {boolean}
+ * @returns {string}
+ */
+function getEndpoint(testMode) {
+ return testMode
+ ? SELLER_ENDPOINT + MODES.TEST
+ : SELLER_ENDPOINT + MODES.PRODUCTION;
+}
+
+/**
+ * get device type
+ * @param uad {ua}
+ * @returns {string}
+ */
+function getDeviceType(ua) {
+ if (/ipad|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i
+ .test(ua.toLowerCase())) {
+ return '5';
+ }
+ if (/iphone|ipod|android|blackberry|opera|mini|windows\sce|palm|smartphone|iemobile/i
+ .test(ua.toLowerCase())) {
+ return '4';
+ }
+ if (/smart[-_\s]?tv|hbbtv|appletv|googletv|hdmi|netcast|viera|nettv|roku|\bdtv\b|sonydtv|inettvbrowser|\btv\b/i
+ .test(ua.toLowerCase())) {
+ return '3';
+ }
+ return '1';
+}
+
+function generateBidsParams(validBidRequests, bidderRequest) {
+ const bidsArray = [];
+
+ if (validBidRequests.length) {
+ validBidRequests.forEach(bid => {
+ bidsArray.push(generateBidParameters(bid, bidderRequest));
+ });
+ }
+
+ return bidsArray;
+}
+
+/**
+ * Generate bid specific parameters
+ * @param {bid} bid
+ * @param {bidderRequest} bidderRequest
+ * @returns {Object} bid specific params object
+ */
+function generateBidParameters(bid, bidderRequest) {
+ const {params} = bid;
+ const mediaType = isBanner(bid) ? BANNER : VIDEO;
+ const sizesArray = getSizesArray(bid, mediaType);
+
+ // fix floor price in case of NAN
+ if (isNaN(params.floorPrice)) {
+ params.floorPrice = 0;
+ }
+
+ const bidObject = {
+ mediaType,
+ adUnitCode: getBidIdParameter('adUnitCode', bid),
+ sizes: sizesArray,
+ floorPrice: Math.max(getFloor(bid, mediaType), params.floorPrice),
+ bidId: getBidIdParameter('bidId', bid),
+ bidderRequestId: getBidIdParameter('bidderRequestId', bid),
+ transactionId: bid.ortb2Imp?.ext?.tid || '',
+ };
+
+ const pos = deepAccess(bid, `mediaTypes.${mediaType}.pos`);
+ if (pos) {
+ bidObject.pos = pos;
+ }
+
+ const gpid = deepAccess(bid, `ortb2Imp.ext.gpid`);
+ if (gpid) {
+ bidObject.gpid = gpid;
+ }
+
+ const placementId = params.placementId || deepAccess(bid, `mediaTypes.${mediaType}.name`);
+ if (placementId) {
+ bidObject.placementId = placementId;
+ }
+
+ if (mediaType === VIDEO) {
+ const playbackMethod = deepAccess(bid, `mediaTypes.video.playbackmethod`);
+ let playbackMethodValue;
+
+ // verify playbackMethod is of type integer array, or integer only.
+ if (Array.isArray(playbackMethod) && isInteger(playbackMethod[0])) {
+ // only the first playbackMethod in the array will be used, according to OpenRTB 2.5 recommendation
+ playbackMethodValue = playbackMethod[0];
+ } else if (isInteger(playbackMethod)) {
+ playbackMethodValue = playbackMethod;
+ }
+
+ if (playbackMethodValue) {
+ bidObject.playbackMethod = playbackMethodValue;
+ }
+
+ const placement = deepAccess(bid, `mediaTypes.video.placement`);
+ if (placement) {
+ bidObject.placement = placement;
+ }
+
+ const minDuration = deepAccess(bid, `mediaTypes.video.minduration`);
+ if (minDuration) {
+ bidObject.minDuration = minDuration;
+ }
+
+ const maxDuration = deepAccess(bid, `mediaTypes.video.maxduration`);
+ if (maxDuration) {
+ bidObject.maxDuration = maxDuration;
+ }
+
+ const skip = deepAccess(bid, `mediaTypes.video.skip`);
+ if (skip) {
+ bidObject.skip = skip;
+ }
+
+ const linearity = deepAccess(bid, `mediaTypes.video.linearity`);
+ if (linearity) {
+ bidObject.linearity = linearity;
+ }
+ }
+
+ return bidObject;
+}
+
+function isBanner(bid) {
+ return bid.mediaTypes && bid.mediaTypes.banner;
+}
+
+/**
+ * Generate params that are common between all bids
+ * @param {single bid object} generalObject
+ * @param {bidderRequest} bidderRequest
+ * @returns {object} the common params object
+ */
+function generateGeneralParams(generalObject, bidderRequest) {
+ const domain = window.location.hostname;
+ const {syncEnabled, filterSettings} = config.getConfig('userSync') || {};
+ const {bidderCode} = bidderRequest;
+ const generalBidParams = generalObject.params;
+ const timeout = bidderRequest.timeout;
+
+ // these params are snake_case instead of camelCase to allow backwards compatability on the server.
+ // in the future, these will be converted to camelCase to match our convention.
+ const generalParams = {
+ wrapper_type: 'prebidjs',
+ wrapper_vendor: '$$PREBID_GLOBAL$$',
+ wrapper_version: '$prebid.version$',
+ adapter_version: ADAPTER_VERSION,
+ auction_start: timestamp(),
+ publisher_id: generalBidParams.org,
+ publisher_name: domain,
+ site_domain: domain,
+ dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,
+ device_type: getDeviceType(navigator.userAgent),
+ ua: navigator.userAgent,
+ session_id: getBidIdParameter('auctionId', generalObject),
+ tmax: timeout
+ };
+
+ const userIdsParam = getBidIdParameter('userId', generalObject);
+ if (userIdsParam) {
+ generalParams.userIds = JSON.stringify(userIdsParam);
+ }
+
+ const ortb2Metadata = bidderRequest.ortb2 || {};
+ if (ortb2Metadata.site) {
+ generalParams.site_metadata = JSON.stringify(ortb2Metadata.site);
+ }
+ if (ortb2Metadata.user) {
+ generalParams.user_metadata = JSON.stringify(ortb2Metadata.user);
+ }
+
+ if (syncEnabled) {
+ const allowedSyncMethod = getAllowedSyncMethod(filterSettings, bidderCode);
+ if (allowedSyncMethod) {
+ generalParams.cs_method = allowedSyncMethod;
+ }
+ }
+
+ if (bidderRequest.uspConsent) {
+ generalParams.us_privacy = bidderRequest.uspConsent;
+ }
+
+ if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies) {
+ generalParams.gdpr = bidderRequest.gdprConsent.gdprApplies;
+ generalParams.gdpr_consent = bidderRequest.gdprConsent.consentString;
+ }
+
+ if (generalBidParams.ifa) {
+ generalParams.ifa = generalBidParams.ifa;
+ }
+
+ if (generalObject.schain) {
+ generalParams.schain = getSupplyChain(generalObject.schain);
+ }
+
+ if (bidderRequest.ortb2 && bidderRequest.ortb2.site) {
+ generalParams.referrer = bidderRequest.ortb2.site.ref;
+ generalParams.page_url = bidderRequest.ortb2.site.page;
+ }
+
+ if (bidderRequest && bidderRequest.refererInfo) {
+ generalParams.referrer = generalParams.referrer || deepAccess(bidderRequest, 'refererInfo.referer');
+ generalParams.page_url = generalParams.page_url || config.getConfig('pageUrl') || deepAccess(window, 'location.href');
+ }
+
+ return generalParams;
+}
diff --git a/modules/showheroes-bsBidAdapter.js b/modules/showheroes-bsBidAdapter.js
index 734512ee3c4..a241cb71a5d 100644
--- a/modules/showheroes-bsBidAdapter.js
+++ b/modules/showheroes-bsBidAdapter.js
@@ -85,6 +85,7 @@ export const spec = {
adUnitCode: bid.adUnitCode,
bidId: bid.bidId,
context: context,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidderRequest.auctionId,
start: +new Date(),
timeout: 3000,
diff --git a/modules/slimcutBidAdapter.js b/modules/slimcutBidAdapter.js
index a04a2fda89a..447e314958f 100644
--- a/modules/slimcutBidAdapter.js
+++ b/modules/slimcutBidAdapter.js
@@ -75,7 +75,6 @@ export const spec = {
ad: bid.ad,
requestId: bid.requestId,
creativeId: bid.creativeId,
- transactionId: bid.tranactionId,
winUrl: bid.winUrl,
meta: {
advertiserDomains: bid.adomain || []
@@ -107,8 +106,9 @@ function buildRequestObject(bid) {
reqObj.bidderRequestId = getBidIdParameter('bidderRequestId', bid);
reqObj.placementId = parseInt(placementId);
reqObj.adUnitCode = getBidIdParameter('adUnitCode', bid);
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
reqObj.auctionId = getBidIdParameter('auctionId', bid);
- reqObj.transactionId = getBidIdParameter('transactionId', bid);
+ reqObj.transactionId = bid.ortb2Imp?.ext?.tid || '';
return reqObj;
}
function getReferrerInfo(bidderRequest) {
diff --git a/modules/smaatoBidAdapter.js b/modules/smaatoBidAdapter.js
index c1eb1bb8489..1b50e033074 100644
--- a/modules/smaatoBidAdapter.js
+++ b/modules/smaatoBidAdapter.js
@@ -1,8 +1,21 @@
-import { deepAccess, isNumber, getDNT, deepSetValue, logInfo, logError, isEmpty, getAdUnitSizes, fill, chunk, getMaxValueFromArray, getMinValueFromArray } from '../src/utils.js';
+import {
+ chunk,
+ deepAccess,
+ deepSetValue,
+ fill,
+ getAdUnitSizes,
+ getDNT,
+ getMaxValueFromArray,
+ getMinValueFromArray,
+ isEmpty,
+ isNumber,
+ logError,
+ logInfo
+} from '../src/utils.js';
import {find} from '../src/polyfill.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {config} from '../src/config.js';
-import {ADPOD, BANNER, VIDEO, NATIVE} from '../src/mediaTypes.js';
+import {ADPOD, BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import CONSTANTS from '../src/constants.json';
const { NATIVE_IMAGE_TYPES } = CONSTANTS;
@@ -13,7 +26,7 @@ const CURRENCY = 'USD';
const buildOpenRtbBidRequest = (bidRequest, bidderRequest) => {
const requestTemplate = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
at: 1,
cur: [CURRENCY],
tmax: bidderRequest.timeout,
diff --git a/modules/smartadserverBidAdapter.js b/modules/smartadserverBidAdapter.js
index fd2d6e16463..8158ade3591 100644
--- a/modules/smartadserverBidAdapter.js
+++ b/modules/smartadserverBidAdapter.js
@@ -150,7 +150,7 @@ export const spec = {
tagId: bid.adUnitCode,
// TODO: is 'page' the right value here?
pageDomain: bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.page ? bidderRequest.refererInfo.page : undefined,
- transactionId: bid.transactionId,
+ transactionId: bid.ortb2Imp?.ext?.tid,
timeout: config.getConfig('bidderTimeout'),
bidId: bid.bidId,
prebidVersion: '$prebid.version$',
diff --git a/modules/smarticoBidAdapter.js b/modules/smarticoBidAdapter.js
index edb774f812f..26ecc0f55e3 100644
--- a/modules/smarticoBidAdapter.js
+++ b/modules/smarticoBidAdapter.js
@@ -66,6 +66,7 @@ export const spec = {
method: SMARTICO_CONFIG.method,
url: SMARTICO_CONFIG.bidRequestUrl,
bids: validBidRequests,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
data: {bidParams: bidParams, auctionId: bidderRequest.auctionId}
}
return ServerRequestObjects;
diff --git a/modules/smilewantedBidAdapter.js b/modules/smilewantedBidAdapter.js
index fe14c57d641..b7a25ba58df 100644
--- a/modules/smilewantedBidAdapter.js
+++ b/modules/smilewantedBidAdapter.js
@@ -34,8 +34,8 @@ export const spec = {
w: size[0],
h: size[1]
})),
- transactionId: bid.transactionId,
- timeout: config.getConfig('bidderTimeout'),
+ transactionId: bid.ortb2Imp?.ext?.tid,
+ timeout: bidderRequest?.timeout,
bidId: bid.bidId,
/** positionType is undocumented
It is unclear what this parameter means.
diff --git a/modules/sspBCBidAdapter.js b/modules/sspBCBidAdapter.js
index 2ba5ff4b8b7..93ce26e7a48 100644
--- a/modules/sspBCBidAdapter.js
+++ b/modules/sspBCBidAdapter.js
@@ -104,6 +104,7 @@ const getNotificationPayload = bidData => {
// basic notification data
const bidBasicData = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
requestId: auctionId || result.requestId,
timeout: timeout || result.timeout,
pvid: pageView.id,
diff --git a/modules/stroeerCoreBidAdapter.js b/modules/stroeerCoreBidAdapter.js
index e579b1f94de..15c15a89609 100644
--- a/modules/stroeerCoreBidAdapter.js
+++ b/modules/stroeerCoreBidAdapter.js
@@ -49,6 +49,7 @@ export const spec = {
const refererInfo = bidderRequest.refererInfo;
const basePayload = {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: bidderRequest.auctionId,
ref: refererInfo.ref,
ssl: isSecureWindow(),
diff --git a/modules/sublimeBidAdapter.js b/modules/sublimeBidAdapter.js
index 2d177fbe6eb..db2b02aaef1 100644
--- a/modules/sublimeBidAdapter.js
+++ b/modules/sublimeBidAdapter.js
@@ -179,6 +179,7 @@ function buildRequests(validBidRequests, bidderRequest) {
const bidPayload = {
adUnitCode: bid.adUnitCode,
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
bidder: bid.bidder,
bidderRequestId: bid.bidderRequestId,
diff --git a/modules/taboolaBidAdapter.js b/modules/taboolaBidAdapter.js
index 49ca8da71c8..8a42013b0be 100644
--- a/modules/taboolaBidAdapter.js
+++ b/modules/taboolaBidAdapter.js
@@ -3,9 +3,9 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
import {config} from '../src/config.js';
-import {deepAccess, getWindowSelf, replaceAuctionPrice} from '../src/utils.js'
+import {deepAccess, getWindowSelf, replaceAuctionPrice} from '../src/utils.js';
import {getStorageManager} from '../src/storageManager.js';
-import { ajax } from '../src/ajax.js';
+import {ajax} from '../src/ajax.js';
const BIDDER_CODE = 'taboola';
const GVLID = 42;
@@ -120,7 +120,7 @@ export const spec = {
};
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: imps,
site,
device,
diff --git a/modules/talkadsBidAdapter.js b/modules/talkadsBidAdapter.js
index 9c3e13bae47..7d5cd7ec144 100644
--- a/modules/talkadsBidAdapter.js
+++ b/modules/talkadsBidAdapter.js
@@ -62,6 +62,7 @@ export const spec = {
const loServerRequest = {
cur: CURRENCY,
timeout: poBidderRequest.timeout,
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
auction_id: paValidBidRequests[0].auctionId,
// TODO: should this use auctionId? see #8573
transaction_id: paValidBidRequests[0].transactionId,
diff --git a/modules/tappxBidAdapter.js b/modules/tappxBidAdapter.js
index a9d08415090..13a16224a79 100644
--- a/modules/tappxBidAdapter.js
+++ b/modules/tappxBidAdapter.js
@@ -461,7 +461,7 @@ function buildOneRequest(validBidRequests, bidderRequest) {
// < Payload Ext
// > Payload
- payload.id = validBidRequests.auctionId;
+ payload.id = bidderRequest.bidderRequestId;
payload.test = deepAccess(validBidRequests, 'params.test') ? 1 : 0;
payload.at = 1;
payload.tmax = bidderRequest.timeout ? bidderRequest.timeout : 600;
diff --git a/modules/teadsBidAdapter.js b/modules/teadsBidAdapter.js
index f750af0f64d..bd498b14629 100644
--- a/modules/teadsBidAdapter.js
+++ b/modules/teadsBidAdapter.js
@@ -227,8 +227,9 @@ function buildRequestObject(bid) {
reqObj.placementId = parseInt(placementId, 10);
reqObj.pageId = parseInt(pageId, 10);
reqObj.adUnitCode = getBidIdParameter('adUnitCode', bid);
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
reqObj.auctionId = getBidIdParameter('auctionId', bid);
- reqObj.transactionId = getBidIdParameter('transactionId', bid);
+ reqObj.transactionId = bid.ortb2Imp?.ext?.tid || '';
if (gpid) { reqObj.gpid = gpid; }
return reqObj;
}
diff --git a/modules/telariaBidAdapter.js b/modules/telariaBidAdapter.js
index 5fb71d1d627..38eefd447a8 100644
--- a/modules/telariaBidAdapter.js
+++ b/modules/telariaBidAdapter.js
@@ -235,7 +235,7 @@ function generateUrl(bid, bidderRequest) {
url += `${getUrlParams(params, bid.schain)}`;
- url += (`&transactionId=${bid.transactionId}`);
+ url += (`&transactionId=${bid.ortb2Imp?.ext?.tid}`);
if (bidderRequest) {
if (bidderRequest.gdprConsent) {
diff --git a/modules/theAdxBidAdapter.js b/modules/theAdxBidAdapter.js
index 49d45196d9d..03f303498a1 100644
--- a/modules/theAdxBidAdapter.js
+++ b/modules/theAdxBidAdapter.js
@@ -166,6 +166,7 @@ export const spec = {
requestId: bidderRequest.bidderRequestId,
bidId: bidRequest.bidId,
adUnitCode: bidRequest['adUnitCode'],
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest['auctionId'],
};
}
diff --git a/modules/tpmnBidAdapter.js b/modules/tpmnBidAdapter.js
index 4dcdf1ef529..bac99d578c5 100644
--- a/modules/tpmnBidAdapter.js
+++ b/modules/tpmnBidAdapter.js
@@ -157,6 +157,7 @@ function bidToRequest(bid) {
bidObj.publisherId = bid.params.publisherId;
bidObj.bidId = bid.bidId;
bidObj.adUnitCode = bid.adUnitCode;
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
bidObj.auctionId = bid.auctionId;
return bidObj;
diff --git a/modules/truereachBidAdapter.js b/modules/truereachBidAdapter.js
index 13bb558fbf6..8b1656ec7a2 100755
--- a/modules/truereachBidAdapter.js
+++ b/modules/truereachBidAdapter.js
@@ -25,6 +25,7 @@ export const spec = {
let siteId = deepAccess(validBidRequests[0], 'params.site_id');
// TODO: should this use auctionId? see #8573
+ // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
let url = BIDDER_URL + siteId + '?hb=1&transactionId=' + validBidRequests[0].transactionId;
return {
diff --git a/modules/ttdBidAdapter.js b/modules/ttdBidAdapter.js
index 48fda2abc8e..bbe207abc9e 100644
--- a/modules/ttdBidAdapter.js
+++ b/modules/ttdBidAdapter.js
@@ -66,9 +66,9 @@ function getBidFloor(bid) {
return null;
}
-function getSource(validBidRequests) {
+function getSource(validBidRequests, bidderRequest) {
let source = {
- tid: validBidRequests[0].auctionId
+ tid: bidderRequest?.ortb2?.source?.tid,
};
if (validBidRequests[0].schain) {
utils.deepSetValue(source, 'ext.schain', validBidRequests[0].schain);
@@ -414,7 +414,7 @@ export const spec = {
at: 1,
cur: ['USD'],
regs: getRegs(bidderRequest),
- source: getSource(validBidRequests),
+ source: getSource(validBidRequests, bidderRequest),
ext: getExt(firstPartyData)
}
diff --git a/modules/unicornBidAdapter.js b/modules/unicornBidAdapter.js
index 9cbc79f3e61..66aaf4a17e5 100644
--- a/modules/unicornBidAdapter.js
+++ b/modules/unicornBidAdapter.js
@@ -55,7 +55,7 @@ function buildOpenRtbBidRequestPayload(validBidRequests, bidderRequest) {
};
});
const request = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
at: 1,
imp,
cur: [UNICORN_DEFAULT_CURRENCY],
diff --git a/modules/unrulyBidAdapter.js b/modules/unrulyBidAdapter.js
index 77160bb01e6..d893bfd3038 100644
--- a/modules/unrulyBidAdapter.js
+++ b/modules/unrulyBidAdapter.js
@@ -57,7 +57,7 @@ const RemoveDuplicateSizes = (validBid) => {
};
const getRequests = (conf, validBidRequests, bidderRequest) => {
- const {bids, bidderRequestId, auctionId, bidderCode, ...bidderRequestData} = bidderRequest;
+ const {bids, bidderRequestId, bidderCode, ...bidderRequestData} = bidderRequest;
const invalidBidsCount = bidderRequest.bids.length - validBidRequests.length;
let requestBySiteId = {};
diff --git a/modules/vdoaiBidAdapter.js b/modules/vdoaiBidAdapter.js
index 167c378ac6d..fa1e2898a4a 100644
--- a/modules/vdoaiBidAdapter.js
+++ b/modules/vdoaiBidAdapter.js
@@ -38,6 +38,7 @@ export const spec = {
bidId: bidRequest.bidId,
// TODO: is 'page' the right value here?
referer: bidderRequest.refererInfo.page,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
id: bidRequest.auctionId,
mediaType: bidRequest.mediaTypes.video ? 'video' : 'banner'
};
diff --git a/modules/vibrantmediaBidAdapter.js b/modules/vibrantmediaBidAdapter.js
index 371b70448e5..7368967ff3f 100644
--- a/modules/vibrantmediaBidAdapter.js
+++ b/modules/vibrantmediaBidAdapter.js
@@ -72,7 +72,7 @@ const transformBidRequests = function(bidRequests) {
const transformedBidRequest = {
code: bidRequest.adUnitCode || bidRequest.code,
id: bidRequest.placementId || params.placementId || params.invCode,
- requestId: bidRequest.bidId || bidRequest.transactionId,
+ requestId: bidRequest.bidId,
bidder: bidRequest.bidder,
mediaTypes: bidRequest.mediaTypes,
bids: bidRequest.bids,
diff --git a/modules/vidazooBidAdapter.js b/modules/vidazooBidAdapter.js
index 9e7376f18df..8341eb332d2 100644
--- a/modules/vidazooBidAdapter.js
+++ b/modules/vidazooBidAdapter.js
@@ -57,7 +57,7 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
schain,
mediaTypes,
auctionId,
- transactionId,
+ ortb2Imp,
bidderRequestId,
bidRequestsCount,
bidderRequestsCount,
@@ -114,8 +114,9 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout) {
gpid: gpid,
cat: cat,
pagecat: pagecat,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: auctionId,
- transactionId: transactionId,
+ transactionId: ortb2Imp?.ext?.tid,
bidderRequestId: bidderRequestId,
bidRequestsCount: bidRequestsCount,
bidderRequestsCount: bidderRequestsCount,
diff --git a/modules/videoheroesBidAdapter.js b/modules/videoheroesBidAdapter.js
index e992fae1d06..2f02734a31f 100644
--- a/modules/videoheroesBidAdapter.js
+++ b/modules/videoheroesBidAdapter.js
@@ -57,6 +57,8 @@ export const spec = {
impObject.video = createVideoRequest(br);
} else if (br.mediaTypes.native) {
impObject.native = {
+ // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
+ // Also, `id` is not in the ORTB native spec
id: br.transactionId,
ver: '1.2',
request: createNativeRequest(br)
diff --git a/modules/videoreachBidAdapter.js b/modules/videoreachBidAdapter.js
index 1fc38066407..9fd5853c75e 100644
--- a/modules/videoreachBidAdapter.js
+++ b/modules/videoreachBidAdapter.js
@@ -21,8 +21,9 @@ export const spec = {
adUnitCode: getBidIdParameter('adUnitCode', bid),
bidId: getBidIdParameter('bidId', bid),
bidderRequestId: getBidIdParameter('bidderRequestId', bid),
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: getBidIdParameter('auctionId', bid),
- transactionId: getBidIdParameter('transactionId', bid)
+ transactionId: bid.ortb2Imp?.ext?.tid,
}
})
};
diff --git a/modules/vlybyBidAdapter.js b/modules/vlybyBidAdapter.js
index 10352179044..08ab415e8ae 100644
--- a/modules/vlybyBidAdapter.js
+++ b/modules/vlybyBidAdapter.js
@@ -23,6 +23,7 @@ export const spec = {
url: `${ENDPOINT}`,
data: {
request: {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidderRequest.auctionId
},
gdprConsent: {
diff --git a/modules/voxBidAdapter.js b/modules/voxBidAdapter.js
index 7b8cb42bb0a..acf1cc9579c 100644
--- a/modules/voxBidAdapter.js
+++ b/modules/voxBidAdapter.js
@@ -15,6 +15,7 @@ function buildBidRequests(validBidRequests) {
const params = validBidRequest.params;
const bidRequest = {
bidId: validBidRequest.bidId,
+ // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
transactionId: validBidRequest.transactionId,
sizes: validBidRequest.sizes,
placement: params.placement,
@@ -80,6 +81,7 @@ function buildBid(bidData) {
bid.vastXml = bidData.content;
bid.mediaType = VIDEO;
+ // TODO: why does this need to iterate through every ad unit?
let adUnit = find(auctionManager.getAdUnits(), function (unit) {
return unit.transactionId === bidData.transactionId;
});
diff --git a/modules/vrtcalBidAdapter.js b/modules/vrtcalBidAdapter.js
index e41a5da50cd..0ea52da5814 100644
--- a/modules/vrtcalBidAdapter.js
+++ b/modules/vrtcalBidAdapter.js
@@ -8,7 +8,7 @@ export const spec = {
code: 'vrtcal',
supportedMediaTypes: [BANNER],
isBidRequestValid: function (bid) {
- if (bid.bidId == '' || bid.auctionId == '') { return false; } else { return true; }// No extras params required
+ return true;
},
buildRequests: function (bidRequests) {
const requests = bidRequests.map(function (bid) {
diff --git a/modules/winrBidAdapter.js b/modules/winrBidAdapter.js
index cd807917944..28f2ddb7c6d 100644
--- a/modules/winrBidAdapter.js
+++ b/modules/winrBidAdapter.js
@@ -402,6 +402,7 @@ function newBid(serverBid, rtbBid, bidderRequest) {
const bid = {
adType: rtbBid.ad_type,
requestId: serverBid.uuid,
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bidRequest.auctionId,
cpm: rtbBid.cpm,
creativeId: rtbBid.creative_id,
diff --git a/modules/xeBidAdapter.js b/modules/xeBidAdapter.js
index e7a251008bf..94a66e9980e 100644
--- a/modules/xeBidAdapter.js
+++ b/modules/xeBidAdapter.js
@@ -44,8 +44,9 @@ function buildRequests(validBidRequests, bidderRequest) {
const request = {};
request.bidId = req.bidId;
request.banner = deepAccess(req, 'mediaTypes.banner');
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
request.auctionId = req.auctionId;
- request.transactionId = req.transactionId;
+ request.transactionId = req.ortb2Imp?.ext?.tid;
request.sizes = parseSizesInput(getAdUnitSizes(req));
request.schain = req.schain;
request.location = {
diff --git a/modules/yieldliftBidAdapter.js b/modules/yieldliftBidAdapter.js
index 6e4bce15187..d4cafd77c2d 100644
--- a/modules/yieldliftBidAdapter.js
+++ b/modules/yieldliftBidAdapter.js
@@ -1,4 +1,4 @@
-import {deepSetValue, logInfo, deepAccess} from '../src/utils.js';
+import {deepAccess, deepSetValue, logInfo} from '../src/utils.js';
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
@@ -41,7 +41,7 @@ export const spec = {
}));
const openrtbRequest = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: impressions,
site: {
domain: bidderRequest.refererInfo?.domain,
diff --git a/modules/yieldmoBidAdapter.js b/modules/yieldmoBidAdapter.js
index bef453cb4ad..40276aa7a6c 100644
--- a/modules/yieldmoBidAdapter.js
+++ b/modules/yieldmoBidAdapter.js
@@ -258,6 +258,7 @@ function addPlacement(request) {
placementInfo.tid = transactionId;
}
if (request.auctionId) {
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
placementInfo.auctionId = request.auctionId;
}
return JSON.stringify(placementInfo);
diff --git a/modules/yieldoneBidAdapter.js b/modules/yieldoneBidAdapter.js
index 2ff747a238a..8ad7e69aa6e 100644
--- a/modules/yieldoneBidAdapter.js
+++ b/modules/yieldoneBidAdapter.js
@@ -50,7 +50,7 @@ export const spec = {
// TODO: is 'page' the right value here?
const referrer = bidderRequest.refererInfo.page;
const bidId = bidRequest.bidId;
- const transactionId = bidRequest.transactionId;
+ const transactionId = bidRequest.ortb2Imp?.ext?.tid;
const unitCode = bidRequest.adUnitCode;
const timeout = bidderRequest.timeout;
const language = window.navigator.language;
diff --git a/modules/zetaBidAdapter.js b/modules/zetaBidAdapter.js
index 159ea42cead..710bf0fb567 100644
--- a/modules/zetaBidAdapter.js
+++ b/modules/zetaBidAdapter.js
@@ -1,6 +1,7 @@
-import { logWarn, deepAccess } from '../src/utils.js';
-import { registerBidder } from '../src/adapters/bidderFactory.js';
+import {deepAccess, logWarn} from '../src/utils.js';
+import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
+
const BIDDER_CODE = 'zeta_global';
const PREBID_DEFINER_ID = '44253'
const ENDPOINT_URL = 'https://prebid.rfihub.com/prebid';
@@ -71,7 +72,7 @@ export const spec = {
banner: buildBanner(request)
};
let payload = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
imp: [impData],
site: params.site ? params.site : {},
app: params.app ? params.app : {},
diff --git a/modules/zeta_global_sspBidAdapter.js b/modules/zeta_global_sspBidAdapter.js
index 531384b9f27..aca577ecff2 100644
--- a/modules/zeta_global_sspBidAdapter.js
+++ b/modules/zeta_global_sspBidAdapter.js
@@ -114,7 +114,7 @@ export const spec = {
});
let payload = {
- id: bidderRequest.auctionId,
+ id: bidderRequest.bidderRequestId,
cur: [DEFAULT_CUR],
imp: imps,
site: params.site ? params.site : {},
diff --git a/test/spec/modules/33acrossBidAdapter_spec.js b/test/spec/modules/33acrossBidAdapter_spec.js
index 252b749597d..aa2621f1fa0 100644
--- a/test/spec/modules/33acrossBidAdapter_spec.js
+++ b/test/spec/modules/33acrossBidAdapter_spec.js
@@ -423,6 +423,8 @@ describe('33acrossBidAdapter:', function () {
this.build = () => bidRequests;
}
+ let bidderRequest;
+
beforeEach(function() {
element = {
x: 0,
@@ -476,12 +478,12 @@ describe('33acrossBidAdapter:', function () {
sandbox.stub(document, 'getElementById').returns(element);
sandbox.stub(utils, 'getWindowTop').returns(win);
sandbox.stub(utils, 'getWindowSelf').returns(win);
+ bidderRequest = {bidderRequestId: 'r1'};
});
afterEach(function() {
sandbox.restore();
});
-
describe('isBidRequestValid:', function() {
context('basic validation', function() {
it('returns true for valid bidder name values', function() {
@@ -770,7 +772,7 @@ describe('33acrossBidAdapter:', function () {
Object.assign(element, { width: 600, height: 400 });
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -788,7 +790,7 @@ describe('33acrossBidAdapter:', function () {
Object.assign(element, { x: -300, y: 0, width: 207, height: 320 });
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -806,7 +808,7 @@ describe('33acrossBidAdapter:', function () {
Object.assign(element, { width: 800, height: 800 });
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -826,7 +828,7 @@ describe('33acrossBidAdapter:', function () {
Object.assign(element, { width: 0, height: 0 });
bidRequests[0].mediaTypes.banner.sizes = [[800, 2400]];
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -849,7 +851,7 @@ describe('33acrossBidAdapter:', function () {
sandbox.stub(utils, 'getWindowTop').returns({});
sandbox.stub(utils, 'getWindowSelf').returns(win);
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
@@ -890,7 +892,7 @@ describe('33acrossBidAdapter:', function () {
}
});
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -938,7 +940,7 @@ describe('33acrossBidAdapter:', function () {
}
});
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
@@ -964,7 +966,7 @@ describe('33acrossBidAdapter:', function () {
win.screen.width = 1024;
win.screen.height = 728;
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, {bidderRequestId: 'r1'});
validateBuiltServerRequest(buildRequest, serverRequest);
});
@@ -993,7 +995,7 @@ describe('33acrossBidAdapter:', function () {
win.innerHeight = 728;
win.innerWidth = 727;
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
@@ -1016,16 +1018,15 @@ describe('33acrossBidAdapter:', function () {
win.document.visibilityState = 'hidden';
sandbox.stub(utils, 'getWindowTop').returns(win);
- const [ buildRequest ] = spec.buildRequests(bidRequests);
+ const [ buildRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(buildRequest, serverRequest);
});
});
context('when gdpr consent data exists', function() {
- let bidderRequest;
-
beforeEach(function() {
bidderRequest = {
+ ...bidderRequest,
gdprConsent: {
consentString: 'foobarMyPreference',
gdprApplies: true
@@ -1070,12 +1071,6 @@ describe('33acrossBidAdapter:', function () {
});
context('when gdpr consent data does not exist', function() {
- let bidderRequest;
-
- beforeEach(function() {
- bidderRequest = {};
- });
-
it('returns corresponding server requests with default gdpr consent data', function() {
const ttxRequest = new TtxRequestBuilder()
.withBanner()
@@ -1111,10 +1106,9 @@ describe('33acrossBidAdapter:', function () {
});
context('when us_privacy consent data exists', function() {
- let bidderRequest;
-
beforeEach(function() {
bidderRequest = {
+ ...bidderRequest,
uspConsent: 'foo'
}
});
@@ -1156,12 +1150,6 @@ describe('33acrossBidAdapter:', function () {
});
context('when us_privacy consent data does not exist', function() {
- let bidderRequest;
-
- beforeEach(function() {
- bidderRequest = {};
- });
-
it('returns corresponding server requests with default us_privacy data', function() {
const ttxRequest = new TtxRequestBuilder()
.withBanner()
@@ -1199,7 +1187,8 @@ describe('33acrossBidAdapter:', function () {
context('when refererInfo values are available', function() {
context('when refererInfo.page is defined', function() {
it('returns corresponding server requests with site.page set', function() {
- const bidderRequest = {
+ bidderRequest = {
+ ...bidderRequest,
refererInfo: {
page: 'http://foo.com/bar'
}
@@ -1222,7 +1211,8 @@ describe('33acrossBidAdapter:', function () {
context('when refererInfo.ref is defined', function() {
it('returns corresponding server requests with site.ref set', function() {
- const bidderRequest = {
+ bidderRequest = {
+ ...bidderRequest,
refererInfo: {
ref: 'google.com'
}
@@ -1245,12 +1235,6 @@ describe('33acrossBidAdapter:', function () {
});
context('when Global Placement ID (gpid) is defined', function() {
- let bidderRequest;
-
- beforeEach(function() {
- bidderRequest = {};
- });
-
it('passes the Global Placement ID (gpid) in the request', function() {
const ttxRequest = new TtxRequestBuilder()
.withBanner()
@@ -1281,9 +1265,7 @@ describe('33acrossBidAdapter:', function () {
context('when referer value is not available', function() {
it('returns corresponding server requests without site.page and site.ref set', function() {
- const bidderRequest = {
- refererInfo: {}
- };
+ bidderRequest.refererInfo = {};
const ttxRequest = new TtxRequestBuilder()
.withBanner()
@@ -1347,7 +1329,7 @@ describe('33acrossBidAdapter:', function () {
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1365,7 +1347,7 @@ describe('33acrossBidAdapter:', function () {
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1380,7 +1362,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1397,7 +1379,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1422,7 +1404,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1447,7 +1429,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1464,7 +1446,7 @@ describe('33acrossBidAdapter:', function () {
.withProduct('instream')
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1488,7 +1470,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1508,7 +1490,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1530,7 +1512,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1551,7 +1533,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1575,7 +1557,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1599,7 +1581,7 @@ describe('33acrossBidAdapter:', function () {
const serverRequest = new ServerRequestBuilder()
.withData(ttxRequest)
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
validateBuiltServerRequest(builtServerRequest, serverRequest);
});
@@ -1620,7 +1602,7 @@ describe('33acrossBidAdapter:', function () {
.withProduct()
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1648,7 +1630,7 @@ describe('33acrossBidAdapter:', function () {
.withFloors('video', [ 1.0 ])
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1690,7 +1672,7 @@ describe('33acrossBidAdapter:', function () {
.withProduct()
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1709,7 +1691,7 @@ describe('33acrossBidAdapter:', function () {
.withProduct()
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1756,7 +1738,7 @@ describe('33acrossBidAdapter:', function () {
.withProduct()
.build();
- const [ builtServerRequest ] = spec.buildRequests(bidRequests, {});
+ const [ builtServerRequest ] = spec.buildRequests(bidRequests, bidderRequest);
expect(JSON.parse(builtServerRequest.data)).to.deep.equal(ttxRequest);
});
@@ -1830,7 +1812,7 @@ describe('33acrossBidAdapter:', function () {
.withUrl('https://ssc.33across.com/api/v1/hb?guid=sample33xGUID123456780')
.build();
- const builtServerRequests = spec.buildRequests(bidRequests, {});
+ const builtServerRequests = spec.buildRequests(bidRequests, bidderRequest);
expect(builtServerRequests).to.deep.equal([serverReq1, serverReq2, serverReq3]);
});
@@ -1887,7 +1869,7 @@ describe('33acrossBidAdapter:', function () {
.withUrl('https://ssc.33across.com/api/v1/hb?guid=sample33xGUID123456780')
.build();
- const builtServerRequests = spec.buildRequests(bidRequests, {});
+ const builtServerRequests = spec.buildRequests(bidRequests, bidderRequest);
expect(builtServerRequests)
.to.deep.equal([
@@ -2219,7 +2201,7 @@ describe('33acrossBidAdapter:', function () {
expect(spec.getUserSyncs(syncOptions)).to.deep.equal([]);
});
- });
+ }, bidderRequest);
context('when iframe is enabled', function() {
let syncOptions;
@@ -2231,7 +2213,7 @@ describe('33acrossBidAdapter:', function () {
context('when there is no gdpr consent data', function() {
it('returns sync urls with undefined consent string as param', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, undefined);
const expectedSyncs = [
@@ -2251,7 +2233,7 @@ describe('33acrossBidAdapter:', function () {
context('when gdpr applies but there is no consent string', function() {
it('returns sync urls with undefined consent string as param and gdpr=1', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {gdprApplies: true});
const expectedSyncs = [
@@ -2271,7 +2253,7 @@ describe('33acrossBidAdapter:', function () {
context('when gdpr applies and there is consent string', function() {
it('returns sync urls with gdpr_consent=consent string as param and gdpr=1', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {gdprApplies: true, consentString: 'consent123A'});
const expectedSyncs = [
@@ -2291,7 +2273,7 @@ describe('33acrossBidAdapter:', function () {
context('when gdpr does not apply and there is no consent string', function() {
it('returns sync urls with undefined consent string as param and gdpr=0', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {gdprApplies: false});
const expectedSyncs = [
@@ -2310,7 +2292,7 @@ describe('33acrossBidAdapter:', function () {
context('when gdpr is unknown and there is consent string', function() {
it('returns sync urls with only consent string as param', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {consentString: 'consent123A'});
const expectedSyncs = [
@@ -2329,7 +2311,7 @@ describe('33acrossBidAdapter:', function () {
context('when gdpr does not apply and there is consent string (yikes!)', function() {
it('returns sync urls with consent string as param and gdpr=0', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {gdprApplies: false, consentString: 'consent123A'});
const expectedSyncs = [
@@ -2348,7 +2330,7 @@ describe('33acrossBidAdapter:', function () {
context('when there is no usPrivacy data', function() {
it('returns sync urls with undefined consent string as param', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {});
const expectedSyncs = [
@@ -2368,7 +2350,7 @@ describe('33acrossBidAdapter:', function () {
context('when there is usPrivacy data', function() {
it('returns sync urls with consent string as param', function() {
- spec.buildRequests(bidRequests);
+ spec.buildRequests(bidRequests, bidderRequest);
const syncResults = spec.getUserSyncs(syncOptions, {}, {}, 'foo');
const expectedSyncs = [
diff --git a/test/spec/modules/adbookpspBidAdapter_spec.js b/test/spec/modules/adbookpspBidAdapter_spec.js
index f7e401fefbd..3f26cd7749f 100755
--- a/test/spec/modules/adbookpspBidAdapter_spec.js
+++ b/test/spec/modules/adbookpspBidAdapter_spec.js
@@ -960,6 +960,11 @@ const bidderRequest = {
consentString: 'gdprConsentString',
},
uspConsent: 'uspConsentString',
+ ortb2: {
+ source: {
+ tid: 'aaccee333311'
+ }
+ }
};
const bannerBid = {
diff --git a/test/spec/modules/adfBidAdapter_spec.js b/test/spec/modules/adfBidAdapter_spec.js
index 574f559e994..88f595b6c00 100644
--- a/test/spec/modules/adfBidAdapter_spec.js
+++ b/test/spec/modules/adfBidAdapter_spec.js
@@ -171,7 +171,10 @@ describe('Adf adapter', function () {
bidId: 'bidId',
params: { siteId: 'siteId' },
}];
- let request = JSON.parse(spec.buildRequests(validBidRequests, { refererInfo: { page: 'page' }, auctionId: 'tid' }).data);
+ let request = JSON.parse(spec.buildRequests(validBidRequests, {
+ refererInfo: {page: 'page'},
+ ortb2: {source: {tid: 'tid'}}
+ }).data);
assert.equal(request.source.tid, 'tid');
assert.equal(request.source.fd, 1);
diff --git a/test/spec/modules/adkernelAdnBidAdapter_spec.js b/test/spec/modules/adkernelAdnBidAdapter_spec.js
index b9b31ab5ebf..ff7ed9f145d 100644
--- a/test/spec/modules/adkernelAdnBidAdapter_spec.js
+++ b/test/spec/modules/adkernelAdnBidAdapter_spec.js
@@ -220,7 +220,7 @@ describe('AdkernelAdn adapter', function () {
}
describe('banner request building', function () {
- let [_, tagRequests] = buildRequest([bid1_pub1]);
+ let [_, tagRequests] = buildRequest([bid1_pub1], {ortb2: {source: {tid: 'mock-tid'}}});
let tagRequest = tagRequests[0];
it('should have request id', function () {
diff --git a/test/spec/modules/adtrueBidAdapter_spec.js b/test/spec/modules/adtrueBidAdapter_spec.js
index 1daf8b645c7..df8f9013534 100644
--- a/test/spec/modules/adtrueBidAdapter_spec.js
+++ b/test/spec/modules/adtrueBidAdapter_spec.js
@@ -28,7 +28,11 @@ describe('AdTrueBidAdapter', function () {
bidId: '23acc48ad47af5',
requestId: '0fb4905b-9456-4152-86be-c6f6d259ba99',
bidderRequestId: '1c56ad30b9b8ca8',
- transactionId: '92489f71-1bf2-49a0-adf9-000cea934729',
+ ortb2Imp: {
+ ext: {
+ tid: '92489f71-1bf2-49a0-adf9-000cea934729',
+ }
+ },
schain: {
'ver': '1.0',
'complete': 1,
@@ -280,7 +284,8 @@ describe('AdTrueBidAdapter', function () {
expect(data.cur[0]).to.equal('USD'); // currency
expect(data.site.domain).to.be.a('string'); // domain should be set
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
- expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].transactionId); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
+ expect(data.source.tid).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.imp[0].id).to.equal(bidRequests[0].bidId); // Prebid bid id is passed as id
expect(data.imp[0].bidfloor).to.equal(bidRequests[0].params.reserve); // reverse
expect(data.imp[0].tagid).to.equal(bidRequests[0].params.zoneId); // zoneId
@@ -302,7 +307,8 @@ describe('AdTrueBidAdapter', function () {
expect(data.cur[0]).to.equal('USD'); // currency
expect(data.site.domain).to.be.a('string'); // domain should be set
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
- expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].transactionId); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
+ expect(data.source.tid).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.imp[0].id).to.equal(bidRequests[0].bidId); // Prebid bid id is passed as id
expect(data.imp[0].bidfloor).to.equal(parseFloat(bidRequests[0].params.reserve)); // reverse
expect(data.imp[0].tagid).to.equal(bidRequests[0].params.zoneId); // zoneId
@@ -321,7 +327,8 @@ describe('AdTrueBidAdapter', function () {
expect(data.cur[0]).to.equal('USD'); // currency
expect(data.site.domain).to.be.a('string'); // domain should be set
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
- expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].transactionId); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
+ expect(data.source.tid).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.imp[0].id).to.equal(bidRequests[0].bidId); // Prebid bid id is passed as id
expect(data.imp[0].bidfloor).to.equal(parseFloat(bidRequests[0].params.reserve)); // reverse
expect(data.imp[0].tagid).to.equal(bidRequests[0].params.zoneId); // zoneId
diff --git a/test/spec/modules/aduptechBidAdapter_spec.js b/test/spec/modules/aduptechBidAdapter_spec.js
index 8dbdbbfeab5..2b909ebe20d 100644
--- a/test/spec/modules/aduptechBidAdapter_spec.js
+++ b/test/spec/modules/aduptechBidAdapter_spec.js
@@ -469,7 +469,11 @@ describe('AduptechBidAdapter', () => {
{
bidId: 'bidId1',
adUnitCode: 'adUnitCode1',
- transactionId: 'transactionId1',
+ ortb2Imp: {
+ ext: {
+ tid: 'transactionId1',
+ }
+ },
mediaTypes: {
banner: {
sizes: [[100, 200], [300, 400]]
@@ -483,7 +487,11 @@ describe('AduptechBidAdapter', () => {
{
bidId: 'bidId2',
adUnitCode: 'adUnitCode2',
- transactionId: 'transactionId2',
+ ortb2Imp: {
+ ext: {
+ tid: 'transactionId2',
+ }
+ },
mediaTypes: {
banner: {
sizes: [[100, 200]]
@@ -497,7 +505,13 @@ describe('AduptechBidAdapter', () => {
{
bidId: 'bidId3',
adUnitCode: 'adUnitCode3',
- transactionId: 'transactionId3',
+ ortb2Imp: {
+ ext: {
+ tid: {
+ transactionId: 'transactionId3',
+ }
+ }
+ },
mediaTypes: {
native: {
image: {
@@ -536,14 +550,14 @@ describe('AduptechBidAdapter', () => {
imp: [
{
bidId: validBidRequests[0].bidId,
- transactionId: validBidRequests[0].transactionId,
+ transactionId: validBidRequests[0].ortb2Imp.ext.tid,
adUnitCode: validBidRequests[0].adUnitCode,
params: validBidRequests[0].params,
banner: validBidRequests[0].mediaTypes.banner
},
{
bidId: validBidRequests[1].bidId,
- transactionId: validBidRequests[1].transactionId,
+ transactionId: validBidRequests[1].ortb2Imp.ext.tid,
adUnitCode: validBidRequests[1].adUnitCode,
params: validBidRequests[1].params,
banner: validBidRequests[1].mediaTypes.banner
@@ -565,7 +579,7 @@ describe('AduptechBidAdapter', () => {
imp: [
{
bidId: validBidRequests[2].bidId,
- transactionId: validBidRequests[2].transactionId,
+ transactionId: validBidRequests[2].ortb2Imp.ext.tid,
adUnitCode: validBidRequests[2].adUnitCode,
params: validBidRequests[2].params,
native: validBidRequests[2].mediaTypes.native
@@ -592,7 +606,11 @@ describe('AduptechBidAdapter', () => {
const bidRequest = {
bidId: 'bidId1',
adUnitCode: 'adUnitCode1',
- transactionId: 'transactionId1',
+ ortb2Imp: {
+ ext: {
+ tid: 'transactionId1',
+ }
+ },
mediaTypes: {
banner: {
sizes: [[100, 200], [300, 400]]
@@ -630,7 +648,7 @@ describe('AduptechBidAdapter', () => {
imp: [
{
bidId: bidRequest.bidId,
- transactionId: bidRequest.transactionId,
+ transactionId: bidRequest.ortb2Imp.ext.tid,
adUnitCode: bidRequest.adUnitCode,
params: bidRequest.params,
banner: {
diff --git a/test/spec/modules/adxcgBidAdapter_spec.js b/test/spec/modules/adxcgBidAdapter_spec.js
index e2d9e2a15e4..65c7584b428 100644
--- a/test/spec/modules/adxcgBidAdapter_spec.js
+++ b/test/spec/modules/adxcgBidAdapter_spec.js
@@ -165,7 +165,10 @@ describe('Adxcg adapter', function () {
bidId: 'bidId',
params: {siteId: 'siteId'},
}];
- let request = JSON.parse(spec.buildRequests(validBidRequests, {refererInfo: {referer: 'page'}, auctionId: 'tid'}).data);
+ let request = JSON.parse(spec.buildRequests(validBidRequests, {
+ refererInfo: {referer: 'page'},
+ ortb2: {source: {tid: 'tid'}}
+ }).data);
assert.equal(request.source.tid, 'tid');
assert.equal(request.source.fd, 1);
diff --git a/test/spec/modules/adyoulikeBidAdapter_spec.js b/test/spec/modules/adyoulikeBidAdapter_spec.js
index c69d31d1bbd..7310f736f7e 100644
--- a/test/spec/modules/adyoulikeBidAdapter_spec.js
+++ b/test/spec/modules/adyoulikeBidAdapter_spec.js
@@ -44,7 +44,11 @@ describe('Adyoulike Adapter', function () {
'params': {
'placement': 'placement_0'
},
- 'transactionId': 'bid_id_0_transaction_id'
+ 'ortb2Imp': {
+ 'ext': {
+ 'tid': 'bid_id_0_transaction_id'
+ }
+ },
}
],
};
@@ -108,7 +112,11 @@ describe('Adyoulike Adapter', function () {
]
}
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ }
}
];
@@ -142,7 +150,11 @@ describe('Adyoulike Adapter', function () {
},
}
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ },
}
];
@@ -162,7 +174,11 @@ describe('Adyoulike Adapter', function () {
'playerSize': [[ 640, 480 ]]
}
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ },
}
];
@@ -185,7 +201,11 @@ describe('Adyoulike Adapter', function () {
}
},
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ },
}
];
@@ -286,7 +306,11 @@ describe('Adyoulike Adapter', function () {
{'sizes': ['300x250']
}
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ },
}
];
@@ -304,7 +328,11 @@ describe('Adyoulike Adapter', function () {
{'sizes': ['300x250']
}
},
- 'transactionId': 'bid_id_0_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_0_transaction_id'
+ }
+ },
},
{
'bidId': 'bid_id_1',
@@ -319,7 +347,11 @@ describe('Adyoulike Adapter', function () {
{'sizes': ['300x600']
}
},
- 'transactionId': 'bid_id_1_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_1_transaction_id'
+ }
+ },
},
{
'bidId': 'bid_id_2',
@@ -327,7 +359,11 @@ describe('Adyoulike Adapter', function () {
'placementCode': 'adunit/hb-2',
'params': {},
'sizes': '300x400',
- 'transactionId': 'bid_id_2_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_2_transaction_id'
+ }
+ },
},
{
'bidId': 'bid_id_3',
@@ -336,7 +372,11 @@ describe('Adyoulike Adapter', function () {
'params': {
'placement': 'placement_3'
},
- 'transactionId': 'bid_id_3_transaction_id'
+ ortb2Imp: {
+ ext: {
+ tid: 'bid_id_3_transaction_id'
+ }
+ },
}
];
diff --git a/test/spec/modules/afpBidAdapter_spec.js b/test/spec/modules/afpBidAdapter_spec.js
index 5b658a66351..12bd19da9ca 100644
--- a/test/spec/modules/afpBidAdapter_spec.js
+++ b/test/spec/modules/afpBidAdapter_spec.js
@@ -125,7 +125,11 @@ const getTransformedConfig = ({mediaTypes, params}) => {
bidId,
bidder: BIDDER_CODE,
mediaTypes: mediaTypes,
- transactionId,
+ ortb2Imp: {
+ ext: {
+ tid: transactionId
+ }
+ }
}
}
const validBidRequests = Object.keys(configByPlaceType).map(key => getTransformedConfig(configByPlaceType[key]))
diff --git a/test/spec/modules/aidemBidAdapter_spec.js b/test/spec/modules/aidemBidAdapter_spec.js
index 8268efde2a1..8b401491ba0 100644
--- a/test/spec/modules/aidemBidAdapter_spec.js
+++ b/test/spec/modules/aidemBidAdapter_spec.js
@@ -171,7 +171,11 @@ const DEFAULT_VALID_BANNER_REQUESTS = [
placementId: '13144370'
},
src: 'client',
- transactionId: '54a58774-7a41-494e-9aaf-fa7b79164f0c'
+ ortb2Imp: {
+ ext: {
+ tid: '54a58774-7a41-494e-9aaf-fa7b79164f0c',
+ },
+ },
}
];
@@ -196,7 +200,11 @@ const DEFAULT_VALID_VIDEO_REQUESTS = [
placementId: '13144370'
},
src: 'client',
- transactionId: '54a58774-7a41-494e-9aaf-fa7b79164f0c'
+ ortb2Imp: {
+ ext: {
+ tid: '54a58774-7a41-494e-9aaf-fa7b79164f0c',
+ }
+ },
}
];
diff --git a/test/spec/modules/astraoneBidAdapter_spec.js b/test/spec/modules/astraoneBidAdapter_spec.js
index 0e545081869..80d6dcdf627 100644
--- a/test/spec/modules/astraoneBidAdapter_spec.js
+++ b/test/spec/modules/astraoneBidAdapter_spec.js
@@ -8,7 +8,11 @@ function getSlotConfigs(mediaTypes, params) {
bidId: '2df8c0733f284e',
bidder: 'astraone',
mediaTypes: mediaTypes,
- transactionId: '31a58515-3634-4e90-9c96-f86196db1459'
+ ortb2Imp: {
+ ext: {
+ tid: '31a58515-3634-4e90-9c96-f86196db1459'
+ }
+ }
}
}
diff --git a/test/spec/modules/bluebillywigBidAdapter_spec.js b/test/spec/modules/bluebillywigBidAdapter_spec.js
index 0826acc7f29..4b58e3507db 100644
--- a/test/spec/modules/bluebillywigBidAdapter_spec.js
+++ b/test/spec/modules/bluebillywigBidAdapter_spec.js
@@ -1,10 +1,8 @@
-import { expect } from 'chai';
-import { spec } from 'modules/bluebillywigBidAdapter.js';
-import * as bidderFactory from 'src/adapters/bidderFactory.js';
-import { auctionManager } from 'src/auctionManager.js';
-import { deepClone, deepAccess } from 'src/utils.js';
-import { config } from 'src/config.js';
-import { VIDEO } from 'src/mediaTypes.js';
+import {expect} from 'chai';
+import {spec} from 'modules/bluebillywigBidAdapter.js';
+import {deepAccess, deepClone} from 'src/utils.js';
+import {config} from 'src/config.js';
+import {VIDEO} from 'src/mediaTypes.js';
const BB_CONSTANTS = {
BIDDER_CODE: 'bluebillywig',
@@ -254,7 +252,11 @@ describe('BlueBillywigAdapter', () => {
const baseValidBidRequests = [baseValidBid];
const validBidderRequest = {
- auctionId: '12abc345-67d8-9012-e345-6f78901a2b34',
+ ortb2: {
+ source: {
+ tid: '12abc345-67d8-9012-e345-6f78901a2b34',
+ }
+ },
auctionStart: 1585918458868,
bidderCode: BB_CONSTANTS.BIDDER_CODE,
bidderRequestId: '1a2345b67c8d9e0',
@@ -293,9 +295,9 @@ describe('BlueBillywigAdapter', () => {
const request = spec.buildRequests(baseValidBidRequests, validBidderRequest);
const payload = JSON.parse(request.data);
- expect(payload.id).to.equal(validBidderRequest.auctionId);
+ expect(payload.id).to.exist;
expect(payload.source).to.be.an('object');
- expect(payload.source.tid).to.equal(validBidderRequest.auctionId);
+ expect(payload.source.tid).to.equal(validBidderRequest.ortb2.source.tid);
expect(payload.tmax).to.equal(BB_CONSTANTS.DEFAULT_TIMEOUT);
expect(payload.imp).to.be.an('array');
expect(payload.test).to.be.a('number');
diff --git a/test/spec/modules/browsiBidAdapter_spec.js b/test/spec/modules/browsiBidAdapter_spec.js
index 2879a60cbcf..9693972fd7f 100644
--- a/test/spec/modules/browsiBidAdapter_spec.js
+++ b/test/spec/modules/browsiBidAdapter_spec.js
@@ -64,7 +64,11 @@ describe('browsi Bid Adapter Test', function () {
'sizes': [640, 480],
'bidId': '12345678',
'requestId': '1234567-3456-4562-7689-98765434A',
- 'transactionId': '1234567-3456-4562-7689-98765434B',
+ ortb2Imp: {
+ ext: {
+ tid: '1234567-3456-4562-7689-98765434B',
+ }
+ },
'schain': {},
'mediaTypes': {video: {playerSize: [640, 480]}}
}
@@ -112,7 +116,7 @@ describe('browsi Bid Adapter Test', function () {
video: {playerSize: [640, 480]},
aUCode: inputRequest.adUnitCode,
aID: inputRequest.auctionId,
- tID: inputRequest.transactionId,
+ tID: inputRequest.ortb2Imp.ext.tid,
schain: inputRequest.schain,
params: inputRequest.params
}
diff --git a/test/spec/modules/ccxBidAdapter_spec.js b/test/spec/modules/ccxBidAdapter_spec.js
index d346a14d38a..cbae441e7e7 100644
--- a/test/spec/modules/ccxBidAdapter_spec.js
+++ b/test/spec/modules/ccxBidAdapter_spec.js
@@ -81,7 +81,7 @@ describe('ccxAdapter', function () {
});
it('Valid bid request - default', function () {
- let response = spec.buildRequests(bids, {bids});
+ let response = spec.buildRequests(bids, {bids, bidderRequestId: 'id'});
expect(response).to.be.not.empty;
expect(response.data).to.be.not.empty;
diff --git a/test/spec/modules/cleanmedianetBidAdapter_spec.js b/test/spec/modules/cleanmedianetBidAdapter_spec.js
index a19cdf7fd35..3c73dac07de 100644
--- a/test/spec/modules/cleanmedianetBidAdapter_spec.js
+++ b/test/spec/modules/cleanmedianetBidAdapter_spec.js
@@ -310,7 +310,7 @@ describe('CleanmedianetAdapter', () => {
response = spec.buildRequests([bidRequest], bidRequest)[0];
expect(response.method).to.equal('POST');
expect(response.url).to.match(new RegExp(`^https://bidder\\.cleanmediaads\\.com/r/${supplyPartnerId}/bidr\\?rformat=open_rtb&reqformat=rtb_json&bidder=prebid$`, 'g'));
- expect(response.data.id).to.equal(bidRequest.auctionId);
+ expect(response.data.id).to.equal(bidRequest.bidId);
const bidRequestWithEndpoint = utils.deepClone(bidRequest);
bidRequestWithEndpoint.params.rtbEndpoint = 'https://bidder.cleanmediaads.com/a12';
response = spec.buildRequests([bidRequestWithEndpoint], bidRequest)[0];
@@ -330,7 +330,7 @@ describe('CleanmedianetAdapter', () => {
expect(response.data.site.page).to.equal('http://www.test.com/page.html');
expect(response.data.site.ref).to.equal('http://referrer.com');
expect(response.data.imp.length).to.equal(1);
- expect(response.data.imp[0].id).to.equal(bidRequest.transactionId);
+ expect(response.data.imp[0].id).to.equal(bidRequest.bidId);
expect(response.data.imp[0].instl).to.equal(0);
expect(response.data.imp[0].tagid).to.equal(bidRequest.adUnitCode);
expect(response.data.imp[0].bidfloor).to.equal(0);
diff --git a/test/spec/modules/codefuelBidAdapter_spec.js b/test/spec/modules/codefuelBidAdapter_spec.js
index 354cbe63ffa..6123f768d88 100644
--- a/test/spec/modules/codefuelBidAdapter_spec.js
+++ b/test/spec/modules/codefuelBidAdapter_spec.js
@@ -1,6 +1,7 @@
import {expect} from 'chai';
import {spec} from 'modules/codefuelBidAdapter.js';
import {config} from 'src/config.js';
+import * as utils from 'src/utils.js';
import {server} from 'test/mocks/xhr';
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/92.0.4515.159 Safari/537.36';
@@ -9,6 +10,13 @@ const setUADefault = () => { window.navigator.__defineGetter__('userAgent', func
const setUAMock = () => { window.navigator.__defineGetter__('userAgent', function () { return USER_AGENT }) };
describe('Codefuel Adapter', function () {
+ let sandbox;
+ beforeEach(() => {
+ sandbox = sinon.sandbox.create();
+ });
+ afterEach(() => {
+ sandbox.restore();
+ })
describe('Bid request and response', function () {
const commonBidRequest = {
bidder: 'codefuel',
@@ -137,6 +145,7 @@ describe('Codefuel Adapter', function () {
const commonBidderRequest = {
timeout: 500,
+ bidderRequestId: 'mock-uuid',
auctionId: '12043683-3254-4f74-8934-f941b085579e',
refererInfo: {
page: 'https://example.com/',
@@ -157,7 +166,7 @@ describe('Codefuel Adapter', function () {
devicetype: 2,
ua: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/92.0.4515.159 Safari/537.36'
},
- id: '12043683-3254-4f74-8934-f941b085579e',
+ id: 'mock-uuid',
imp: [
{
banner: {
diff --git a/test/spec/modules/colossussspBidAdapter_spec.js b/test/spec/modules/colossussspBidAdapter_spec.js
index adb9137d892..0d16f9897fa 100644
--- a/test/spec/modules/colossussspBidAdapter_spec.js
+++ b/test/spec/modules/colossussspBidAdapter_spec.js
@@ -19,12 +19,12 @@ describe('ColossussspAdapter', function () {
},
ortb2Imp: {
ext: {
+ tid: '3bb2f6da-87a6-4029-aeb0-bfe951372e62',
data: {
pbadslot: '/19968336/prebid_cache_video_adunit'
}
}
},
- transactionId: '3bb2f6da-87a6-4029-aeb0-bfe951372e62',
schain: {
ver: '1.0',
complete: 1,
diff --git a/test/spec/modules/concertBidAdapter_spec.js b/test/spec/modules/concertBidAdapter_spec.js
index f5c807b4703..96c98e5e5a2 100644
--- a/test/spec/modules/concertBidAdapter_spec.js
+++ b/test/spec/modules/concertBidAdapter_spec.js
@@ -48,7 +48,11 @@ describe('ConcertAdapter', function () {
},
adUnitCode: 'desktop_leaderboard_variable',
bidId: 'foo',
- transactionId: '',
+ ortb2Imp: {
+ ext: {
+ tid: ''
+ }
+ },
sizes: [[1030, 590]]
}
];
diff --git a/test/spec/modules/conversantBidAdapter_spec.js b/test/spec/modules/conversantBidAdapter_spec.js
index bf02a2893f0..59ebefa2d60 100644
--- a/test/spec/modules/conversantBidAdapter_spec.js
+++ b/test/spec/modules/conversantBidAdapter_spec.js
@@ -256,6 +256,11 @@ describe('Conversant adapter tests', function() {
const bidderRequest = {
refererInfo: {
page: page
+ },
+ ortb2: {
+ source: {
+ tid: 'tid000'
+ }
}
};
const request = spec.buildRequests(bidRequests, bidderRequest);
@@ -263,8 +268,8 @@ describe('Conversant adapter tests', function() {
expect(request.url).to.equal('https://web.hb.ad.cpe.dotomi.com/cvx/client/hb/ortb/25');
const payload = request.data;
- expect(payload).to.have.property('id', 'req000');
- expect(payload.source).to.have.property('tid', 'req000');
+ expect(payload).to.have.property('id');
+ expect(payload.source).to.have.property('tid', 'tid000');
expect(payload).to.have.property('at', 1);
expect(payload).to.have.property('imp');
expect(payload.imp).to.be.an('array').with.lengthOf(8);
diff --git a/test/spec/modules/criteoBidAdapter_spec.js b/test/spec/modules/criteoBidAdapter_spec.js
index 17527eb42c7..05bdd73ac86 100755
--- a/test/spec/modules/criteoBidAdapter_spec.js
+++ b/test/spec/modules/criteoBidAdapter_spec.js
@@ -609,7 +609,11 @@ describe('The Criteo bidding adapter', function () {
{
bidder: 'criteo',
adUnitCode: 'bid-123',
- transactionId: 'transaction-123',
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-123',
+ },
+ },
mediaTypes: {
banner: {
sizes: [[728, 90]]
@@ -628,7 +632,11 @@ describe('The Criteo bidding adapter', function () {
{
bidder: 'criteo',
adUnitCode: 'bid-123',
- transactionId: 'transaction-123',
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-123',
+ },
+ },
mediaTypes: {
banner: {
sizes: [[728, 90]]
@@ -841,7 +849,11 @@ describe('The Criteo bidding adapter', function () {
{
bidder: 'criteo',
adUnitCode: 'bid-123',
- transactionId: 'transaction-123',
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-123',
+ },
+ },
mediaTypes: {
banner: {
sizes: [[300, 250], [728, 90]]
@@ -880,7 +892,11 @@ describe('The Criteo bidding adapter', function () {
{
bidder: 'criteo',
adUnitCode: 'bid-123',
- transactionId: 'transaction-123',
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-123',
+ },
+ },
mediaTypes: {
banner: {
sizes: [[728, 90]]
@@ -893,7 +909,11 @@ describe('The Criteo bidding adapter', function () {
{
bidder: 'criteo',
adUnitCode: 'bid-234',
- transactionId: 'transaction-234',
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-234',
+ },
+ },
mediaTypes: {
banner: {
sizes: [[300, 250], [728, 90]]
diff --git a/test/spec/modules/datawrkzBidAdapter_spec.js b/test/spec/modules/datawrkzBidAdapter_spec.js
index 3ddc2bad1cf..5524e318600 100644
--- a/test/spec/modules/datawrkzBidAdapter_spec.js
+++ b/test/spec/modules/datawrkzBidAdapter_spec.js
@@ -462,7 +462,6 @@ describe('datawrkzAdapterTests', function () {
expect(result[0].ad).to.equal(decodeURIComponent(serverResponse.body.seatbid[0].bid[0].adm + ''));
expect(result[0].creativeId).to.equal('1');
expect(result[0].bidderCode).to.equal(request.bidRequest.bidder);
- expect(result[0].transactionId).to.equal(request.bidRequest.transactionId);
expect(result[0].mediaType).to.equal('banner');
});
@@ -540,7 +539,6 @@ describe('datawrkzAdapterTests', function () {
expect(result[0].native.desc).to.equal('Test body');
expect(result[0].creativeId).to.equal('1');
expect(result[0].bidderCode).to.equal(request.bidRequest.bidder);
- expect(result[0].transactionId).to.equal(request.bidRequest.transactionId);
expect(result[0].mediaType).to.equal('native');
});
@@ -610,7 +608,6 @@ describe('datawrkzAdapterTests', function () {
expect(result[0].adserverTargeting.hb_protocol).to.equal('3');
expect(result[0].creativeId).to.equal('1');
expect(result[0].bidderCode).to.equal(request.bidRequest.bidder);
- expect(result[0].transactionId).to.equal(request.bidRequest.transactionId);
expect(result[0].mediaType).to.equal('video');
});
@@ -649,7 +646,6 @@ describe('datawrkzAdapterTests', function () {
expect(result[0].renderer).to.exist;
expect(result[0].creativeId).to.equal('1');
expect(result[0].bidderCode).to.equal(request.bidRequest.bidder);
- expect(result[0].transactionId).to.equal(request.bidRequest.transactionId);
expect(result[0].mediaType).to.equal('video');
});
});
diff --git a/test/spec/modules/dianomiBidAdapter_spec.js b/test/spec/modules/dianomiBidAdapter_spec.js
index 61509913c41..0838762d750 100644
--- a/test/spec/modules/dianomiBidAdapter_spec.js
+++ b/test/spec/modules/dianomiBidAdapter_spec.js
@@ -162,7 +162,7 @@ describe('Dianomi adapter', () => {
},
];
let request = JSON.parse(
- spec.buildRequests(validBidRequests, { refererInfo: { page: 'page' }, auctionId: 'tid' }).data
+ spec.buildRequests(validBidRequests, {refererInfo: {page: 'page'}, ortb2: {source: {tid: 'tid'}}}).data
);
assert.equal(request.source.tid, 'tid');
diff --git a/test/spec/modules/etargetBidAdapter_spec.js b/test/spec/modules/etargetBidAdapter_spec.js
index 55394dcdeea..a950100d612 100644
--- a/test/spec/modules/etargetBidAdapter_spec.js
+++ b/test/spec/modules/etargetBidAdapter_spec.js
@@ -173,7 +173,6 @@ describe('etarget adapter', function () {
assert.isNotNull(result.reason);
assert.equal(result.ttl, 360);
assert.equal(result.ad, '');
- assert.equal(result.transactionId, '5f33781f-9552-4ca1');
});
it('should set correct netRevenue', function () {
@@ -296,7 +295,11 @@ describe('etarget adapter', function () {
tid: 45,
placementCode: placementCode[0],
sizes: [[300, 250], [250, 300], [300, 600], [600, 300]],
- transactionId: '5f33781f-9552-4ca1'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-4ca1'
+ }
+ }
},
{
adUnitCode: placementCode[1],
@@ -307,7 +310,11 @@ describe('etarget adapter', function () {
params: params[1],
placementCode: placementCode[1],
sizes: [[300, 250], [250, 300], [300, 600], [600, 300]],
- transactionId: '5f33781f-9552-4iuy'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-4iuy'
+ }
+ }
},
{
adUnitCode: placementCode[2],
@@ -318,7 +325,11 @@ describe('etarget adapter', function () {
params: params[2],
placementCode: placementCode[2],
sizes: [[300, 250], [250, 300], [300, 600], [600, 300]],
- transactionId: '5f33781f-9552-7ev3'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-7ev3'
+ }
+ }
},
{
adUnitCode: placementCode[3],
@@ -329,7 +340,11 @@ describe('etarget adapter', function () {
params: params[2],
placementCode: placementCode[2],
sizes: [],
- transactionId: '5f33781f-9552-7ev3'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-7ev3'
+ }
+ }
},
{
adUnitCode: placementCode[4],
@@ -340,7 +355,11 @@ describe('etarget adapter', function () {
params: params[2],
placementCode: placementCode[2],
sizes: [],
- transactionId: '5f33781f-9552-7ev3'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-7ev3'
+ }
+ }
},
{
adUnitCode: placementCode[4],
@@ -351,7 +370,11 @@ describe('etarget adapter', function () {
params: params[3],
placementCode: placementCode[2],
sizes: [],
- transactionId: '5f33781f-9552-7ev3'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-7ev3'
+ }
+ }
},
{
adUnitCode: placementCode[4],
@@ -362,7 +385,11 @@ describe('etarget adapter', function () {
params: params[4],
placementCode: placementCode[2],
sizes: [],
- transactionId: '5f33781f-9552-7ev3'
+ ortb2Imp: {
+ ext: {
+ tid: '5f33781f-9552-7ev3'
+ }
+ }
}
];
serverResponse = {
diff --git a/test/spec/modules/feedadBidAdapter_spec.js b/test/spec/modules/feedadBidAdapter_spec.js
index 5789361d2a1..152adba9d00 100644
--- a/test/spec/modules/feedadBidAdapter_spec.js
+++ b/test/spec/modules/feedadBidAdapter_spec.js
@@ -508,7 +508,11 @@ describe('FeedAdAdapter', function () {
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': transactionId,
+ ortb2Imp: {
+ ext: {
+ tid: transactionId
+ }
+ },
'sizes': [
[
300,
diff --git a/test/spec/modules/finativeBidAdapter_spec.js b/test/spec/modules/finativeBidAdapter_spec.js
index 86d56d9c3e1..d5c56aca65d 100644
--- a/test/spec/modules/finativeBidAdapter_spec.js
+++ b/test/spec/modules/finativeBidAdapter_spec.js
@@ -49,17 +49,6 @@ describe('Finative adapter', function () {
assert.deepEqual(keys, data);
});
- it('Verify the auction ID', function () {
- let validBidRequests = [{
- bidId: 'bidId',
- params: {},
- auctionId: 'auctionId'
- }];
- let request = JSON.parse(spec.buildRequests(validBidRequests, { refererInfo: { referer: 'page' }, auctionId: validBidRequests[0].auctionId }).data);
-
- assert.equal(request.id, validBidRequests[0].auctionId);
- });
-
it('Verify the device', function () {
let validBidRequests = [{
bidId: 'bidId',
diff --git a/test/spec/modules/gamoshiBidAdapter_spec.js b/test/spec/modules/gamoshiBidAdapter_spec.js
index 8f8e3f03736..984830f67d4 100644
--- a/test/spec/modules/gamoshiBidAdapter_spec.js
+++ b/test/spec/modules/gamoshiBidAdapter_spec.js
@@ -46,7 +46,11 @@ describe('GamoshiAdapter', () => {
'supplyPartnerId': supplyPartnerId
},
'sizes': [[300, 250], [300, 600]],
- 'transactionId': 'a123456789',
+ ortb2Imp: {
+ ext: {
+ tid: 'a123456789',
+ }
+ },
refererInfo: {referer: 'http://examplereferer.com'},
gdprConsent: {
consentString: 'some string',
@@ -310,7 +314,6 @@ describe('GamoshiAdapter', () => {
response = spec.buildRequests([bidRequest], bidRequest)[0];
expect(response.method).to.equal('POST');
expect(response.url).to.match(new RegExp(`^https://rtb\\.gamoshi\\.io/r/${supplyPartnerId}/bidr\\?rformat=open_rtb&reqformat=rtb_json&bidder=prebid$`, 'g'));
- expect(response.data.id).to.equal(bidRequest.auctionId);
const bidRequestWithEndpoint = utils.deepClone(bidRequest);
bidRequestWithEndpoint.params.rtbEndpoint = 'https://rtb2.gamoshi.io/a12';
response = spec.buildRequests([bidRequestWithEndpoint], bidRequest)[0];
diff --git a/test/spec/modules/gmosspBidAdapter_spec.js b/test/spec/modules/gmosspBidAdapter_spec.js
index 6d290504194..8c3aa6c94cb 100644
--- a/test/spec/modules/gmosspBidAdapter_spec.js
+++ b/test/spec/modules/gmosspBidAdapter_spec.js
@@ -50,7 +50,11 @@ describe('GmosspAdapter', function () {
bidId: '2b84475b5b636e',
bidderRequestId: '1f4001782ac16c',
auctionId: 'aba03555-4802-4c45-9f15-05ffa8594cff',
- transactionId: '791e9d84-af92-4903-94da-24c7426d9d0c',
+ ortb2Imp: {
+ ext: {
+ tid: '791e9d84-af92-4903-94da-24c7426d9d0c',
+ }
+ },
userId: {
imuid: 'h.0a4749e7ffe09fa6',
pubcid: '1111',
diff --git a/test/spec/modules/gnetBidAdapter_spec.js b/test/spec/modules/gnetBidAdapter_spec.js
index 21526aba201..f1af3b71103 100644
--- a/test/spec/modules/gnetBidAdapter_spec.js
+++ b/test/spec/modules/gnetBidAdapter_spec.js
@@ -63,7 +63,11 @@ describe('gnetAdapter', function () {
bidId: '2a19afd5173318',
bidderRequestId: '1f4001782ac16c',
auctionId: 'aba03555-4802-4c45-9f15-05ffa8594cff',
- transactionId: '894bdff6-61ec-4bec-a5a9-f36a5bfccef5',
+ ortb2Imp: {
+ ext: {
+ tid: '894bdff6-61ec-4bec-a5a9-f36a5bfccef5',
+ }
+ },
gftuid: null
}];
diff --git a/test/spec/modules/gridBidAdapter_spec.js b/test/spec/modules/gridBidAdapter_spec.js
index 775e1a98a9c..039741a641c 100644
--- a/test/spec/modules/gridBidAdapter_spec.js
+++ b/test/spec/modules/gridBidAdapter_spec.js
@@ -22,7 +22,6 @@ describe('TheMediaGrid Adapter', function () {
'sizes': [[300, 250], [300, 600]],
'bidId': '30b31c1838de1e',
'bidderRequestId': '22edbae2733bf6',
- 'auctionId': '1d1a030790a475',
};
it('should return true when required params found', function () {
@@ -47,8 +46,13 @@ describe('TheMediaGrid Adapter', function () {
refererInfo: { page: 'https://example.com' },
bidderRequestId: '22edbae2733bf6',
transactionId: '1239bd74-4511-4335-af21-e828852e25d7',
+ timeout: 3000,
auctionId: '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
- timeout: 3000
+ ortb2: {
+ source: {
+ tid: '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
+ }
+ }
};
const referrer = encodeURIComponent(bidderRequest.refererInfo.page);
let bidRequests = [
@@ -69,6 +73,11 @@ describe('TheMediaGrid Adapter', function () {
'bidderRequestId': '22edbae2733bf6',
'auctionId': '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
transactionId: '1239bd74-4511-4335-af21-e828852e25d7',
+ ortb2Imp: {
+ ext: {
+ tid: '1239bd74-4511-4335-af21-e828852e25d7',
+ }
+ }
},
{
'bidder': 'grid',
@@ -81,6 +90,11 @@ describe('TheMediaGrid Adapter', function () {
'bidderRequestId': '22edbae2733bf6',
'auctionId': '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
transactionId: '1239bd74-4511-4335-af21-e828852e25d7',
+ ortb2Imp: {
+ ext: {
+ tid: '1239bd74-4511-4335-af21-e828852e25d7',
+ }
+ }
},
{
'bidder': 'grid',
@@ -99,6 +113,11 @@ describe('TheMediaGrid Adapter', function () {
'bidderRequestId': '22edbae2733bf6',
'auctionId': '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
transactionId: '1239bd74-4511-4335-af21-e828852e25d7',
+ ortb2Imp: {
+ ext: {
+ tid: '1239bd74-4511-4335-af21-e828852e25d7',
+ }
+ }
},
{
'bidder': 'grid',
@@ -120,6 +139,11 @@ describe('TheMediaGrid Adapter', function () {
'bidderRequestId': '22edbae2733bf6',
'auctionId': '9e2dfbfe-00c7-4f5e-9850-4044df3229c7',
transactionId: '1239bd74-4511-4335-af21-e828852e25d7',
+ ortb2Imp: {
+ ext: {
+ tid: '1239bd74-4511-4335-af21-e828852e25d7',
+ }
+ }
}
];
@@ -152,7 +176,7 @@ describe('TheMediaGrid Adapter', function () {
},
'tmax': bidderRequest.timeout,
'source': {
- 'tid': bidderRequest.auctionId,
+ 'tid': bidderRequest.ortb2.source.tid,
'ext': {'wrapper': 'Prebid_js', 'wrapper_version': '$prebid.version$'}
},
'user': {
@@ -520,10 +544,12 @@ describe('TheMediaGrid Adapter', function () {
'slots': [{
'impid': bidRequests[0].adUnitCode,
'transactionid': bidderRequest.transactionId,
+ ext: bidRequests[0].ortb2Imp.ext,
'auctionId': bidderRequest.auctionId,
'sizes': ['300x250', '300x600']
}, {
'impid': bidRequests[2].adUnitCode,
+ ext: bidRequests[2].ortb2Imp.ext,
'transactionid': bidderRequest.transactionId,
'auctionId': bidderRequest.auctionId,
'sizes': [],
@@ -600,7 +626,13 @@ describe('TheMediaGrid Adapter', function () {
it('should add gpp information to the request via bidderRequest.ortb2.regs.gpp', function () {
let consentString = 'abc1234';
- const gppBidderRequest = Object.assign({ortb2: {regs: {gpp: consentString, gpp_sid: [8]}}}, bidderRequest);
+ const gppBidderRequest = {
+ ...bidderRequest,
+ ortb2: {
+ regs: {gpp: consentString, gpp_sid: [8]},
+ ...bidderRequest.ortb2
+ }
+ };
const [request] = spec.buildRequests(bidRequests, gppBidderRequest);
const payload = JSON.parse(request.data);
@@ -897,7 +929,7 @@ describe('TheMediaGrid Adapter', function () {
}
}];
const bidRequestsWithOrtb2Imp = bidRequests.slice(0, 3).map((bid, ind) => {
- return Object.assign(ortb2Imp[ind] ? { ortb2Imp: ortb2Imp[ind] } : {}, bid);
+ return Object.assign({}, bid, ortb2Imp[ind] ? { ortb2Imp: {...bid.ortb2Imp, ...ortb2Imp[ind]} } : {});
});
const [request] = spec.buildRequests(bidRequestsWithOrtb2Imp, bidderRequest);
expect(request.data).to.be.an('string');
@@ -934,7 +966,7 @@ describe('TheMediaGrid Adapter', function () {
}
}];
const bidRequestsWithOrtb2Imp = bidRequests.slice(0, 3).map((bid, ind) => {
- return Object.assign(ortb2Imp[ind] ? { ortb2Imp: ortb2Imp[ind] } : {}, bid);
+ return Object.assign({}, bid, ortb2Imp[ind] ? { ortb2Imp: ortb2Imp[ind] } : {});
});
const [request] = spec.buildRequests(bidRequestsWithOrtb2Imp, bidderRequest);
expect(request.data).to.be.an('string');
@@ -966,8 +998,12 @@ describe('TheMediaGrid Adapter', function () {
const bidderRequestWithNumId = {
refererInfo: {page: 'https://example.com'},
bidderRequestId: 345345345,
- auctionId: 654645,
- timeout: 3000
+ timeout: 3000,
+ ortb2: {
+ source: {
+ tid: 654645
+ }
+ }
};
const parsedReferrer = encodeURIComponent(bidderRequestWithNumId.refererInfo.page);
const [request] = spec.buildRequests([bidRequestWithNumId], bidderRequestWithNumId);
diff --git a/test/spec/modules/hybridBidAdapter_spec.js b/test/spec/modules/hybridBidAdapter_spec.js
index 6c98264c06f..a0d479fb4dc 100644
--- a/test/spec/modules/hybridBidAdapter_spec.js
+++ b/test/spec/modules/hybridBidAdapter_spec.js
@@ -8,7 +8,11 @@ function getSlotConfigs(mediaTypes, params) {
bidId: '2df8c0733f284e',
bidder: 'hybrid',
mediaTypes: mediaTypes,
- transactionId: '31a58515-3634-4e90-9c96-f86196db1459'
+ ortb2Imp: {
+ ext: {
+ tid: '31a58515-3634-4e90-9c96-f86196db1459'
+ }
+ }
}
}
diff --git a/test/spec/modules/imdsBidAdapter_spec.js b/test/spec/modules/imdsBidAdapter_spec.js
index 8966baf91a7..ce04fabe02b 100644
--- a/test/spec/modules/imdsBidAdapter_spec.js
+++ b/test/spec/modules/imdsBidAdapter_spec.js
@@ -2,6 +2,7 @@ import { assert, expect } from 'chai';
import { BANNER } from 'src/mediaTypes.js';
import { config } from 'src/config.js';
import { spec } from 'modules/imdsBidAdapter.js';
+import * as utils from 'src/utils.js';
describe('imdsBidAdapter ', function () {
describe('isBidRequestValid', function () {
@@ -177,7 +178,7 @@ describe('imdsBidAdapter ', function () {
};
let bidderRequest = {
- auctionId: 'xyz123',
+ bidderRequestId: 'xyz123',
refererInfo: {
referer: 'https://test.com/foo/bar'
}
@@ -192,7 +193,7 @@ describe('imdsBidAdapter ', function () {
};
let bidderRequestWithCCPA = {
- auctionId: 'xyz123',
+ bidderRequestId: 'xyz123',
refererInfo: {
referer: 'https://test.com/foo/bar'
},
@@ -299,7 +300,6 @@ describe('imdsBidAdapter ', function () {
expect(reqVideo).to.have.property('url');
expect(reqVideo.url).to.contain('https://prebid.technoratimedia.com/openrtb/bids/prebid?');
expect(reqVideo.data).to.exist.and.to.be.an('object');
- expect(reqVideo.data.id).to.equal('VideoAuctionId124');
expect(reqVideo.data.imp).to.eql([expectedDataVideo1]);
});
diff --git a/test/spec/modules/improvedigitalBidAdapter_spec.js b/test/spec/modules/improvedigitalBidAdapter_spec.js
index b06669f2429..f427f9e7624 100644
--- a/test/spec/modules/improvedigitalBidAdapter_spec.js
+++ b/test/spec/modules/improvedigitalBidAdapter_spec.js
@@ -119,6 +119,11 @@ describe('Improve Digital Adapter Tests', function () {
};
const bidderRequest = {
+ ortb2: {
+ source: {
+ tid: 'mock-tid'
+ }
+ },
bids: [simpleBidRequest],
};
@@ -236,7 +241,7 @@ describe('Improve Digital Adapter Tests', function () {
expect(payload.tmax).not.to.exist;
expect(payload.regs).to.not.exist;
expect(payload.schain).to.not.exist;
- sinon.assert.match(payload.source, {tid: '192721e36a0239'})
+ sinon.assert.match(payload.source, {tid: 'mock-tid'})
expect(payload.device).to.be.an('object');
expect(payload.user).to.not.exist;
sinon.assert.match(payload.imp, [
diff --git a/test/spec/modules/insticatorBidAdapter_spec.js b/test/spec/modules/insticatorBidAdapter_spec.js
index fc7ed1833ac..de0358f2b46 100644
--- a/test/spec/modules/insticatorBidAdapter_spec.js
+++ b/test/spec/modules/insticatorBidAdapter_spec.js
@@ -72,7 +72,11 @@ describe('InsticatorBidAdapter', function () {
let bidderRequest = {
bidderRequestId,
- auctionId: '74f78609-a92d-4cf1-869f-1b244bbfb5d2',
+ ortb2: {
+ source: {
+ tid: '74f78609-a92d-4cf1-869f-1b244bbfb5d2',
+ }
+ },
timeout: 300,
gdprConsent: {
consentString: 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==',
@@ -248,7 +252,7 @@ describe('InsticatorBidAdapter', function () {
expect(data.tmax).to.equal(bidderRequest.timeout);
expect(data.source).to.have.all.keys('fd', 'tid', 'ext');
expect(data.source.fd).to.equal(1);
- expect(data.source.tid).to.equal(bidderRequest.auctionId);
+ expect(data.source.tid).to.equal(bidderRequest.ortb2.source.tid);
expect(data.source.ext).to.have.property('schain').to.deep.equal({
ver: '1.0',
complete: 1,
diff --git a/test/spec/modules/ixBidAdapter_spec.js b/test/spec/modules/ixBidAdapter_spec.js
index 874f5048ce0..3aa4d6b0d8d 100644
--- a/test/spec/modules/ixBidAdapter_spec.js
+++ b/test/spec/modules/ixBidAdapter_spec.js
@@ -729,6 +729,9 @@ describe('IndexexchangeAdapter', function () {
ortb2: {
site: {
page: 'https://www.prebid.org'
+ },
+ source: {
+ tid: 'mock-tid'
}
}
};
@@ -1894,7 +1897,7 @@ describe('IndexexchangeAdapter', function () {
expect(payload.source.ext.schain).to.deep.equal(SAMPLE_SCHAIN);
expect(payload.imp).to.be.an('array');
expect(payload.imp).to.have.lengthOf(1);
- expect(payload.source.tid).to.equal(DEFAULT_BANNER_VALID_BID[0].auctionId);
+ expect(payload.source.tid).to.equal(DEFAULT_OPTION.ortb2.source.tid);
});
it('payload should have correct format and value for r.id when bidderRequestId is a number ', function () {
diff --git a/test/spec/modules/kargoBidAdapter_spec.js b/test/spec/modules/kargoBidAdapter_spec.js
index d692cc67e26..dae2640d224 100644
--- a/test/spec/modules/kargoBidAdapter_spec.js
+++ b/test/spec/modules/kargoBidAdapter_spec.js
@@ -76,7 +76,6 @@ describe('kargo adapter tests', function () {
auctionId: '1234098',
bidId: '1',
adUnitCode: '101',
- transactionId: '10101',
sizes: [[320, 50], [300, 250], [300, 600]],
mediaTypes: {
banner: {
@@ -135,6 +134,7 @@ describe('kargo adapter tests', function () {
},
ortb2Imp: {
ext: {
+ tid: '10101',
data: {
adServer: {
name: 'gam',
@@ -152,7 +152,6 @@ describe('kargo adapter tests', function () {
},
bidId: '2',
adUnitCode: '202',
- transactionId: '20202',
sizes: [[320, 50], [300, 250], [300, 600]],
mediaTypes: {
video: {
@@ -164,6 +163,7 @@ describe('kargo adapter tests', function () {
bidderWinsCount: 0,
ortb2Imp: {
ext: {
+ tid: '20202',
data: {
adServer: {
name: 'gam',
@@ -180,7 +180,6 @@ describe('kargo adapter tests', function () {
},
bidId: '3',
adUnitCode: '303',
- transactionId: '30303',
sizes: [[320, 50], [300, 250], [300, 600]],
mediaTypes: {
native: {
@@ -189,6 +188,7 @@ describe('kargo adapter tests', function () {
},
ortb2Imp: {
ext: {
+ tid: '30303',
data: {
adServer: {
name: 'gam',
diff --git a/test/spec/modules/koblerBidAdapter_spec.js b/test/spec/modules/koblerBidAdapter_spec.js
index 5fb0bef726e..2b5830f68d2 100644
--- a/test/spec/modules/koblerBidAdapter_spec.js
+++ b/test/spec/modules/koblerBidAdapter_spec.js
@@ -7,6 +7,7 @@ import {getRefererInfo} from 'src/refererDetection.js';
function createBidderRequest(auctionId, timeout, pageUrl) {
return {
+ bidderRequestId: 'mock-uuid',
auctionId: auctionId || 'c1243d83-0bed-4fdb-8c76-42b456be17d0',
timeout: timeout || 2000,
refererInfo: {
@@ -37,6 +38,16 @@ function createValidBidRequest(params, bidId, sizes) {
}
describe('KoblerAdapter', function () {
+ let sandbox;
+
+ beforeEach(() => {
+ sandbox = sinon.sandbox.create();
+ });
+
+ afterEach(() => {
+ sandbox.restore()
+ });
+
describe('inherited functions', function () {
it('exists and is a function', function () {
const adapter = newBidder(spec);
@@ -207,7 +218,7 @@ describe('KoblerAdapter', function () {
const openRtbRequest = JSON.parse(result.data);
expect(openRtbRequest.tmax).to.be.equal(timeout);
- expect(openRtbRequest.id).to.be.equal(auctionId);
+ expect(openRtbRequest.id).to.exist;
expect(openRtbRequest.site.page).to.be.equal(testUrl);
});
@@ -435,7 +446,7 @@ describe('KoblerAdapter', function () {
const openRtbRequest = JSON.parse(result.data);
const expectedOpenRtbRequest = {
- id: '9ff580cf-e10e-4b66-add7-40ac0c804e21',
+ id: 'mock-uuid',
at: 1,
tmax: 4500,
cur: ['USD'],
diff --git a/test/spec/modules/limelightDigitalBidAdapter_spec.js b/test/spec/modules/limelightDigitalBidAdapter_spec.js
index 5a92110abb4..0e6f4817e5e 100644
--- a/test/spec/modules/limelightDigitalBidAdapter_spec.js
+++ b/test/spec/modules/limelightDigitalBidAdapter_spec.js
@@ -24,7 +24,11 @@ describe('limelightDigitalAdapter', function () {
sizes: [[300, 250]]
}
},
- transactionId: '3bb2f6da-87a6-4029-aeb0-bfe951372e62',
+ ortb2Imp: {
+ ext: {
+ tid: '3bb2f6da-87a6-4029-aeb0-bfe951372e62',
+ }
+ },
userIdAsEids: [
{
source: 'test1.org',
@@ -64,7 +68,11 @@ describe('limelightDigitalAdapter', function () {
placementCode: 'placement_1',
auctionId: '482f88de-29ab-45c8-981a-d25e39454a34',
sizes: [[350, 200]],
- transactionId: '068867d1-46ec-40bb-9fa0-e24611786fb4',
+ ortb2Imp: {
+ ext: {
+ tid: '068867d1-46ec-40bb-9fa0-e24611786fb4',
+ }
+ },
userIdAsEids: [
{
source: 'test2.org',
@@ -110,7 +118,11 @@ describe('limelightDigitalAdapter', function () {
placementCode: 'placement_2',
auctionId: 'e4771143-6aa7-41ec-8824-ced4342c96c8',
sizes: [[800, 600]],
- transactionId: '738d5915-6651-43b9-9b6b-d50517350917',
+ ortb2Imp: {
+ ext: {
+ tid: '738d5915-6651-43b9-9b6b-d50517350917',
+ }
+ },
userIdAsEids: [
{
source: 'test3.org',
@@ -155,7 +167,11 @@ describe('limelightDigitalAdapter', function () {
video: {
playerSize: [800, 600]
},
- transactionId: '738d5915-6651-43b9-9b6b-d50517350917',
+ ortb2Imp: {
+ ext: {
+ tid: '738d5915-6651-43b9-9b6b-d50517350917',
+ }
+ },
userIdAsEids: [
{
source: 'test.org',
@@ -647,7 +663,7 @@ function validateAdUnit(adUnit, bid) {
expect(adUnit.id).to.equal(bid.params.adUnitId);
expect(adUnit.bidId).to.equal(bid.bidId);
expect(adUnit.type).to.equal(bid.params.adUnitType.toUpperCase());
- expect(adUnit.transactionId).to.equal(bid.transactionId);
+ expect(adUnit.transactionId).to.equal(bid.ortb2Imp.ext.tid);
let bidSizes = [];
if (bid.mediaTypes) {
if (bid.mediaTypes.video && bid.mediaTypes.video.playerSize) {
diff --git a/test/spec/modules/livewrappedBidAdapter_spec.js b/test/spec/modules/livewrappedBidAdapter_spec.js
index 2a7276981b3..52eaf8d7d76 100644
--- a/test/spec/modules/livewrappedBidAdapter_spec.js
+++ b/test/spec/modules/livewrappedBidAdapter_spec.js
@@ -36,6 +36,11 @@ describe('Livewrapped adapter tests', function () {
bidId: '2ffb201a808da7',
bidderRequestId: '178e34bad3658f',
auctionId: 'F7557995-65F5-4682-8782-7D5D34D82A8C',
+ ortb2Imp: {
+ ext: {
+ tid: '3D1C8CF7-D288-4D7F-8ADD-97C553056C3D'
+ }
+ },
transactionId: '3D1C8CF7-D288-4D7F-8ADD-97C553056C3D'
}
],
diff --git a/test/spec/modules/loglyliftBidAdapter_spec.js b/test/spec/modules/loglyliftBidAdapter_spec.js
index 8ff2eb97463..9805561442a 100644
--- a/test/spec/modules/loglyliftBidAdapter_spec.js
+++ b/test/spec/modules/loglyliftBidAdapter_spec.js
@@ -11,6 +11,11 @@ describe('loglyliftBidAdapter', function () {
},
adUnitCode: '/19968336/prebid_native_example_1',
transactionId: '10aee457-617c-4572-ab5b-99df1d73ccb4',
+ ortb2Imp: {
+ ext: {
+ tid: '10aee457-617c-4572-ab5b-99df1d73ccb4',
+ }
+ },
sizes: [[300, 250], [300, 600]],
bidderRequestId: '15da3afd9632d7',
auctionId: 'f890b7d9-e787-4237-ac21-6d8554abac9f',
@@ -29,6 +34,11 @@ describe('loglyliftBidAdapter', function () {
},
adUnitCode: '/19968336/prebid_native_example_1',
transactionId: '10aee457-617c-4572-ab5b-99df1d73ccb4',
+ ortb2Imp: {
+ ext: {
+ tid: '10aee457-617c-4572-ab5b-99df1d73ccb4',
+ }
+ },
sizes: [
[]
],
diff --git a/test/spec/modules/luponmediaBidAdapter_spec.js b/test/spec/modules/luponmediaBidAdapter_spec.js
index 8486faa5049..1441abc0fe8 100755
--- a/test/spec/modules/luponmediaBidAdapter_spec.js
+++ b/test/spec/modules/luponmediaBidAdapter_spec.js
@@ -142,7 +142,12 @@ describe('luponmediaBidAdapter', function () {
'https://novi.ba/clanak/176067/fast-car-beginner-s-guide-to-tuning-turbo-engines'
]
},
- 'start': 1587413920835
+ 'start': 1587413920835,
+ ortb2: {
+ source: {
+ tid: 'mock-tid'
+ }
+ },
};
it('sends bid request to ENDPOINT via POST', function () {
@@ -150,7 +155,23 @@ describe('luponmediaBidAdapter', function () {
let dynRes = JSON.parse(requests.data);
expect(requests.url).to.equal(ENDPOINT_URL);
expect(requests.method).to.equal('POST');
- expect(requests.data).to.equal('{"id":"585d96a5-bd93-4a89-b8ea-0f546f3aaa82","test":0,"source":{"tid":"7376c117-b7aa-49f5-a661-488543deeefd","ext":{"schain":{"ver":"1.0","complete":1,"nodes":[{"asi":"novi.ba","sid":"199424","hp":1}]}}},"tmax":1500,"imp":[{"id":"268a30af10dd6f","secure":1,"ext":{"luponmedia":{"siteId":303522,"keyId":"4o2c4"}},"banner":{"format":[{"w":300,"h":250}]}}],"ext":{"prebid":{"targeting":{"includewinners":true,"includebidderkeys":false}}},"user":{"id":"' + dynRes.user.id + '","buyeruid":"8d8b16cb-1383-4a0f-b4bb-0be28464d974"},"site":{"page":"https://novi.ba/clanak/176067/fast-car-beginner-s-guide-to-tuning-turbo-engines"}}');
+ expect(JSON.parse(requests.data)).to.deep.include({
+ 'test': 0,
+ 'source': {
+ tid: 'mock-tid',
+ 'ext': {'schain': {'ver': '1.0', 'complete': 1, 'nodes': [{'asi': 'novi.ba', 'sid': '199424', 'hp': 1}]}}
+ },
+ 'tmax': 1500,
+ 'imp': [{
+ 'id': '268a30af10dd6f',
+ 'secure': 1,
+ 'ext': {'luponmedia': {'siteId': 303522, 'keyId': '4o2c4'}},
+ 'banner': {'format': [{'w': 300, 'h': 250}]}
+ }],
+ 'ext': {'prebid': {'targeting': {'includewinners': true, 'includebidderkeys': false}}},
+ 'user': {'id': dynRes.user.id, 'buyeruid': '8d8b16cb-1383-4a0f-b4bb-0be28464d974'},
+ 'site': {'page': 'https://novi.ba/clanak/176067/fast-car-beginner-s-guide-to-tuning-turbo-engines'}
+ });
});
});
diff --git a/test/spec/modules/mediaforceBidAdapter_spec.js b/test/spec/modules/mediaforceBidAdapter_spec.js
index 22f584306a9..61e5678b03b 100644
--- a/test/spec/modules/mediaforceBidAdapter_spec.js
+++ b/test/spec/modules/mediaforceBidAdapter_spec.js
@@ -97,7 +97,11 @@ describe('mediaforce bid adapter', function () {
}
}
},
- transactionId: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ ortb2Imp: {
+ ext: {
+ tid: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ }
+ }
};
const multiBid = [
@@ -127,7 +131,11 @@ describe('mediaforce bid adapter', function () {
sizes: [[300, 250], [600, 400]]
}
},
- transactionId: transactionId || 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
+ ortb2Imp: {
+ ext: {
+ tid: transactionId || 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
+ }
+ },
}
});
@@ -196,7 +204,7 @@ describe('mediaforce bid adapter', function () {
bidfloor: bid.params.bidfloor,
ext: {
mediaforce: {
- transactionId: bid.transactionId
+ transactionId: bid.ortb2Imp.ext.tid,
}
},
banner: {w: 300, h: 250},
diff --git a/test/spec/modules/mediakeysBidAdapter_spec.js b/test/spec/modules/mediakeysBidAdapter_spec.js
index 75c7f42cf58..99eaff3f378 100644
--- a/test/spec/modules/mediakeysBidAdapter_spec.js
+++ b/test/spec/modules/mediakeysBidAdapter_spec.js
@@ -131,7 +131,11 @@ describe('mediakeysBidAdapter', function () {
const bidderRequest = {
bidderCode: 'mediakeys',
- auctionId: '84212956-c377-40e8-b000-9885a06dc692',
+ ortb2: {
+ source: {
+ tid: '84212956-c377-40e8-b000-9885a06dc692',
+ }
+ },
bidderRequestId: '1c1b642f803242',
bids: [
bid
@@ -208,7 +212,7 @@ describe('mediakeysBidAdapter', function () {
// openRTB 2.5
expect(data.at).to.equal(1);
expect(data.cur[0]).to.equal('USD'); // default currency
- expect(data.source.tid).to.equal(bidderRequest.auctionId);
+ expect(data.source.tid).to.equal(bidderRequest.ortb2.source.tid);
expect(data.imp.length).to.equal(1);
expect(data.imp[0].id).to.equal(bidRequests[0].bidId);
diff --git a/test/spec/modules/medianetBidAdapter_spec.js b/test/spec/modules/medianetBidAdapter_spec.js
index 9180bbad68c..bb90eded230 100644
--- a/test/spec/modules/medianetBidAdapter_spec.js
+++ b/test/spec/modules/medianetBidAdapter_spec.js
@@ -16,7 +16,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1'
+ }
+ },
'mediaTypes': {
'banner': {
'sizes': [[300, 250]],
@@ -38,7 +42,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'mediaTypes': {
'banner': {
'sizes': [[300, 251]],
@@ -64,6 +72,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ }
+ },
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'mediaTypes': {
'banner': {
@@ -87,7 +100,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'mediaTypes': {
'banner': {
'sizes': [[300, 251]],
@@ -112,7 +129,6 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'mediaTypes': {
'banner': {
'sizes': [[300, 250]],
@@ -121,7 +137,12 @@ let VALID_BID_REQUEST = [{
'bidId': '28f8f8130a583e',
'bidderRequestId': '1e9b1f07797c1c',
'auctionId': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
- 'ortb2Imp': { 'ext': { 'data': { 'pbadslot': '/12345/my-gpt-tag-0' } } },
+ 'ortb2Imp': {
+ 'ext': {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ 'data': {'pbadslot': '/12345/my-gpt-tag-0'}
+ }
+ },
'bidRequestsCount': 1
}, {
'bidder': 'medianet',
@@ -136,7 +157,6 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'mediaTypes': {
'banner': {
'sizes': [[300, 251]],
@@ -146,7 +166,12 @@ let VALID_BID_REQUEST = [{
'bidId': '3f97ca71b1e5c2',
'bidderRequestId': '1e9b1f07797c1c',
'auctionId': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
- 'ortb2Imp': { 'ext': { 'data': { 'pbadslot': '/12345/my-gpt-tag-0' } } },
+ 'ortb2Imp': {
+ 'ext': {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ 'data': {'pbadslot': '/12345/my-gpt-tag-0'}
+ }
+ },
'bidRequestsCount': 1
}],
VALID_BID_REQUEST_WITH_USERID = [{
@@ -165,7 +190,11 @@ let VALID_BID_REQUEST = [{
britepoolid: '82efd5e1-816b-4f87-97f8-044f407e2911'
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ }
+ },
'mediaTypes': {
'banner': {
'sizes': [[300, 250]],
@@ -188,7 +217,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'mediaTypes': {
'banner': {
'sizes': [[300, 251]],
@@ -214,7 +247,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ }
+ },
'sizes': [[300, 250]],
'mediaTypes': {
'banner': {
@@ -237,7 +274,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'sizes': [[300, 251]],
'mediaTypes': {
'banner': {
@@ -261,7 +302,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ }
+ },
'sizes': [[300, 250]],
'mediaTypes': {
'banner': {
@@ -314,7 +359,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'sizes': [[300, 251]],
'mediaTypes': {
'banner': {
@@ -389,6 +438,7 @@ let VALID_BID_REQUEST = [{
'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
'imp': [{
'id': '28f8f8130a583e',
+ ortb2Imp: VALID_BID_REQUEST_INVALID_BIDFLOOR[0].ortb2Imp,
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-0',
@@ -422,6 +472,7 @@ let VALID_BID_REQUEST = [{
}
}, {
'id': '3f97ca71b1e5c2',
+ ortb2Imp: VALID_BID_REQUEST_INVALID_BIDFLOOR[1].ortb2Imp,
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-123',
@@ -477,6 +528,7 @@ let VALID_BID_REQUEST = [{
'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
'imp': [{
'id': '28f8f8130a583e',
+ ortb2Imp: VALID_NATIVE_BID_REQUEST[0].ortb2Imp,
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-0',
@@ -510,6 +562,7 @@ let VALID_BID_REQUEST = [{
}
}, {
'id': '3f97ca71b1e5c2',
+ ortb2Imp: VALID_NATIVE_BID_REQUEST[1].ortb2Imp,
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-123',
@@ -567,6 +620,7 @@ let VALID_BID_REQUEST = [{
'imp': [{
'id': '28f8f8130a583e',
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: VALID_BID_REQUEST[0].ortb2Imp,
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-0',
'visibility': 1,
@@ -599,6 +653,7 @@ let VALID_BID_REQUEST = [{
}, {
'id': '3f97ca71b1e5c2',
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: VALID_BID_REQUEST[1].ortb2Imp,
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-123',
'visibility': 1,
@@ -656,6 +711,7 @@ let VALID_BID_REQUEST = [{
'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
'imp': [{
'id': '28f8f8130a583e',
+ ortb2Imp: VALID_BID_REQUEST_WITH_USERID[0].ortb2Imp,
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'tagid': 'crid',
'ext': {
@@ -690,6 +746,7 @@ let VALID_BID_REQUEST = [{
}
}, {
'id': '3f97ca71b1e5c2',
+ ortb2Imp: VALID_BID_REQUEST_WITH_USERID[1].ortb2Imp,
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'tagid': 'crid',
'ext': {
@@ -747,6 +804,7 @@ let VALID_BID_REQUEST = [{
'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
'imp': [{
'id': '28f8f8130a583e',
+ ortb2Imp: VALID_BID_REQUEST_WITH_CRID[0].ortb2Imp,
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'tagid': 'crid',
'ext': {
@@ -781,6 +839,7 @@ let VALID_BID_REQUEST = [{
}
}, {
'id': '3f97ca71b1e5c2',
+ ortb2Imp: VALID_BID_REQUEST_WITH_CRID[1].ortb2Imp,
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'tagid': 'crid',
'ext': {
@@ -1103,7 +1162,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ ortb2Imp: {
+ ext: {
+ tid: '277b631f-92f5-4844-8b19-ea13c095d3f1',
+ }
+ },
'sizes': [300, 250],
'mediaTypes': {
'banner': {
@@ -1126,7 +1189,11 @@ let VALID_BID_REQUEST = [{
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-123',
- 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ ortb2Imp: {
+ ext: {
+ tid: 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
+ }
+ },
'sizes': [300, 251],
'mediaTypes': {
'banner': {
@@ -1178,6 +1245,7 @@ let VALID_BID_REQUEST = [{
'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
'imp': [{
'id': '28f8f8130a583e',
+ ortb2Imp: VALID_BID_REQUEST[0].ortb2Imp,
'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-0',
@@ -1210,6 +1278,7 @@ let VALID_BID_REQUEST = [{
}
}, {
'id': '3f97ca71b1e5c2',
+ ortb2Imp: VALID_BID_REQUEST[1].ortb2Imp,
'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
'ext': {
'dfp_id': 'div-gpt-ad-1460505748561-123',
@@ -1306,7 +1375,7 @@ describe('Media.net bid adapter', function () {
it('should build valid payload on bid', function () {
let requestObj = spec.buildRequests(VALID_BID_REQUEST, VALID_AUCTIONDATA);
- expect(JSON.parse(requestObj.data)).to.deep.equal(VALID_PAYLOAD);
+ expect(JSON.parse(requestObj.data)).to.deep.include(VALID_PAYLOAD);
});
it('should accept size as a one dimensional array', function () {
@@ -1353,7 +1422,7 @@ describe('Media.net bid adapter', function () {
bidreq = spec.buildRequests(VALID_BID_REQUEST, VALID_AUCTIONDATA);
actual = JSON.parse(bidreq.data).imp[0].ortb2Imp;
- assert.equal(actual, undefined)
+ expect(actual).to.deep.equal(VALID_BID_REQUEST[0].ortb2Imp);
});
it('should have userid in bid request', function () {
diff --git a/test/spec/modules/mediasniperBidAdapter_spec.js b/test/spec/modules/mediasniperBidAdapter_spec.js
index 21ce5297c8f..30437205067 100644
--- a/test/spec/modules/mediasniperBidAdapter_spec.js
+++ b/test/spec/modules/mediasniperBidAdapter_spec.js
@@ -209,7 +209,7 @@ describe('mediasniperBidAdapter', function () {
// openRTB 2.5
expect(data.cur[0]).to.equal(DEFAULT_CURRENCY);
- expect(data.id).to.equal(bidderRequest.auctionId);
+ expect(data.id).to.exist;
expect(data.imp.length).to.equal(1);
expect(data.imp[0].id).to.equal(bidRequests[0].bidId);
diff --git a/test/spec/modules/mediasquareBidAdapter_spec.js b/test/spec/modules/mediasquareBidAdapter_spec.js
index 346d02d91d0..bcf3c6852e7 100644
--- a/test/spec/modules/mediasquareBidAdapter_spec.js
+++ b/test/spec/modules/mediasquareBidAdapter_spec.js
@@ -1,16 +1,16 @@
import {expect} from 'chai';
import {spec} from 'modules/mediasquareBidAdapter.js';
-import {newBidder} from 'src/adapters/bidderFactory.js';
-import {config} from 'src/config.js';
-import * as utils from 'src/utils.js';
-import { requestBidsHook } from 'modules/consentManagement.js';
describe('MediaSquare bid adapter tests', function () {
var DEFAULT_PARAMS = [{
adUnitCode: 'banner-div',
bidId: 'aaaa1234',
auctionId: 'bbbb1234',
- transactionId: 'cccc1234',
+ ortb2Imp: {
+ ext: {
+ tid: 'cccc1234',
+ }
+ },
mediaTypes: {
banner: {
sizes: [
diff --git a/test/spec/modules/microadBidAdapter_spec.js b/test/spec/modules/microadBidAdapter_spec.js
index 98edfce20bc..68dca0b0e25 100644
--- a/test/spec/modules/microadBidAdapter_spec.js
+++ b/test/spec/modules/microadBidAdapter_spec.js
@@ -12,7 +12,11 @@ describe('microadBidAdapter', () => {
spot: 'spot-code'
},
bidId: 'bid-id',
- transactionId: 'transaction-id'
+ ortb2Imp: {
+ ext: {
+ tid: 'transaction-id'
+ }
+ }
};
describe('isBidRequestValid', () => {
diff --git a/test/spec/modules/minutemediaplusBidAdapter_spec.js b/test/spec/modules/minutemediaplusBidAdapter_spec.js
index 359a97465e4..33ec194c61f 100644
--- a/test/spec/modules/minutemediaplusBidAdapter_spec.js
+++ b/test/spec/modules/minutemediaplusBidAdapter_spec.js
@@ -35,7 +35,6 @@ const BID = {
}
},
'placementCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
'sizes': [[300, 250], [300, 600]],
'bidderRequestId': '1fdb5ff1b6eaa7',
'auctionId': 'auction_id',
@@ -47,7 +46,8 @@ const BID = {
'mediaTypes': [BANNER],
'ortb2Imp': {
'ext': {
- 'gpid': '1234567890'
+ 'gpid': '1234567890',
+ tid: 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
}
}
};
@@ -60,7 +60,11 @@ const VIDEO_BID = {
'bidRequestsCount': 4,
'bidderRequestsCount': 3,
'bidderWinsCount': 1,
- 'transactionId': '56e184c6-bde9-497b-b9b9-cf47a61381ee',
+ ortb2Imp: {
+ ext: {
+ tid: '56e184c6-bde9-497b-b9b9-cf47a61381ee',
+ }
+ },
'schain': 'a0819c69-005b-41ed-af06-1be1e0aefefc',
'params': {
'subDomain': SUB_DOMAIN,
diff --git a/test/spec/modules/nextMillenniumBidAdapter_spec.js b/test/spec/modules/nextMillenniumBidAdapter_spec.js
index 7f40e7d89f8..564788c8b56 100644
--- a/test/spec/modules/nextMillenniumBidAdapter_spec.js
+++ b/test/spec/modules/nextMillenniumBidAdapter_spec.js
@@ -173,9 +173,9 @@ describe('nextMillenniumBidAdapterTests', function() {
});
it('validate_generated_params', function() {
- const request = spec.buildRequests(bidRequestData);
+ const request = spec.buildRequests(bidRequestData, {bidderRequestId: 'mock-uuid'});
expect(request[0].bidId).to.equal('bid1234');
- expect(JSON.parse(request[0].data).id).to.equal('b06c5141-fe8f-4cdf-9d7d-54415490a917');
+ expect(JSON.parse(request[0].data).id).to.exist;
});
it('use parameters group_id', function() {
diff --git a/test/spec/modules/oguryBidAdapter_spec.js b/test/spec/modules/oguryBidAdapter_spec.js
index 2d48dca5ebb..d25363de9c9 100644
--- a/test/spec/modules/oguryBidAdapter_spec.js
+++ b/test/spec/modules/oguryBidAdapter_spec.js
@@ -62,6 +62,7 @@ describe('OguryBidAdapter', function () {
];
bidderRequest = {
+ bidderRequestId: 'mock-uuid',
auctionId: bidRequests[0].auctionId,
gdprConsent: {consentString: 'myConsentString', vendorData: {}, gdprApplies: true},
};
@@ -262,7 +263,7 @@ describe('OguryBidAdapter', function () {
const defaultTimeout = 1000;
const expectedRequestObject = {
- id: bidRequests[0].auctionId,
+ id: 'mock-uuid',
at: 1,
tmax: defaultTimeout,
imp: [{
diff --git a/test/spec/modules/onetagBidAdapter_spec.js b/test/spec/modules/onetagBidAdapter_spec.js
index 5bd65cf0fd5..701fee5f6d9 100644
--- a/test/spec/modules/onetagBidAdapter_spec.js
+++ b/test/spec/modules/onetagBidAdapter_spec.js
@@ -15,7 +15,11 @@ describe('onetag', function () {
'bidId': '30b31c1838de1e',
'bidderRequestId': '22edbae2733bf6',
'auctionId': '1d1a030790a475',
- 'transactionId': 'qwerty123',
+ ortb2Imp: {
+ ext: {
+ tid: 'qwerty123'
+ }
+ },
'schain': {
'validation': 'off',
'config': {
diff --git a/test/spec/modules/operaadsBidAdapter_spec.js b/test/spec/modules/operaadsBidAdapter_spec.js
index 45bc8995a5c..37d4a2c7bc0 100644
--- a/test/spec/modules/operaadsBidAdapter_spec.js
+++ b/test/spec/modules/operaadsBidAdapter_spec.js
@@ -1,7 +1,7 @@
-import { expect } from 'chai';
-import { spec } from 'modules/operaadsBidAdapter.js';
-import { newBidder } from 'src/adapters/bidderFactory.js';
-import { BANNER, NATIVE, VIDEO } from 'src/mediaTypes.js';
+import {expect} from 'chai';
+import {spec} from 'modules/operaadsBidAdapter.js';
+import {newBidder} from 'src/adapters/bidderFactory.js';
+import {BANNER, NATIVE, VIDEO} from 'src/mediaTypes.js';
describe('Opera Ads Bid Adapter', function () {
describe('Test isBidRequestValid', function () {
@@ -234,7 +234,7 @@ describe('Opera Ads Bid Adapter', function () {
requestData = JSON.parse(req.data);
}).to.not.throw();
- expect(requestData.id).to.equal(bidderRequest.auctionId);
+ expect(requestData.id).to.exist;
expect(requestData.tmax).to.equal(bidderRequest.timeout);
expect(requestData.test).to.equal(0);
expect(requestData.imp).to.be.an('array').that.have.lengthOf(1);
diff --git a/test/spec/modules/optidigitalBidAdapter_spec.js b/test/spec/modules/optidigitalBidAdapter_spec.js
index 8c222650f7e..caa12483ea9 100755
--- a/test/spec/modules/optidigitalBidAdapter_spec.js
+++ b/test/spec/modules/optidigitalBidAdapter_spec.js
@@ -557,7 +557,6 @@ describe('optidigitalAdapterTests', function () {
let expectedResponse = [
{
'placementId': 'Billboard_Top',
- 'transactionId': 'cf5faec3-fcee-4f26-80ae-fc8b6cf23b7d',
'requestId': '83fb53a5e67f49',
'ttl': 150,
'creativeId': 'mobile_pos_2',
@@ -572,7 +571,6 @@ describe('optidigitalAdapterTests', function () {
}
}, {
'placementId': 'Billboard_Bottom',
- 'transactionId': 'df5faec3-fcee-4f26-80ae-fc8b6cf23b7d',
'requestId': '93fb53a5e67f49',
'ttl': 150,
'creativeId': 'mobile_pos_2',
diff --git a/test/spec/modules/orbidderBidAdapter_spec.js b/test/spec/modules/orbidderBidAdapter_spec.js
index 0d1396866e7..e7a0c8becfb 100644
--- a/test/spec/modules/orbidderBidAdapter_spec.js
+++ b/test/spec/modules/orbidderBidAdapter_spec.js
@@ -9,7 +9,11 @@ describe('orbidderBidAdapter', () => {
const defaultBidRequestBanner = {
bidId: 'd66fa86787e0b0ca900a96eacfd5f0bb',
auctionId: 'ccc4c7cdfe11cfbd74065e6dd28413d8',
- transactionId: 'd58851660c0c4461e4aa06344fc9c0c6',
+ ortb2Imp: {
+ ext: {
+ tid: 'd58851660c0c4461e4aa06344fc9c0c6',
+ }
+ },
bidRequestCount: 1,
adUnitCode: 'adunit-code',
sizes: [[300, 250], [300, 600]],
@@ -27,7 +31,11 @@ describe('orbidderBidAdapter', () => {
const defaultBidRequestNative = {
bidId: 'd66fa86787e0b0ca900a96eacfd5f0bc',
auctionId: 'ccc4c7cdfe11cfbd74065e6dd28413d9',
- transactionId: 'd58851660c0c4461e4aa06344fc9c0c7',
+ ortb2Imp: {
+ ext: {
+ tid: 'd58851660c0c4461e4aa06344fc9c0c7',
+ }
+ },
bidRequestCount: 1,
adUnitCode: 'adunit-code-native',
sizes: [],
@@ -170,7 +178,7 @@ describe('orbidderBidAdapter', () => {
expect(request.data.bidId).to.equal(defaultBidRequestBanner.bidId);
expect(request.data.auctionId).to.equal(defaultBidRequestBanner.auctionId);
- expect(request.data.transactionId).to.equal(defaultBidRequestBanner.transactionId);
+ expect(request.data.transactionId).to.equal(defaultBidRequestBanner.ortb2Imp.ext.tid);
expect(request.data.bidRequestCount).to.equal(defaultBidRequestBanner.bidRequestCount);
expect(request.data.adUnitCode).to.equal(defaultBidRequestBanner.adUnitCode);
expect(request.data.pageUrl).to.equal('https://localhost:9876/');
@@ -187,7 +195,7 @@ describe('orbidderBidAdapter', () => {
expect(nativeRequest.data.bidId).to.equal(defaultBidRequestNative.bidId);
expect(nativeRequest.data.auctionId).to.equal(defaultBidRequestNative.auctionId);
- expect(nativeRequest.data.transactionId).to.equal(defaultBidRequestNative.transactionId);
+ expect(nativeRequest.data.transactionId).to.equal(defaultBidRequestNative.ortb2Imp.ext.tid);
expect(nativeRequest.data.bidRequestCount).to.equal(defaultBidRequestNative.bidRequestCount);
expect(nativeRequest.data.adUnitCode).to.equal(defaultBidRequestNative.adUnitCode);
expect(nativeRequest.data.pageUrl).to.equal('https://localhost:9876/');
diff --git a/test/spec/modules/outbrainBidAdapter_spec.js b/test/spec/modules/outbrainBidAdapter_spec.js
index f5ce00ed8df..ab72ff85ab0 100644
--- a/test/spec/modules/outbrainBidAdapter_spec.js
+++ b/test/spec/modules/outbrainBidAdapter_spec.js
@@ -3,6 +3,7 @@ import { spec } from 'modules/outbrainBidAdapter.js';
import { config } from 'src/config.js';
import { server } from 'test/mocks/xhr';
import { createEidsArray } from 'modules/userId/eids.js';
+import * as utils from 'src/utils.js';
describe('Outbrain Adapter', function () {
describe('Bid request and response', function () {
@@ -227,6 +228,7 @@ describe('Outbrain Adapter', function () {
})
const commonBidderRequest = {
+ bidderRequestId: 'mock-uuid',
refererInfo: {
page: 'https://example.com/'
}
@@ -263,6 +265,7 @@ describe('Outbrain Adapter', function () {
]
}
const expectedData = {
+ id: 'mock-uuid',
site: {
page: 'https://example.com/',
publisher: {
@@ -305,6 +308,7 @@ describe('Outbrain Adapter', function () {
...displayBidRequestParams,
}
const expectedData = {
+ id: 'mock-uuid',
site: {
page: 'https://example.com/',
publisher: {
@@ -352,6 +356,7 @@ describe('Outbrain Adapter', function () {
...videoBidRequestParams,
}
const expectedData = {
+ id: 'mock-uuid',
site: {
page: 'https://example.com/',
publisher: {
diff --git a/test/spec/modules/pubgeniusBidAdapter_spec.js b/test/spec/modules/pubgeniusBidAdapter_spec.js
index 1d1b0e65ec8..86c8794dc4c 100644
--- a/test/spec/modules/pubgeniusBidAdapter_spec.js
+++ b/test/spec/modules/pubgeniusBidAdapter_spec.js
@@ -5,6 +5,7 @@ import { config } from 'src/config.js';
import { VIDEO } from 'src/mediaTypes.js';
import { deepClone, parseQueryStringParameters } from 'src/utils.js';
import { server } from 'test/mocks/xhr.js';
+import * as utils from 'src/utils.js';
const {
code,
@@ -175,7 +176,7 @@ describe('pubGENIUS adapter', () => {
method: 'POST',
url: 'https://auction.adpearl.io/prebid/auction',
data: {
- id: 'fake-auction-id',
+ id: 'fakebidderrequestid',
imp: [
{
id: 'fakebidid',
diff --git a/test/spec/modules/pubmaticBidAdapter_spec.js b/test/spec/modules/pubmaticBidAdapter_spec.js
index eb0c89bcc45..e1d3a94b940 100644
--- a/test/spec/modules/pubmaticBidAdapter_spec.js
+++ b/test/spec/modules/pubmaticBidAdapter_spec.js
@@ -79,7 +79,11 @@ describe('PubMatic adapter', function () {
bidId: '23acc48ad47af5',
requestId: '0fb4905b-9456-4152-86be-c6f6d259ba99',
bidderRequestId: '1c56ad30b9b8ca8',
- transactionId: '92489f71-1bf2-49a0-adf9-000cea934729',
+ ortb2Imp: {
+ ext: {
+ tid: '92489f71-1bf2-49a0-adf9-000cea934729',
+ }
+ },
schain: schainConfig
}
];
@@ -1120,7 +1124,12 @@ describe('PubMatic adapter', function () {
it('Request params check', function () {
let request = spec.buildRequests(bidRequests, {
- auctionId: 'new-auction-id'
+ auctionId: 'new-auction-id',
+ ortb2: {
+ source: {
+ tid: 'source-tid'
+ }
+ }
});
let data = JSON.parse(request.data);
expect(data.at).to.equal(1); // auction type
@@ -1135,8 +1144,8 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
- expect(data.source.tid).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
+ expect(data.source.tid).to.equal('source-tid'); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(bidRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(bidRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
@@ -1388,7 +1397,7 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(bidRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(bidRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
@@ -1599,7 +1608,7 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal('new-auction-id'); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(bidRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(bidRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
@@ -1617,8 +1626,7 @@ describe('PubMatic adapter', function () {
gdprConsent: {
consentString: 'kjfdniwjnifwenrif3',
gdprApplies: true
- },
- auctionId: 'new-auction-id'
+ }
};
let request = spec.buildRequests(bidRequests, bidRequest);
let data = JSON.parse(request.data);
@@ -1636,7 +1644,7 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(bidRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(bidRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
@@ -1651,8 +1659,7 @@ describe('PubMatic adapter', function () {
it('Request params check with USP/CCPA Consent', function () {
let bidRequest = {
- uspConsent: '1NYN',
- auctionId: 'new-auction-id'
+ uspConsent: '1NYN'
};
let request = spec.buildRequests(bidRequests, bidRequest);
let data = JSON.parse(request.data);
@@ -1669,7 +1676,7 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(bidRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(bidRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
@@ -2699,7 +2706,7 @@ describe('PubMatic adapter', function () {
expect(data.user.geo.lat).to.equal(parseFloat(multipleMediaRequests[0].params.lat)); // Latitude
expect(data.user.geo.lon).to.equal(parseFloat(multipleMediaRequests[0].params.lon)); // Lognitude
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
- expect(data.ext.wrapper.transactionId).to.equal('new-auction-id'); // Prebid TransactionId
+ expect(data.ext.wrapper.transactionId).to.equal(multipleMediaRequests[0].transactionId); // Prebid TransactionId
expect(data.ext.wrapper.wiid).to.equal(multipleMediaRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
expect(data.ext.wrapper.profile).to.equal(parseInt(multipleMediaRequests[0].params.profId)); // OpenWrap: Wrapper Profile ID
expect(data.ext.wrapper.version).to.equal(parseInt(multipleMediaRequests[0].params.verId)); // OpenWrap: Wrapper Profile Version ID
diff --git a/test/spec/modules/pubwiseBidAdapter_spec.js b/test/spec/modules/pubwiseBidAdapter_spec.js
index 780cc8b8fdb..49e36c05d1e 100644
--- a/test/spec/modules/pubwiseBidAdapter_spec.js
+++ b/test/spec/modules/pubwiseBidAdapter_spec.js
@@ -101,6 +101,7 @@ const sampleValidBannerBidRequest = {
},
ortb2Imp: {
ext: {
+ tid: '2001a8b2-3bcf-417d-b64f-92641dae21e0',
data: {
adserver: {
name: 'gam',
@@ -125,7 +126,6 @@ const sampleValidBannerBidRequest = {
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '2001a8b2-3bcf-417d-b64f-92641dae21e0',
'sizes': [
[
300,
@@ -179,6 +179,7 @@ const sampleValidBidRequests = [
},
ortb2Imp: {
ext: {
+ tid: '2c8cd034-f068-4419-8c30-f07292c0d17b',
data: {
adserver: {
name: 'gam',
@@ -213,7 +214,6 @@ const sampleValidBidRequests = [
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-1',
- 'transactionId': '2c8cd034-f068-4419-8c30-f07292c0d17b',
'sizes': [],
'bidId': '30ab7516a51a7c',
'bidderRequestId': '18a45bff5ff705',
@@ -252,6 +252,7 @@ const sampleBidderBannerRequest = {
},
ortb2Imp: {
ext: {
+ tid: '2001a8b2-3bcf-417d-b64f-92641dae21e0',
data: {
adserver: {
name: 'gam',
@@ -272,7 +273,6 @@ const sampleBidderBannerRequest = {
}
},
'adUnitCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': '2001a8b2-3bcf-417d-b64f-92641dae21e0',
'sizes': [
[
300,
@@ -299,7 +299,11 @@ const sampleBidderBannerRequest = {
const sampleBidderRequest = {
'bidderCode': 'pubwise',
- 'auctionId': '9f20663c-4629-4b5c-bff6-ff3aa8319358',
+ ortb2: {
+ source: {
+ tid: '9f20663c-4629-4b5c-bff6-ff3aa8319358',
+ }
+ },
'bidderRequestId': '18a45bff5ff705',
'bids': [
sampleBidderBannerRequest,
@@ -564,8 +568,8 @@ describe('PubWiseAdapter', function () {
it('should handle complex bidRequest', function() {
let request = spec.buildRequests(sampleValidBidRequests, sampleBidderRequest);
expect(request.bidderRequest).to.equal(sampleBidderRequest, "Bid Request Doesn't Match Sample");
- expect(request.data.source.tid).to.equal(sampleBidderRequest.auctionId, 'AuctionId -> source.tid Mismatch');
- expect(request.data.imp[0].ext.tid).to.equal(sampleBidderRequest.bids[0].transactionId, 'TransactionId -> ext.tid Mismatch');
+ expect(request.data.source.tid).to.equal(sampleBidderRequest.ortb2.source.tid, 'source.tid -> source.tid Mismatch');
+ expect(request.data.imp[0].ext.tid).to.equal(sampleBidderRequest.bids[0].ortb2Imp.ext.tid, 'ext.tid -> ext.tid Mismatch');
});
it('must conform to API for buildRequests', function() {
let request = spec.buildRequests(sampleValidBidRequests);
diff --git a/test/spec/modules/relaidoBidAdapter_spec.js b/test/spec/modules/relaidoBidAdapter_spec.js
index 0f2f9abd583..36d03c01138 100644
--- a/test/spec/modules/relaidoBidAdapter_spec.js
+++ b/test/spec/modules/relaidoBidAdapter_spec.js
@@ -39,7 +39,11 @@ describe('RelaidoAdapter', function () {
bidId: '2ed93003f7bb99',
bidderRequestId: '1c50443387a1f2',
auctionId: '413ed000-8c7a-4ba1-a1fa-9732e006f8c3',
- transactionId: '5c2d064c-7b76-42e8-a383-983603afdc45',
+ ortb2Imp: {
+ ext: {
+ tid: '5c2d064c-7b76-42e8-a383-983603afdc45',
+ }
+ },
bidRequestsCount: 1,
bidderRequestsCount: 1,
bidderWinsCount: 0
@@ -243,7 +247,7 @@ describe('RelaidoAdapter', function () {
expect(request.bidder_request_id).to.equal(bidRequest.bidderRequestId);
expect(data.bid_requests_count).to.equal(bidRequest.bidRequestsCount);
expect(request.bid_id).to.equal(bidRequest.bidId);
- expect(request.transaction_id).to.equal(bidRequest.transactionId);
+ expect(request.transaction_id).to.equal(bidRequest.ortb2Imp.ext.tid);
expect(request.media_type).to.equal('video');
expect(data.uuid).to.equal(relaido_uuid);
expect(data.pv).to.equal('$prebid.version$');
diff --git a/test/spec/modules/richaudienceBidAdapter_spec.js b/test/spec/modules/richaudienceBidAdapter_spec.js
index 86d3df8be59..ad91b936e27 100644
--- a/test/spec/modules/richaudienceBidAdapter_spec.js
+++ b/test/spec/modules/richaudienceBidAdapter_spec.js
@@ -25,7 +25,11 @@ describe('Richaudience adapter tests', function () {
auctionId: '0cb3144c-d084-4686-b0d6-f5dbe917c563',
bidRequestsCount: 1,
bidderRequestId: '1858b7382993ca',
- transactionId: '29df2112-348b-4961-8863-1b33684d95e6',
+ ortb2Imp: {
+ ext: {
+ tid: '29df2112-348b-4961-8863-1b33684d95e6',
+ }
+ },
user: {}
}];
diff --git a/test/spec/modules/rubiconBidAdapter_spec.js b/test/spec/modules/rubiconBidAdapter_spec.js
index a0600879a31..d9c3555bf03 100644
--- a/test/spec/modules/rubiconBidAdapter_spec.js
+++ b/test/spec/modules/rubiconBidAdapter_spec.js
@@ -87,13 +87,13 @@ describe('the rubicon adapter', function () {
function getBidderRequest() {
return {
bidderCode: 'rubicon',
- auctionId: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
- bidderRequestId: '178e34bad3658f',
ortb2: {
source: {
- tid: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
+ tid: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
}
},
+ auctionId: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
+ bidderRequestId: '178e34bad3658f',
bids: [
{
bidder: 'rubicon',
@@ -125,7 +125,11 @@ describe('the rubicon adapter', function () {
bidId: '2ffb201a808da7',
bidderRequestId: '178e34bad3658f',
auctionId: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
- transactionId: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
+ ortb2Imp: {
+ ext: {
+ tid: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ }
+ },
}
],
start: 1472239426002,
@@ -324,6 +328,11 @@ describe('the rubicon adapter', function () {
bidderRequest = {
bidderCode: 'rubicon',
auctionId: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
+ ortb2: {
+ source: {
+ tid: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
+ }
+ },
bidderRequestId: '178e34bad3658f',
bids: [
{
@@ -356,14 +365,13 @@ describe('the rubicon adapter', function () {
bidId: '2ffb201a808da7',
bidderRequestId: '178e34bad3658f',
auctionId: 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
- transactionId: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
+ ortb2Imp: {
+ ext: {
+ tid: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ }
+ },
}
],
- ortb2: {
- source: {
- tid: 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b'
- }
- },
start: 1472239426002,
auctionStart: 1472239426000,
timeout: 5000
@@ -446,7 +454,7 @@ describe('the rubicon adapter', function () {
'rp_secure': /[01]/,
'rand': '0.1',
'tk_flint': INTEGRATION,
- 'x_source.tid': 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ 'x_source.tid': 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
'p_screen_res': /\d+x\d+/,
'tk_user_key': '12346',
'kw': 'a,b,c',
@@ -636,7 +644,8 @@ describe('the rubicon adapter', function () {
'rp_secure': /[01]/,
'rand': '0.1',
'tk_flint': INTEGRATION,
- 'x_source.tid': 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ 'x_source.tid': 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
+ 'x_imp.ext.tid': 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
'p_screen_res': /\d+x\d+/,
'tk_user_key': '12346',
'kw': 'a,b,c',
@@ -987,7 +996,7 @@ describe('the rubicon adapter', function () {
'rp_secure': /[01]/,
'rand': '0.1',
'tk_flint': INTEGRATION,
- 'x_source.tid': 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ 'x_source.tid': 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
'p_screen_res': /\d+x\d+/,
'tk_user_key': '12346',
'kw': 'a,b,c',
@@ -2293,9 +2302,8 @@ describe('the rubicon adapter', function () {
});
describe('createSlotParams', function () {
- const localBidderRequest = Object.assign({}, bidderRequest);
- localBidderRequest.ortb2 = {source: {tid: 'faked707-a418-42ec-b8a7-b70a6c6fab0b'}};
it('should return a valid slot params object', function () {
+ const localBidderRequest = Object.assign({}, bidderRequest);
let expectedQuery = {
'account_id': '14062',
'site_id': '70608',
@@ -2305,8 +2313,7 @@ describe('the rubicon adapter', function () {
'p_pos': 'atf',
'rp_secure': /[01]/,
'tk_flint': INTEGRATION,
- 'x_source.tid': 'faked707-a418-42ec-b8a7-b70a6c6fab0b',
- 'x_imp.ext.tid': 'd45dd707-a418-42ec-b8a7-b70a6c6fab0b',
+ 'x_source.tid': 'c45dd708-a418-42ec-b8a7-b70a6c6fab0a',
'p_screen_res': /\d+x\d+/,
'tk_user_key': '12346',
'kw': 'a,b,c',
diff --git a/test/spec/modules/seedingAllianceAdapter_spec.js b/test/spec/modules/seedingAllianceAdapter_spec.js
index 6ee86ad3a9d..03548cf923a 100755
--- a/test/spec/modules/seedingAllianceAdapter_spec.js
+++ b/test/spec/modules/seedingAllianceAdapter_spec.js
@@ -49,17 +49,6 @@ describe('SeedingAlliance adapter', function () {
assert.deepEqual(keys, data);
});
- it('Verify the auction ID', function () {
- let validBidRequests = [{
- bidId: 'bidId',
- params: {},
- auctionId: 'auctionId'
- }];
- let request = JSON.parse(spec.buildRequests(validBidRequests, { refererInfo: { referer: 'page' }, auctionId: validBidRequests[0].auctionId }).data);
-
- assert.equal(request.id, validBidRequests[0].auctionId);
- });
-
it('Verify the site url', function () {
let siteUrl = 'https://www.yourdomain.tld/your-directory/';
let validBidRequests = [{
diff --git a/test/spec/modules/seedtagBidAdapter_spec.js b/test/spec/modules/seedtagBidAdapter_spec.js
index 3627296975b..fb666e89f73 100644
--- a/test/spec/modules/seedtagBidAdapter_spec.js
+++ b/test/spec/modules/seedtagBidAdapter_spec.js
@@ -20,7 +20,11 @@ function getSlotConfigs(mediaTypes, params) {
bidder: 'seedtag',
mediaTypes: mediaTypes,
src: 'client',
- transactionId: 'd704d006-0d6e-4a09-ad6c-179e7e758096',
+ ortb2Imp: {
+ ext: {
+ tid: 'd704d006-0d6e-4a09-ad6c-179e7e758096',
+ }
+ },
adUnitCode: 'adunit-code',
};
}
diff --git a/test/spec/modules/sharethroughBidAdapter_spec.js b/test/spec/modules/sharethroughBidAdapter_spec.js
index fc4fbc86018..7759a0e418f 100644
--- a/test/spec/modules/sharethroughBidAdapter_spec.js
+++ b/test/spec/modules/sharethroughBidAdapter_spec.js
@@ -248,7 +248,11 @@ describe('sharethrough adapter spec', function () {
refererInfo: {
ref: 'https://referer.com',
},
- auctionId: 'auction-id',
+ ortb2: {
+ source: {
+ tid: 'auction-id'
+ }
+ },
timeout: 242
};
});
@@ -311,7 +315,7 @@ describe('sharethrough adapter spec', function () {
expect(openRtbReq.device.ua).to.equal(navigator.userAgent);
expect(openRtbReq.regs.coppa).to.equal(1);
- expect(openRtbReq.source.tid).to.equal(bidderRequest.auctionId);
+ expect(openRtbReq.source.tid).to.equal(bidderRequest.ortb2.source.tid);
expect(openRtbReq.source.ext.version).not.to.be.undefined;
expect(openRtbReq.source.ext.str).not.to.be.undefined;
expect(openRtbReq.source.ext.schain).to.deep.equal(bidRequests[0].schain);
diff --git a/test/spec/modules/slimcutBidAdapter_spec.js b/test/spec/modules/slimcutBidAdapter_spec.js
index d821627c24b..da0fee48936 100644
--- a/test/spec/modules/slimcutBidAdapter_spec.js
+++ b/test/spec/modules/slimcutBidAdapter_spec.js
@@ -178,7 +178,6 @@ describe('slimcutBidAdapter', function() {
'ad': AD_SCRIPT,
'requestId': '3ede2a3fa0db94',
'creativeId': 'er2ee',
- 'transactionId': 'deadb33f',
'winUrl': 'https://sb.freeskreen.com/win',
'meta': {
'advertiserDomains': []
diff --git a/test/spec/modules/smaatoBidAdapter_spec.js b/test/spec/modules/smaatoBidAdapter_spec.js
index 7f727d5d9e3..61a877f329d 100644
--- a/test/spec/modules/smaatoBidAdapter_spec.js
+++ b/test/spec/modules/smaatoBidAdapter_spec.js
@@ -13,6 +13,7 @@ const CONSENT_STRING = 'HFIDUYFIUYIUYWIPOI87392DSU'
const AUCTION_ID = '6653';
const defaultBidderRequest = {
+ bidderRequestId: 'mock-uuid',
gdprConsent: {
consentString: CONSENT_STRING,
gdprApplies: true
@@ -554,7 +555,7 @@ describe('smaatoBidAdapterTest', () => {
const reqs = spec.buildRequests([longFormVideoBidRequest], defaultBidderRequest);
const req = extractPayloadOfFirstAndOnlyRequest(reqs);
- expect(req.id).to.be.equal(AUCTION_ID);
+ expect(req.id).to.exist;
expect(req.imp.length).to.be.equal(ADPOD_DURATION / DURATION_RANGE[0]);
expect(req.imp[0].id).to.be.equal(BID_ID);
expect(req.imp[0].tagid).to.be.equal(ADBREAK_ID);
@@ -658,7 +659,7 @@ describe('smaatoBidAdapterTest', () => {
const reqs = spec.buildRequests([longFormVideoBidRequest], defaultBidderRequest);
const req = extractPayloadOfFirstAndOnlyRequest(reqs);
- expect(req.id).to.be.equal(AUCTION_ID);
+ expect(req.id).to.exist;
expect(req.imp.length).to.be.equal(DURATION_RANGE.length);
expect(req.imp[0].id).to.be.equal(BID_ID);
expect(req.imp[0].tagid).to.be.equal(ADBREAK_ID);
diff --git a/test/spec/modules/smartadserverBidAdapter_spec.js b/test/spec/modules/smartadserverBidAdapter_spec.js
index 504ff978e9e..6a912565ed7 100644
--- a/test/spec/modules/smartadserverBidAdapter_spec.js
+++ b/test/spec/modules/smartadserverBidAdapter_spec.js
@@ -29,7 +29,11 @@ describe('Smart bid adapter tests', function () {
ckId: 42
},
requestId: 'efgh5678',
- transactionId: 'zsfgzzg'
+ ortb2Imp: {
+ ext: {
+ tid: 'zsfgzzg'
+ }
+ },
}];
var DEFAULT_PARAMS_WITH_EIDS = [{
@@ -586,7 +590,11 @@ describe('Smart bid adapter tests', function () {
}
},
requestId: 'efgh5678',
- transactionId: 'zsfgzzg'
+ ortb2Imp: {
+ ext: {
+ tid: 'zsfgzzg',
+ }
+ },
}];
var INSTREAM_BID_RESPONSE = {
@@ -855,7 +863,11 @@ describe('Smart bid adapter tests', function () {
protocol: 7
}
},
- requestId: 'efgh5679',
+ ortb2Imp: {
+ ext: {
+ tid: 'efgh5679',
+ }
+ },
transactionId: 'zsfgzzga'
}];
diff --git a/test/spec/modules/smilewantedBidAdapter_spec.js b/test/spec/modules/smilewantedBidAdapter_spec.js
index 44d2c7c6507..22221dbe1ef 100644
--- a/test/spec/modules/smilewantedBidAdapter_spec.js
+++ b/test/spec/modules/smilewantedBidAdapter_spec.js
@@ -14,7 +14,11 @@ const DISPLAY_REQUEST = [{
zoneId: 1
},
requestId: 'request_abcd1234',
- transactionId: 'trans_abcd1234'
+ ortb2Imp: {
+ ext: {
+ tid: 'trans_abcd1234',
+ }
+ },
}];
const DISPLAY_REQUEST_WITH_EIDS = [{
@@ -29,7 +33,11 @@ const DISPLAY_REQUEST_WITH_EIDS = [{
zoneId: 1
},
requestId: 'request_abcd1234',
- transactionId: 'trans_abcd1234',
+ ortb2Imp: {
+ ext: {
+ tid: 'trans_abcd1234',
+ }
+ },
userIdAsEids: [{
source: 'pubcid.org',
uids: [{
@@ -61,7 +69,11 @@ const DISPLAY_REQUEST_WITH_POSITION_TYPE = [{
positionType: 'infeed'
},
requestId: 'request_abcd1234',
- transactionId: 'trans_abcd1234'
+ ortb2Imp: {
+ ext: {
+ tid: 'trans_abcd1234',
+ }
+ },
}];
const BID_RESPONSE_DISPLAY = {
@@ -92,7 +104,11 @@ const VIDEO_INSTREAM_REQUEST = [{
bidfloor: 2.50
},
requestId: 'request_abcd1234',
- transactionId: 'trans_abcd1234'
+ ortb2Imp: {
+ ext: {
+ tid: 'trans_abcd1234',
+ }
+ }
}];
const BID_RESPONSE_VIDEO_INSTREAM = {
@@ -124,7 +140,11 @@ const VIDEO_OUTSTREAM_REQUEST = [{
bidfloor: 2.50
},
requestId: 'request_abcd1234',
- transactionId: 'trans_abcd1234'
+ ortb2Imp: {
+ ext: {
+ tid: 'trans_abcd1234',
+ }
+ }
}];
const BID_RESPONSE_VIDEO_OUTSTREAM = {
@@ -224,7 +244,6 @@ describe('smilewantedBidAdapterTests', function () {
describe('gdpr tests', function () {
afterEach(function () {
config.resetConfig();
- $$PREBID_GLOBAL$$.requestBids.removeAll();
});
it('SmileWanted - Verify build request with GDPR', function () {
diff --git a/test/spec/modules/taboolaBidAdapter_spec.js b/test/spec/modules/taboolaBidAdapter_spec.js
index 206a0142043..7d31e291667 100644
--- a/test/spec/modules/taboolaBidAdapter_spec.js
+++ b/test/spec/modules/taboolaBidAdapter_spec.js
@@ -5,14 +5,15 @@ import * as utils from '../../../src/utils'
import {server} from '../../mocks/xhr'
describe('Taboola Adapter', function () {
- let hasLocalStorage, cookiesAreEnabled, getDataFromLocalStorage, localStorageIsEnabled, getCookie, commonBidRequest;
+ let sandbox, hasLocalStorage, cookiesAreEnabled, getDataFromLocalStorage, localStorageIsEnabled, getCookie, commonBidRequest;
beforeEach(() => {
- hasLocalStorage = sinon.stub(userData.storageManager, 'hasLocalStorage');
- cookiesAreEnabled = sinon.stub(userData.storageManager, 'cookiesAreEnabled');
- getCookie = sinon.stub(userData.storageManager, 'getCookie');
- getDataFromLocalStorage = sinon.stub(userData.storageManager, 'getDataFromLocalStorage');
- localStorageIsEnabled = sinon.stub(userData.storageManager, 'localStorageIsEnabled');
+ sandbox = sinon.sandbox.create();
+ hasLocalStorage = sandbox.stub(userData.storageManager, 'hasLocalStorage');
+ cookiesAreEnabled = sandbox.stub(userData.storageManager, 'cookiesAreEnabled');
+ getCookie = sandbox.stub(userData.storageManager, 'getCookie');
+ getDataFromLocalStorage = sandbox.stub(userData.storageManager, 'getDataFromLocalStorage');
+ localStorageIsEnabled = sandbox.stub(userData.storageManager, 'localStorageIsEnabled');
commonBidRequest = createBidRequest();
$$PREBID_GLOBAL$$.bidderSettings = {
taboola: {
@@ -22,12 +23,7 @@ describe('Taboola Adapter', function () {
});
afterEach(() => {
- hasLocalStorage.restore();
- cookiesAreEnabled.restore();
- getCookie.restore();
- getDataFromLocalStorage.restore();
- localStorageIsEnabled.restore();
-
+ sandbox.restore();
$$PREBID_GLOBAL$$.bidderSettings = {};
})
@@ -124,6 +120,7 @@ describe('Taboola Adapter', function () {
}
const commonBidderRequest = {
+ bidderRequestId: 'mock-uuid',
refererInfo: {
page: 'https://example.com/ref',
ref: 'https://ref',
@@ -133,6 +130,7 @@ describe('Taboola Adapter', function () {
it('should build display request', function () {
const expectedData = {
+ id: 'mock-uuid',
'imp': [{
'id': 1,
'banner': {
diff --git a/test/spec/modules/ttdBidAdapter_spec.js b/test/spec/modules/ttdBidAdapter_spec.js
index 5e472543a01..56c506dea6b 100644
--- a/test/spec/modules/ttdBidAdapter_spec.js
+++ b/test/spec/modules/ttdBidAdapter_spec.js
@@ -223,7 +223,11 @@ describe('ttdBidAdapter', function () {
const baseBidderRequestReferer = detectReferer(testWindow)();
const baseBidderRequest = {
'bidderCode': 'ttd',
- 'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
+ ortb2: {
+ source: {
+ tid: 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
+ }
+ },
'bidderRequestId': '18084284054531',
'auctionStart': 1540945362095,
'timeout': 3000,
@@ -320,10 +324,10 @@ describe('ttdBidAdapter', function () {
expect(requestBody.imp[0].rwdd).to.equal(1);
});
- it('sends auction id in source.tid', function () {
+ it('sends source.tid', function () {
const requestBody = testBuildRequests(baseBannerBidRequests, baseBidderRequest).data;
expect(requestBody.source).to.be.not.null;
- expect(requestBody.source.tid).to.equal(baseBidderRequest.auctionId);
+ expect(requestBody.source.tid).to.equal(baseBidderRequest.ortb2.source.tid);
});
it('includes the ad size in the bid request', function () {
@@ -756,7 +760,11 @@ describe('ttdBidAdapter', function () {
const baseBidderRequest = {
'bidderCode': 'ttd',
- 'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
+ ortb2: {
+ source: {
+ tid: 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
+ }
+ },
'bidderRequestId': '18084284054531',
'auctionStart': 1540945362095,
'timeout': 3000,
@@ -776,7 +784,7 @@ describe('ttdBidAdapter', function () {
const requestBody = testBuildRequests(baseBannerMultipleBidRequests, baseBidderRequest).data;
expect(requestBody.imp.length).to.equal(2);
expect(requestBody.source).to.be.not.null;
- expect(requestBody.source.tid).to.equal(baseBidderRequest.auctionId);
+ expect(requestBody.source.tid).to.equal(baseBidderRequest.ortb2.source.tid);
expect(requestBody.imp[0].ext).to.be.not.null;
expect(requestBody.imp[0].ext.tid).to.equal('8651474f-58b1-4368-b812-84f8c937a099');
expect(requestBody.imp[1].ext).to.be.not.null;
diff --git a/test/spec/modules/vidazooBidAdapter_spec.js b/test/spec/modules/vidazooBidAdapter_spec.js
index 1ddc3058a03..6e92bae8d59 100644
--- a/test/spec/modules/vidazooBidAdapter_spec.js
+++ b/test/spec/modules/vidazooBidAdapter_spec.js
@@ -38,7 +38,6 @@ const BID = {
}
},
'placementCode': 'div-gpt-ad-1460505748561-0',
- 'transactionId': 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
'sizes': [[300, 250], [300, 600]],
'bidderRequestId': '1fdb5ff1b6eaa7',
'auctionId': 'auction_id',
@@ -50,6 +49,7 @@ const BID = {
'mediaTypes': [BANNER],
'ortb2Imp': {
'ext': {
+ tid: 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
'gpid': '1234567890'
}
}
@@ -59,7 +59,11 @@ const VIDEO_BID = {
'bidId': '2d52001cabd527',
'adUnitCode': '63550ad1ff6642d368cba59dh5884270560',
'bidderRequestId': '12a8ae9ada9c13',
- 'transactionId': '56e184c6-bde9-497b-b9b9-cf47a61381ee',
+ ortb2Imp: {
+ ext: {
+ tid: '56e184c6-bde9-497b-b9b9-cf47a61381ee',
+ }
+ },
'auctionId': 'auction_id',
'bidRequestsCount': 4,
'bidderRequestsCount': 3,
diff --git a/test/spec/modules/xeBidAdapter_spec.js b/test/spec/modules/xeBidAdapter_spec.js
index dcd82683221..38b334c32c5 100644
--- a/test/spec/modules/xeBidAdapter_spec.js
+++ b/test/spec/modules/xeBidAdapter_spec.js
@@ -11,7 +11,11 @@ const defaultRequest = {
bidId: '1',
requestId: 'qwerty',
auctionId: 'auctionId',
- transactionId: 'tr1',
+ ortb2Imp: {
+ ext: {
+ tid: 'tr1',
+ }
+ },
mediaTypes: {
banner: {
sizes: [
@@ -85,7 +89,7 @@ describe('buildRequests', function () {
const request = JSON.parse(spec.buildRequests([defaultRequest], {}).data)[0];
expect(request).to.have.property('bidId').and.to.equal(defaultRequest.bidId);
expect(request).to.have.property('auctionId').and.to.equal(defaultRequest.auctionId);
- expect(request).to.have.property('transactionId').and.to.equal(defaultRequest.transactionId);
+ expect(request).to.have.property('transactionId').and.to.equal(defaultRequest.ortb2Imp.ext.tid);
expect(request).to.have.property('tz').and.to.equal(new Date().getTimezoneOffset());
expect(request).to.have.property('bc').and.to.equal(1);
expect(request).to.have.property('floor').and.to.equal(null);