Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions modules/dasBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,13 @@ function interpretResponse(serverResponse) {
},
};

const bidderVariant = bid.ext?.bidder_variant;
if (bidderVariant) {
bidResponse.adserverTargeting = {
'bidder_variant': bidderVariant
};
}

if (bid.mtype === 1) {
bidResponse.mediaType = BANNER;
bidResponse.ad = bid.adm;
Expand Down
35 changes: 35 additions & 0 deletions test/spec/modules/dasBidAdapter_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,41 @@ describe('dasBidAdapter', function () {
expect(spec.interpretResponse({ body: { seatbid: [] } })).to.be.an('array').that.is.empty;
});

it('should include adserverTargeting with bidder_variant when present in ext', function () {
const responseWithVariant = {
body: {
seatbid: [{
bid: [{
impid: 'bid123',
price: 3.5,
w: 300,
h: 250,
adm: '<creative>',
crid: 'crid123',
mtype: 1,
adomain: ['advertiser.com'],
ext: {
bidder_variant: 'variant_a'
}
}]
}],
cur: 'USD'
}
};

const bidResponses = spec.interpretResponse(responseWithVariant);

expect(bidResponses[0].adserverTargeting).to.deep.equal({
'bidder_variant': 'variant_a'
});
});

it('should not include adserverTargeting when bidder_variant is not present', function () {
const bidResponses = spec.interpretResponse(serverResponse);

expect(bidResponses[0].adserverTargeting).to.be.undefined;
});

it('should return proper bid response for native', function () {
const nativeResponse = {
body: {
Expand Down
Loading