Skip to content

Commit 4e60945

Browse files
authored
Add support for advertiserDomains (prebid#6980)
1 parent 27e4541 commit 4e60945

File tree

2 files changed

+44
-5
lines changed

2 files changed

+44
-5
lines changed

modules/glimpseBidAdapter.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ import { BANNER } from '../src/mediaTypes.js';
33

44
const BIDDER_CODE = 'glimpse';
55

6+
function transformEachBidResponse(glimpseBid) {
7+
const bid = glimpseBid;
8+
bid.meta = { advertiserDomains: [] };
9+
10+
if (glimpseBid.adomain) {
11+
bid.meta.advertiserDomains = glimpseBid.adomain;
12+
}
13+
14+
return bid;
15+
}
16+
617
export const spec = {
718
code: BIDDER_CODE,
819
url: 'https://api.glimpseprotocol.io/cloud/v1/vault/prebid',
@@ -45,10 +56,10 @@ export const spec = {
4556
},
4657

4758
interpretResponse: (serverResponse, _) => {
48-
const bids = [];
59+
let bids = [];
4960
try {
5061
const { body } = serverResponse;
51-
bids.push(...body);
62+
bids = body.map(transformEachBidResponse);
5263
} catch (error) {}
5364

5465
return bids;

test/spec/modules/glimpseBidAdapter_spec.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ const templateBidResponse = {
6161
};
6262

6363
const copyBidResponse = () => ({ ...templateBidResponse });
64-
const copyBidderRequest = () => ({ ...templateBidderRequest, bids: copyBidRequests() });
64+
const copyBidderRequest = () => ({
65+
...templateBidderRequest,
66+
bids: copyBidRequests(),
67+
});
6568
const copyBidRequest = () => ({ ...templateBidRequest });
6669

6770
const copyBidRequests = () => [copyBidRequest()];
@@ -139,15 +142,19 @@ describe('GlimpseProtocolAdapter', function () {
139142
expect(payload.gdprConsent).to.exist;
140143
const { gdprConsent } = payload;
141144
expect(gdprConsent.gdprApplies).to.be.true;
142-
expect(gdprConsent.consentString).to.equal(bidderRequest.gdprConsent.consentString);
145+
expect(gdprConsent.consentString).to.equal(
146+
bidderRequest.gdprConsent.consentString
147+
);
143148
});
144149

145150
it('should add referer info', function () {
146151
const bidderRequest = copyBidderRequest();
147152
const request = spec.buildRequests(bidRequests, bidderRequest);
148153
const payload = JSON.parse(request.data);
149154

150-
expect(payload.refererInfo.referer).to.equal(templateBidderRequest.refererInfo.referer);
155+
expect(payload.refererInfo.referer).to.equal(
156+
templateBidderRequest.refererInfo.referer
157+
);
151158
});
152159
});
153160

@@ -175,5 +182,26 @@ describe('GlimpseProtocolAdapter', function () {
175182
const bids = spec.interpretResponse(response);
176183
expect(bids).to.have.length(0);
177184
});
185+
186+
it('should include advertiserDomains field in the response', function () {
187+
const response = copyBidResponses();
188+
189+
const bids = spec.interpretResponse(response);
190+
expect(bids[0].meta.advertiserDomains).to.be.an('array').that.is.empty;
191+
});
192+
193+
it('should reflect the value of the OpenRTB adomain field', function () {
194+
const advertiserDomainsMock = ['http://example.com'];
195+
let response = copyBidResponses();
196+
response.body = response.body.map((bid) => {
197+
return {
198+
...bid,
199+
adomain: advertiserDomainsMock,
200+
};
201+
});
202+
203+
const bids = spec.interpretResponse(response);
204+
expect(bids[0].meta.advertiserDomains).to.equal(advertiserDomainsMock);
205+
});
178206
});
179207
});

0 commit comments

Comments
 (0)