Skip to content

Commit a07ab71

Browse files
piotrj-rtbhrtbh-lotaniTomasz Swirski
authored
RTBHouse Bid Adapter: change source.tid to contain auctionId and populate imp-level ext.tid (#9726)
* RTBHouse Bid Adapter: add global vendor list id * structured user agent - browsers.brands * fix lint errors * Added sda into rtbhouse adapter * spreading ortb2: user & site props * examples reverted * init version * using mergedeep * removed wrong imp array augm.; slot imp augm. with addtl check * [SUA] merging ortb2.device into request * fledge auctionConfig adapted to our bid response structure * new bidder response structure for fledge * make sure bidderRequest has proper flag turned on * fledge endpoint hardcoded; code cleanups * remove obsolete function * obsolete function removed * [RTB House] Process FLEDGE request/response (#4) * [SDA & SUA] refactor using mergedeep * [FLEDGE] fledge auctionConfig adapted to our bid response structure * [FLEDGE] new bidder response structure for fledge * [FLEDGE] make sure bidderRequest has proper flag turned on * [FLEDGE] fledge endpoint hardcoded; code cleanups * [FLEDGE] remove obsolete functions * fixed lint errors * fledge test suites; adapter: delete imp.ext.ae when no fledge (#5) * RTBHouse Bid Adapter: use auctionId for source.tid * RTBHouse bid adapter: fixed source.tid tests * Imp level transaction id + mapSource fix * lint: removed obsolete whitespaces * RTBHouse Bid Adapter: change `source.tid` to contain `auctionId` and populate imp-level `ext.tid` (#8) * RTBHouse Bid Adapter: use auctionId for source.tid * Imp level transaction id + mapSource fix * lint: removed obsolete whitespaces --------- Co-authored-by: Leandro Otani <[email protected]> Co-authored-by: rtbh-lotani <[email protected]> Co-authored-by: Tomasz Swirski <[email protected]>
1 parent dd4bd96 commit a07ab71

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

modules/rtbhouseBidAdapter.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const spec = {
5656
site: mapSite(validBidRequests, bidderRequest),
5757
cur: DEFAULT_CURRENCY_ARR,
5858
test: validBidRequests[0].params.test || 0,
59-
source: mapSource(validBidRequests[0]),
59+
source: mapSource(validBidRequests[0], bidderRequest),
6060
};
6161

6262
if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies) {
@@ -228,6 +228,13 @@ function mapImpression(slot, bidderRequest) {
228228
delete imp.ext.ae;
229229
}
230230
}
231+
232+
const tid = deepAccess(slot, 'ortb2Imp.ext.tid');
233+
if (tid) {
234+
imp.ext = imp.ext || {};
235+
imp.ext.tid = tid;
236+
}
237+
231238
return imp;
232239
}
233240

@@ -283,9 +290,9 @@ function mapSite(slot, bidderRequest) {
283290
* @param {object} slot Ad Unit Params by Prebid
284291
* @returns {object} Source by OpenRTB 2.5 §3.2.2
285292
*/
286-
function mapSource(slot) {
293+
function mapSource(slot, bidderRequest) {
287294
const source = {
288-
tid: slot.transactionId,
295+
tid: bidderRequest?.auctionId || '',
289296
};
290297

291298
return source;

test/spec/modules/rtbhouseBidAdapter_spec.js

+23-9
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,18 @@ describe('RTBHouseAdapter', () => {
5353

5454
describe('buildRequests', function () {
5555
let bidRequests;
56-
const bidderRequest = {
57-
'refererInfo': {
58-
'numIframes': 0,
59-
'reachedTop': true,
60-
'referer': 'https://example.com',
61-
'stack': ['https://example.com']
62-
}
63-
};
56+
let bidderRequest;
6457

6558
beforeEach(() => {
59+
bidderRequest = {
60+
'auctionId': 'bidderrequest-auction-id',
61+
'refererInfo': {
62+
'numIframes': 0,
63+
'reachedTop': true,
64+
'referer': 'https://example.com',
65+
'stack': ['https://example.com']
66+
}
67+
};
6668
bidRequests = [
6769
{
6870
'bidder': 'rtbhouse',
@@ -82,6 +84,11 @@ describe('RTBHouseAdapter', () => {
8284
'bidderRequestId': '22edbae2733bf6',
8385
'auctionId': '1d1a030790a475',
8486
'transactionId': 'example-transaction-id',
87+
'ortb2Imp': {
88+
'ext': {
89+
'tid': 'ortb2Imp-transaction-id-1'
90+
}
91+
},
8592
'schain': {
8693
'ver': '1.0',
8794
'complete': 1,
@@ -203,7 +210,7 @@ describe('RTBHouseAdapter', () => {
203210
const bidRequest = Object.assign([], bidRequests);
204211
const request = spec.buildRequests(bidRequest, bidderRequest);
205212
const data = JSON.parse(request.data);
206-
expect(data.source.tid).to.equal('example-transaction-id');
213+
expect(data.source.tid).to.equal('bidderrequest-auction-id');
207214
});
208215

209216
it('should include bidfloor from floor module if avaiable', () => {
@@ -256,6 +263,13 @@ describe('RTBHouseAdapter', () => {
256263
expect(data.source).to.have.deep.property('tid');
257264
});
258265

266+
it('should include impression level transaction id when provided', () => {
267+
const bidRequest = Object.assign([], bidRequests);
268+
const request = spec.buildRequests(bidRequest, bidderRequest);
269+
const data = JSON.parse(request.data);
270+
expect(data.imp[0].ext.tid).to.equal('ortb2Imp-transaction-id-1');
271+
});
272+
259273
it('should not include invalid schain', () => {
260274
const bidRequest = Object.assign([], bidRequests);
261275
bidRequest[0].schain = {

0 commit comments

Comments
 (0)