Skip to content

Commit 7d5d230

Browse files
Teads adapter: add dsa info support in bid request & response
1 parent cd4717c commit 7d5d230

File tree

2 files changed

+51
-2
lines changed

2 files changed

+51
-2
lines changed

modules/teadsBidAdapter.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ export const spec = {
101101
payload.userAgentClientHints = userAgentClientHints;
102102
}
103103

104+
const dsa = deepAccess(bidderRequest, 'ortb2.regs.ext.dsa');
105+
if (dsa) {
106+
payload.dsa = dsa;
107+
}
108+
104109
const payloadString = JSON.stringify(payload);
105110
return {
106111
method: 'POST',
@@ -138,6 +143,9 @@ export const spec = {
138143
if (bid.dealId) {
139144
bidResponse.dealId = bid.dealId
140145
}
146+
if (bid.dsaAdRender) {
147+
bidResponse.meta.adrender = bid.dsaAdRender;
148+
}
141149
bidResponses.push(bidResponse);
142150
});
143151
}

test/spec/modules/teadsBidAdapter_spec.js

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,45 @@ describe('teadsBidAdapter', () => {
10051005
}
10061006
});
10071007
}
1008+
1009+
it('should add dsa info to payload if available', function () {
1010+
const bidRequestWithDsa = Object.assign({}, bidderRequestDefault, {
1011+
ortb2: {
1012+
regs: {
1013+
ext: {
1014+
dsa: {
1015+
dsarequired: '1',
1016+
pubrender: '2',
1017+
datatopub: '3',
1018+
transparency: [{
1019+
domain: 'test.com',
1020+
dsaparams: [1, 2, 3]
1021+
}]
1022+
}
1023+
}
1024+
}
1025+
}
1026+
});
1027+
1028+
const requestWithDsa = spec.buildRequests(bidRequests, bidRequestWithDsa);
1029+
const payload = JSON.parse(requestWithDsa.data);
1030+
1031+
expect(payload.dsa).to.exist;
1032+
expect(payload.dsa).to.deep.equal(
1033+
{
1034+
dsarequired: '1',
1035+
pubrender: '2',
1036+
datatopub: '3',
1037+
transparency: [{
1038+
domain: 'test.com',
1039+
dsaparams: [1, 2, 3]
1040+
}]
1041+
}
1042+
);
1043+
1044+
const defaultRequest = spec.buildRequests(bidRequests, bidderRequestDefault);
1045+
expect(JSON.parse(defaultRequest.data).dsa).to.not.exist;
1046+
});
10081047
});
10091048

10101049
describe('interpretResponse', function() {
@@ -1031,7 +1070,8 @@ describe('teadsBidAdapter', () => {
10311070
'width': 350,
10321071
'creativeId': 'fs3ff',
10331072
'placementId': 34,
1034-
'dealId': 'ABC_123'
1073+
'dealId': 'ABC_123',
1074+
'dsaAdRender': 1
10351075
}]
10361076
}
10371077
};
@@ -1057,7 +1097,8 @@ describe('teadsBidAdapter', () => {
10571097
'currency': 'USD',
10581098
'netRevenue': true,
10591099
'meta': {
1060-
advertiserDomains: []
1100+
advertiserDomains: [],
1101+
adrender: 1
10611102
},
10621103
'ttl': 360,
10631104
'ad': AD_SCRIPT,

0 commit comments

Comments
 (0)