Skip to content

Commit 2cb62dc

Browse files
EMXDigitalEMX-MikeD
andcommitted
Cadent Bid Adapter: rename emxdigital to cadent
* rename files * rename bidder_code * rename adapter object * rename remaining references * add alias from emx_digital --------- Co-authored-by: Michael Denton <mdenton@cadent.tv>
1 parent bdd56a7 commit 2cb62dc

3 files changed

Lines changed: 82 additions & 78 deletions

File tree

Lines changed: 60 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,21 @@ import {Renderer} from '../src/Renderer.js';
1515
import {find, includes} from '../src/polyfill.js';
1616
import {parseDomain} from '../src/refererDetection.js';
1717

18-
const BIDDER_CODE = 'emx_digital';
18+
const BIDDER_CODE = 'cadent_aperture_mx';
1919
const ENDPOINT = 'hb.emxdgt.com';
2020
const RENDERER_URL = 'https://js.brealtime.com/outstream/1.30.0/bundle.js';
2121
const ADAPTER_VERSION = '1.5.1';
2222
const DEFAULT_CUR = 'USD';
23+
const ALIASES = [
24+
{ code: 'emx_digital', gvlid: 183 },
25+
];
2326

2427
const EIDS_SUPPORTED = [
2528
{ key: 'idl_env', source: 'liveramp.com', rtiPartner: 'idl', queryParam: 'idl' },
2629
{ key: 'uid2.id', source: 'uidapi.com', rtiPartner: 'UID2', queryParam: 'uid2' }
2730
];
2831

29-
export const emxAdapter = {
32+
export const cadentAdapter = {
3033
validateSizes: (sizes) => {
3134
if (!isArray(sizes) || typeof sizes[0] === 'undefined') {
3235
logWarn(BIDDER_CODE + ': Sizes should be an array');
@@ -40,7 +43,7 @@ export const emxAdapter = {
4043
buildBanner: (bid) => {
4144
let sizes = [];
4245
bid.mediaTypes && bid.mediaTypes.banner && bid.mediaTypes.banner.sizes ? sizes = bid.mediaTypes.banner.sizes : sizes = bid.sizes;
43-
if (!emxAdapter.validateSizes(sizes)) {
46+
if (!cadentAdapter.validateSizes(sizes)) {
4447
logWarn(BIDDER_CODE + ': could not detect mediaType banner sizes. Assigning to bid sizes instead');
4548
sizes = bid.sizes
4649
}
@@ -55,13 +58,13 @@ export const emxAdapter = {
5558
h: sizes[0][1]
5659
};
5760
},
58-
formatVideoResponse: (bidResponse, emxBid, bidRequest) => {
59-
bidResponse.vastXml = emxBid.adm;
61+
formatVideoResponse: (bidResponse, cadentBid, bidRequest) => {
62+
bidResponse.vastXml = cadentBid.adm;
6063
if (bidRequest.bidderRequest && bidRequest.bidderRequest.bids && bidRequest.bidderRequest.bids.length > 0) {
6164
const matchingBid = find(bidRequest.bidderRequest.bids, bid => bidResponse.requestId && bid.bidId && bidResponse.requestId === bid.bidId && bid.mediaTypes && bid.mediaTypes.video && bid.mediaTypes.video.context === 'outstream');
6265
if (matchingBid) {
63-
bidResponse.renderer = emxAdapter.createRenderer(bidResponse, {
64-
id: emxBid.id,
66+
bidResponse.renderer = cadentAdapter.createRenderer(bidResponse, {
67+
id: cadentBid.id,
6568
url: RENDERER_URL
6669
});
6770
}
@@ -81,7 +84,7 @@ export const emxAdapter = {
8184
dnt: (navigator.doNotTrack === 'yes' || navigator.doNotTrack === '1' || navigator.msDoNotTrack === '1') ? 1 : 0,
8285
h: screen.height,
8386
w: screen.width,
84-
devicetype: emxAdapter.isMobile() ? 1 : emxAdapter.isConnectedTV() ? 3 : 2,
87+
devicetype: cadentAdapter.isMobile() ? 1 : cadentAdapter.isConnectedTV() ? 3 : 2,
8588
language: (navigator.language || navigator.browserLanguage || navigator.userLanguage || navigator.systemLanguage),
8689
};
8790
},
@@ -114,7 +117,7 @@ export const emxAdapter = {
114117
loaded: false
115118
});
116119
try {
117-
renderer.setRender(emxAdapter.outstreamRender);
120+
renderer.setRender(cadentAdapter.outstreamRender);
118121
} catch (err) {
119122
logWarn('Prebid Error calling setRender on renderer', err);
120123
}
@@ -131,13 +134,13 @@ export const emxAdapter = {
131134
videoObj['w'] = bid.mediaTypes.video.playerSize[0];
132135
videoObj['h'] = bid.mediaTypes.video.playerSize[1];
133136
}
134-
return emxAdapter.cleanProtocols(videoObj);
137+
return cadentAdapter.cleanProtocols(videoObj);
135138
},
136139
parseResponse: (bidResponseAdm) => {
137140
try {
138141
return decodeURIComponent(bidResponseAdm.replace(/%(?![0-9][0-9a-fA-F]+)/g, '%25'));
139142
} catch (err) {
140-
logError('emx_digitalBidAdapter', 'error', err);
143+
logError('cadent_aperture_mxBidAdapter', 'error', err);
141144
}
142145
},
143146
getSite: (refInfo) => {
@@ -148,45 +151,45 @@ export const emxAdapter = {
148151
ref: refInfo.ref || window.document.referrer
149152
}
150153
},
151-
getGdpr: (bidRequests, emxData) => {
154+
getGdpr: (bidRequests, cadentData) => {
152155
if (bidRequests.gdprConsent) {
153-
emxData.regs = {
156+
cadentData.regs = {
154157
ext: {
155158
gdpr: bidRequests.gdprConsent.gdprApplies === true ? 1 : 0
156159
}
157160
};
158161
}
159162
if (bidRequests.gdprConsent && bidRequests.gdprConsent.gdprApplies) {
160-
emxData.user = {
163+
cadentData.user = {
161164
ext: {
162165
consent: bidRequests.gdprConsent.consentString
163166
}
164167
};
165168
}
166169

167-
return emxData;
170+
return cadentData;
168171
},
169-
getSupplyChain: (bidderRequest, emxData) => {
172+
getSupplyChain: (bidderRequest, cadentData) => {
170173
if (bidderRequest.bids[0] && bidderRequest.bids[0].schain) {
171-
emxData.source = {
174+
cadentData.source = {
172175
ext: {
173176
schain: bidderRequest.bids[0].schain
174177
}
175178
};
176179
}
177180

178-
return emxData;
181+
return cadentData;
179182
},
180183
// supporting eids
181184
getEids(bidRequests) {
182185
return EIDS_SUPPORTED
183-
.map(emxAdapter.getUserId(bidRequests))
186+
.map(cadentAdapter.getUserId(bidRequests))
184187
.filter(x => x);
185188
},
186189
getUserId(bidRequests) {
187190
return ({ key, source, rtiPartner }) => {
188191
let id = deepAccess(bidRequests, `userId.${key}`);
189-
return id ? emxAdapter.formatEid(id, source, rtiPartner) : null;
192+
return id ? cadentAdapter.formatEid(id, source, rtiPartner) : null;
190193
};
191194
},
192195
formatEid(id, source, rtiPartner) {
@@ -203,6 +206,7 @@ export const emxAdapter = {
203206
export const spec = {
204207
code: BIDDER_CODE,
205208
gvlid: 183,
209+
alias: ALIASES,
206210
supportedMediaTypes: [BANNER, VIDEO],
207211
isBidRequestValid: function (bid) {
208212
if (!bid || !bid.params) {
@@ -211,7 +215,7 @@ export const spec = {
211215
}
212216

213217
if (bid.bidder !== BIDDER_CODE) {
214-
logWarn(BIDDER_CODE + ': Must use "emx_digital" as bidder code.');
218+
logWarn(BIDDER_CODE + ': Must use "cadent_aperture_mx" as bidder code.');
215219
return false;
216220
}
217221

@@ -223,12 +227,12 @@ export const spec = {
223227
if (bid.mediaTypes && bid.mediaTypes.banner) {
224228
let sizes;
225229
bid.mediaTypes.banner.sizes ? sizes = bid.mediaTypes.banner.sizes : sizes = bid.sizes;
226-
if (!emxAdapter.validateSizes(sizes)) {
230+
if (!cadentAdapter.validateSizes(sizes)) {
227231
logWarn(BIDDER_CODE + ': Missing sizes in bid');
228232
return false;
229233
}
230234
} else if (bid.mediaTypes && bid.mediaTypes.video) {
231-
if (!emxAdapter.checkVideoContext(bid)) {
235+
if (!cadentAdapter.checkVideoContext(bid)) {
232236
logWarn(BIDDER_CODE + ': Missing video context: instream or outstream');
233237
return false;
234238
}
@@ -242,13 +246,13 @@ export const spec = {
242246
return true;
243247
},
244248
buildRequests: function (validBidRequests, bidderRequest) {
245-
const emxImps = [];
249+
const cadentImps = [];
246250
const timeout = bidderRequest.timeout || '';
247251
const timestamp = Date.now();
248252
const url = 'https://' + ENDPOINT + ('?t=' + timeout + '&ts=' + timestamp + '&src=pbjs');
249253
const secure = location.protocol.indexOf('https') > -1 ? 1 : 0;
250-
const device = emxAdapter.getDevice();
251-
const site = emxAdapter.getSite(bidderRequest.refererInfo);
254+
const device = cadentAdapter.getDevice();
255+
const site = cadentAdapter.getSite(bidderRequest.refererInfo);
252256

253257
_each(validBidRequests, function (bid) {
254258
let tagid = getBidIdParameter('tagid', bid.params);
@@ -269,35 +273,35 @@ export const spec = {
269273
if (gpid) {
270274
data.ext = {gpid: gpid.toString()};
271275
}
272-
let typeSpecifics = isVideo ? { video: emxAdapter.buildVideo(bid) } : { banner: emxAdapter.buildBanner(bid) };
276+
let typeSpecifics = isVideo ? { video: cadentAdapter.buildVideo(bid) } : { banner: cadentAdapter.buildBanner(bid) };
273277
let bidfloorObj = bidfloor > 0 ? { bidfloor, bidfloorcur: DEFAULT_CUR } : {};
274-
let emxBid = Object.assign(data, typeSpecifics, bidfloorObj);
275-
emxImps.push(emxBid);
278+
let cadentBid = Object.assign(data, typeSpecifics, bidfloorObj);
279+
cadentImps.push(cadentBid);
276280
});
277281

278-
let emxData = {
282+
let cadentData = {
279283
id: bidderRequest.auctionId,
280-
imp: emxImps,
284+
imp: cadentImps,
281285
device,
282286
site,
283287
cur: DEFAULT_CUR,
284288
version: ADAPTER_VERSION
285289
};
286290

287-
emxData = emxAdapter.getGdpr(bidderRequest, Object.assign({}, emxData));
288-
emxData = emxAdapter.getSupplyChain(bidderRequest, Object.assign({}, emxData));
291+
cadentData = cadentAdapter.getGdpr(bidderRequest, Object.assign({}, cadentData));
292+
cadentData = cadentAdapter.getSupplyChain(bidderRequest, Object.assign({}, cadentData));
289293
if (bidderRequest && bidderRequest.uspConsent) {
290-
emxData.us_privacy = bidderRequest.uspConsent;
294+
cadentData.us_privacy = bidderRequest.uspConsent;
291295
}
292296

293297
// adding eid support
294298
if (bidderRequest.userId) {
295-
let eids = emxAdapter.getEids(bidderRequest);
299+
let eids = cadentAdapter.getEids(bidderRequest);
296300
if (eids.length > 0) {
297-
if (emxData.user && emxData.user.ext) {
298-
emxData.user.ext.eids = eids;
301+
if (cadentData.user && cadentData.user.ext) {
302+
cadentData.user.ext.eids = eids;
299303
} else {
300-
emxData.user = {
304+
cadentData.user = {
301305
ext: {eids}
302306
};
303307
}
@@ -307,50 +311,50 @@ export const spec = {
307311
return {
308312
method: 'POST',
309313
url,
310-
data: JSON.stringify(emxData),
314+
data: JSON.stringify(cadentData),
311315
options: {
312316
withCredentials: true
313317
},
314318
bidderRequest
315319
};
316320
},
317321
interpretResponse: function (serverResponse, bidRequest) {
318-
let emxBidResponses = [];
322+
let cadentBidResponses = [];
319323
let response = serverResponse.body || {};
320324
if (response.seatbid && response.seatbid.length > 0 && response.seatbid[0].bid) {
321-
response.seatbid.forEach(function (emxBid) {
322-
emxBid = emxBid.bid[0];
325+
response.seatbid.forEach(function (cadentBid) {
326+
cadentBid = cadentBid.bid[0];
323327
let isVideo = false;
324-
let adm = emxAdapter.parseResponse(emxBid.adm) || '';
328+
let adm = cadentAdapter.parseResponse(cadentBid.adm) || '';
325329
let bidResponse = {
326-
requestId: emxBid.id,
327-
cpm: emxBid.price,
328-
width: emxBid.w,
329-
height: emxBid.h,
330-
creativeId: emxBid.crid || emxBid.id,
331-
dealId: emxBid.dealid || null,
330+
requestId: cadentBid.id,
331+
cpm: cadentBid.price,
332+
width: cadentBid.w,
333+
height: cadentBid.h,
334+
creativeId: cadentBid.crid || cadentBid.id,
335+
dealId: cadentBid.dealid || null,
332336
currency: 'USD',
333337
netRevenue: true,
334-
ttl: emxBid.ttl,
338+
ttl: cadentBid.ttl,
335339
ad: adm
336340
};
337-
if (emxBid.adm && emxBid.adm.indexOf('<?xml version=') > -1) {
341+
if (cadentBid.adm && cadentBid.adm.indexOf('<?xml version=') > -1) {
338342
isVideo = true;
339-
bidResponse = emxAdapter.formatVideoResponse(bidResponse, Object.assign({}, emxBid), bidRequest);
343+
bidResponse = cadentAdapter.formatVideoResponse(bidResponse, Object.assign({}, cadentBid), bidRequest);
340344
}
341345
bidResponse.mediaType = (isVideo ? VIDEO : BANNER);
342346

343347
// support for adomain in prebid 5.0
344-
if (emxBid.adomain && emxBid.adomain.length) {
348+
if (cadentBid.adomain && cadentBid.adomain.length) {
345349
bidResponse.meta = {
346-
advertiserDomains: emxBid.adomain
350+
advertiserDomains: cadentBid.adomain
347351
};
348352
}
349353

350-
emxBidResponses.push(bidResponse);
354+
cadentBidResponses.push(bidResponse);
351355
});
352356
}
353-
return emxBidResponses;
357+
return cadentBidResponses;
354358
},
355359
getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent) {
356360
const syncs = [];
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
# Overview
22

33
```
4-
Module Name: EMX Digital Adapter
4+
Module Name: Cadent Aperture MX Adapter
55
Module Type: Bidder Adapter
66
Maintainer: git@emxdigital.com
77
```
88

99
# Description
1010

11-
The EMX Digital adapter provides publishers with access to the EMX Marketplace. The adapter is GDPR compliant. Please note that the adapter supports Banner and Video (Instream & Outstream) media types.
11+
The Cadent Aperture MX adapter provides publishers with access to the Cadent Aperture MX SSP. The adapter is GDPR compliant. Please note that the adapter supports Banner and Video (Instream & Outstream) media types.
1212

13-
Note: The EMX Digital adapter requires approval and implementation guidelines from the EMX team, including existing publishers that work with EMX Digital. Please reach out to your account manager or prebid@emxdigital.com for more information.
13+
Note: The Cadent Aperture MX adapter requires approval and implementation guidelines from the Cadent team, including existing publishers that work with Cadent. Please reach out to your account manager or prebid@emxdigital.com for more information.
1414

15-
The bidder code should be ```emx_digital```
15+
The bidder code should be ```cadent_aperture_mx```
1616
The params used by the bidder are :
1717
```tagid``` - string (mandatory)
1818
```bidfloor``` - string (optional)
@@ -29,7 +29,7 @@ var adUnits = [{
2929
},
3030
bids: [
3131
{
32-
bidder: 'emx_digital',
32+
bidder: 'cadent_aperture_mx',
3333
params: {
3434
tagid: '25251',
3535
}
@@ -49,7 +49,7 @@ var adUnits = [{
4949
},
5050
bids: [
5151
{
52-
bidder: 'emx_digital',
52+
bidder: 'cadent_aperture_mx',
5353
params: {
5454
tagid: '25251',
5555
video: {

0 commit comments

Comments
 (0)