Skip to content

Commit a1a9689

Browse files
authored
Prebid 8: Enforcement, lat and long can only come from the request (#10041)
* Update apacdexBidAdapter.js * Update ebdrBidAdapter.js * Update mediafuseBidAdapter.js * Update microadBidAdapter.js * Update zetaBidAdapter.js * Update pubwiseBidAdapter.js * Update pubmaticBidAdapter.js * Update ebdrBidAdapter.js * Update microadBidAdapter.js * Update apacdexBidAdapter.js * Update apacdexBidAdapter_spec.js * Update mediafuseBidAdapter_spec.js * Update pubmaticBidAdapter_spec.js * Update microadBidAdapter_spec.js * Update pubmaticBidAdapter_spec.js * Update pubmaticBidAdapter_spec.js
1 parent a8dedb7 commit a1a9689

11 files changed

+42
-53
lines changed

modules/apacdexBidAdapter.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { deepAccess, isPlainObject, isArray, replaceAuctionPrice, isFn } from '../src/utils.js';
1+
import { deepAccess, isPlainObject, isArray, replaceAuctionPrice, isFn, logError } from '../src/utils.js';
22
import { config } from '../src/config.js';
33
import { registerBidder } from '../src/adapters/bidderFactory.js';
44
import {hasPurpose1Consent} from '../src/utils/gpdr.js';
@@ -134,7 +134,7 @@ export const spec = {
134134

135135
// Apply geo
136136
if (geo) {
137-
payload.geo = geo;
137+
logError('apacdex adapter: Precise lat and long must be set on config; not on bidder parameters');
138138
}
139139

140140
payload.bids = bids.map(function (bid) {

modules/ebdrBidAdapter.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ export const spec = {
3636
w: whArr[0],
3737
h: whArr[1]
3838
};
39-
ebdrParams['latitude'] = getBidIdParameter('latitude', bid.params);
40-
ebdrParams['longitude'] = getBidIdParameter('longitude', bid.params);
39+
// TODO: fix lat and long to only come from request
40+
ebdrParams['latitude'] = '0';
41+
ebdrParams['longitude'] = '0';
4142
ebdrParams['ifa'] = (getBidIdParameter('IDFA', bid.params).length > getBidIdParameter('ADID', bid.params).length) ? getBidIdParameter('IDFA', bid.params) : getBidIdParameter('ADID', bid.params);
4243
});
4344
let ebdrBidReq = {

modules/mediafuseBidAdapter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const VIDEO_TARGETING = ['id', 'minduration', 'maxduration',
4747
'skippable', 'playback_method', 'frameworks', 'context', 'skipoffset'];
4848
const VIDEO_RTB_TARGETING = ['minduration', 'maxduration', 'skip', 'skipafter', 'playbackmethod', 'api'];
4949
const USER_PARAMS = ['age', 'externalUid', 'segments', 'gender', 'dnt', 'language'];
50-
const APP_DEVICE_PARAMS = ['geo', 'device_id']; // appid is collected separately
50+
const APP_DEVICE_PARAMS = ['device_id']; // appid is collected separately
5151
const DEBUG_PARAMS = ['enabled', 'dongle', 'member_id', 'debug_timeout'];
5252
const VIDEO_MAPPING = {
5353
playback_method: {

modules/microadBidAdapter.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ const EXT_URL_STRING = '${COMPASS_EXT_URL}';
1717
const EXT_REF_STRING = '${COMPASS_EXT_REF}';
1818
const EXT_IFA_STRING = '${COMPASS_EXT_IFA}';
1919
const EXT_APPID_STRING = '${COMPASS_EXT_APPID}';
20-
const EXT_GEO_STRING = '${COMPASS_EXT_GEO}';
2120
/* eslint-enable no-template-curly-in-string */
2221

2322
const BANNER_CODE = 1;
@@ -94,13 +93,6 @@ export const spec = {
9493
params['appid'] = bidParams.appid.replace(EXT_APPID_STRING, '');
9594
}
9695

97-
if (bidParams.geo) {
98-
const geo = bidParams.geo.replace(EXT_GEO_STRING, '');
99-
if (/^[0-9.\-]+,[0-9.\-]+$/.test(geo)) {
100-
params['geo'] = geo;
101-
}
102-
}
103-
10496
const aidsParams = []
10597
const userIdAsEids = bid.userIdAsEids;
10698
AUDIENCE_IDS.forEach((audienceId) => {

modules/pubmaticBidAdapter.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,8 +1133,9 @@ export const spec = {
11331133

11341134
payload.user.gender = (conf.gender ? conf.gender.trim() : UNDEFINED);
11351135
payload.user.geo = {};
1136-
payload.user.geo.lat = _parseSlotParam('lat', conf.lat);
1137-
payload.user.geo.lon = _parseSlotParam('lon', conf.lon);
1136+
// TODO: fix lat and long to only come from request object, not params
1137+
payload.user.geo.lat = _parseSlotParam('lat', 0);
1138+
payload.user.geo.lon = _parseSlotParam('lon', 0);
11381139
payload.user.yob = _parseSlotParam('yob', conf.yob);
11391140
payload.device.geo = payload.user.geo;
11401141
payload.site.page = conf.kadpageurl.trim() || payload.site.page.trim();

modules/pubwiseBidAdapter.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,9 @@ export const spec = {
224224
payload.site.publisher.id = bid.params.siteId.trim();
225225
payload.user.gender = (conf.gender ? conf.gender.trim() : UNDEFINED);
226226
payload.user.geo = {};
227-
payload.user.geo.lat = _parseSlotParam('lat', conf.lat);
228-
payload.user.geo.lon = _parseSlotParam('lon', conf.lon);
227+
// TODO: fix lat and long to only come from ortb2 object so publishers can control precise location
228+
payload.user.geo.lat = _parseSlotParam('lat', 0);
229+
payload.user.geo.lon = _parseSlotParam('lon', 0);
229230
payload.user.yob = _parseSlotParam('yob', conf.yob);
230231
payload.device.geo = payload.user.geo;
231232
payload.site.page = payload.site?.page?.trim();

modules/zetaBidAdapter.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@ export const spec = {
4141
return false;
4242
}
4343

44-
if (!(bid.params.device.geo &&
45-
bid.params.device.geo.country)) {
46-
logWarn('Invalid bid request - missing required geo data');
47-
return false;
48-
}
49-
5044
if (!bid.params.definerId) {
5145
logWarn('Invalid bid request - missing required definer data');
5246
return false;

test/spec/modules/apacdexBidAdapter_spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,9 +321,9 @@ describe('ApacdexBidAdapter', function () {
321321
const bidRequests = spec.buildRequests(bidRequest, bidderRequests);
322322
expect(bidRequests.data.eids).to.deep.equal(bidRequest[0].userIdAsEids)
323323
});
324-
it('should return a properly formatted request with geo defined', function () {
324+
it('should fail to return a properly formatted request with geo defined', function () {
325325
const bidRequests = spec.buildRequests(bidRequest, bidderRequests);
326-
expect(bidRequests.data.geo).to.deep.equal(bidRequest[0].params.geo)
326+
expect(bidRequests.data.geo).to.not.deep.equal(bidRequest[0].params.geo)
327327
});
328328
it('should return a properly formatted request with us_privacy included', function () {
329329
const bidRequests = spec.buildRequests(bidRequest, bidderRequests);

test/spec/modules/mediafuseBidAdapter_spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -811,8 +811,8 @@ describe('MediaFuseAdapter', function () {
811811
sha1udid: '4DFAA92388699AC6539885AEF1719293879985BF',
812812
windowsadid: '750c6be243f1c4b5c9912b95a5742fc5'
813813
});
814-
expect(payload.device.geo).to.exist;
815-
expect(payload.device.geo).to.deep.equal({
814+
expect(payload.device.geo).to.not.exist;
815+
expect(payload.device.geo).to.not.deep.equal({
816816
lat: 40.0964439,
817817
lng: -75.3009142
818818
});

test/spec/modules/microadBidAdapter_spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ describe('microadBidAdapter', () => {
228228
});
229229
});
230230

231-
it('should add geo parameter to response if request parameters contain geo', () => {
231+
it('should not add geo parameter to response even if request parameters contain geo', () => {
232232
const bidRequestWithGeo = Object.assign({}, bidRequestTemplate, {
233233
params: {
234234
spot: 'spot-code',
@@ -237,7 +237,7 @@ describe('microadBidAdapter', () => {
237237
});
238238
const requests = spec.buildRequests([bidRequestWithGeo], bidderRequest);
239239
requests.forEach(request => {
240-
expect(request.data).to.deep.equal(
240+
expect(request.data).to.not.deep.equal(
241241
Object.assign({}, expectedResultTemplate, {
242242
cbt: request.data.cbt,
243243
geo: '35.655275,139.693771'

test/spec/modules/pubmaticBidAdapter_spec.js

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,10 +1144,10 @@ describe('PubMatic adapter', function () {
11441144
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
11451145
expect(data.user.yob).to.equal(parseInt(bidRequests[0].params.yob)); // YOB
11461146
expect(data.user.gender).to.equal(bidRequests[0].params.gender); // Gender
1147-
expect(data.device.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1148-
expect(data.device.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1149-
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1150-
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1147+
expect(data.device.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1148+
expect(data.device.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1149+
expect(data.user.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1150+
expect(data.user.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
11511151
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
11521152
expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
11531153
expect(data.source.tid).to.equal('source-tid'); // Prebid TransactionId
@@ -1397,10 +1397,10 @@ describe('PubMatic adapter', function () {
13971397
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
13981398
expect(data.user.yob).to.equal(parseInt(bidRequests[0].params.yob)); // YOB
13991399
expect(data.user.gender).to.equal(bidRequests[0].params.gender); // Gender
1400-
expect(data.device.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1401-
expect(data.device.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1402-
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1403-
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1400+
expect(data.device.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1401+
expect(data.device.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1402+
expect(data.user.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1403+
expect(data.user.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
14041404
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
14051405
expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
14061406
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
@@ -1608,10 +1608,10 @@ describe('PubMatic adapter', function () {
16081608
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
16091609
expect(data.user.yob).to.equal(parseInt(bidRequests[0].params.yob)); // YOB
16101610
expect(data.user.gender).to.equal(bidRequests[0].params.gender); // Gender
1611-
expect(data.device.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1612-
expect(data.device.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1613-
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1614-
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1611+
expect(data.device.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1612+
expect(data.device.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Longitude
1613+
expect(data.user.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1614+
expect(data.user.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Longitude
16151615
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
16161616
expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
16171617
expect(data.ext.wrapper.wiid).to.equal('new-auction-id'); // OpenWrap: Wrapper Impression ID
@@ -1644,10 +1644,10 @@ describe('PubMatic adapter', function () {
16441644
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
16451645
expect(data.user.yob).to.equal(parseInt(bidRequests[0].params.yob)); // YOB
16461646
expect(data.user.gender).to.equal(bidRequests[0].params.gender); // Gender
1647-
expect(data.device.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1648-
expect(data.device.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1649-
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1650-
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1647+
expect(data.device.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1648+
expect(data.device.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1649+
expect(data.user.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1650+
expect(data.user.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
16511651
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
16521652
expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
16531653
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
@@ -1676,10 +1676,10 @@ describe('PubMatic adapter', function () {
16761676
expect(data.site.publisher.id).to.equal(bidRequests[0].params.publisherId); // publisher Id
16771677
expect(data.user.yob).to.equal(parseInt(bidRequests[0].params.yob)); // YOB
16781678
expect(data.user.gender).to.equal(bidRequests[0].params.gender); // Gender
1679-
expect(data.device.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1680-
expect(data.device.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1681-
expect(data.user.geo.lat).to.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1682-
expect(data.user.geo.lon).to.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1679+
expect(data.device.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1680+
expect(data.device.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
1681+
expect(data.user.geo.lat).to.not.equal(parseFloat(bidRequests[0].params.lat)); // Latitude
1682+
expect(data.user.geo.lon).to.not.equal(parseFloat(bidRequests[0].params.lon)); // Lognitude
16831683
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
16841684
expect(data.ext.wrapper.transactionId).to.equal(bidRequests[0].ortb2Imp.ext.tid); // Prebid TransactionId
16851685
expect(data.ext.wrapper.wiid).to.equal(bidRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID
@@ -2706,10 +2706,10 @@ describe('PubMatic adapter', function () {
27062706
expect(data.site.publisher.id).to.equal(multipleMediaRequests[0].params.publisherId); // publisher Id
27072707
expect(data.user.yob).to.equal(parseInt(multipleMediaRequests[0].params.yob)); // YOB
27082708
expect(data.user.gender).to.equal(multipleMediaRequests[0].params.gender); // Gender
2709-
expect(data.device.geo.lat).to.equal(parseFloat(multipleMediaRequests[0].params.lat)); // Latitude
2710-
expect(data.device.geo.lon).to.equal(parseFloat(multipleMediaRequests[0].params.lon)); // Lognitude
2711-
expect(data.user.geo.lat).to.equal(parseFloat(multipleMediaRequests[0].params.lat)); // Latitude
2712-
expect(data.user.geo.lon).to.equal(parseFloat(multipleMediaRequests[0].params.lon)); // Lognitude
2709+
expect(data.device.geo.lat).to.not.equal(parseFloat(multipleMediaRequests[0].params.lat)); // Latitude
2710+
expect(data.device.geo.lon).to.not.equal(parseFloat(multipleMediaRequests[0].params.lon)); // Lognitude
2711+
expect(data.user.geo.lat).to.not.equal(parseFloat(multipleMediaRequests[0].params.lat)); // Latitude
2712+
expect(data.user.geo.lon).to.not.equal(parseFloat(multipleMediaRequests[0].params.lon)); // Lognitude
27132713
expect(data.ext.wrapper.wv).to.equal($$REPO_AND_VERSION$$); // Wrapper Version
27142714
expect(data.ext.wrapper.transactionId).to.equal(multipleMediaRequests[0].transactionId); // Prebid TransactionId
27152715
expect(data.ext.wrapper.wiid).to.equal(multipleMediaRequests[0].params.wiid); // OpenWrap: Wrapper Impression ID

0 commit comments

Comments
 (0)