Skip to content

Commit b2243be

Browse files
authored
Revert "Merge master (#8873)"
This reverts commit 07c5369.
1 parent 07c5369 commit b2243be

32 files changed

+1058
-1379
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
[![Build Status](https://circleci.com/gh/prebid/Prebid.js.svg?style=svg)](https://circleci.com/gh/prebid/Prebid.js)
22
[![Percentage of issues still open](http://isitmaintained.com/badge/open/prebid/Prebid.js.svg)](http://isitmaintained.com/project/prebid/Prebid.js "Percentage of issues still open")
3+
[![Code Climate](https://codeclimate.com/github/prebid/Prebid.js/badges/gpa.svg)](https://codeclimate.com/github/prebid/Prebid.js)
34
[![Coverage Status](https://coveralls.io/repos/github/prebid/Prebid.js/badge.svg)](https://coveralls.io/github/prebid/Prebid.js)
5+
[![devDependencies Status](https://david-dm.org/prebid/Prebid.js/dev-status.svg)](https://david-dm.org/prebid/Prebid.js?type=dev)
46
[![Total Alerts](https://img.shields.io/lgtm/alerts/g/prebid/Prebid.js.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/prebid/Prebid.js/alerts/)
57

68
# Prebid.js

modules/adriverBidAdapter.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// ADRIVER BID ADAPTER for Prebid 1.13
22
import { logInfo, getWindowLocation, getBidIdParameter, _each } from '../src/utils.js';
3-
import { registerBidder } from '../src/adapters/bidderFactory.js';
3+
import {registerBidder} from '../src/adapters/bidderFactory.js';
44
import { getStorageManager } from '../src/storageManager.js';
55

66
const BIDDER_CODE = 'adriver';
@@ -22,6 +22,8 @@ export const spec = {
2222
},
2323

2424
buildRequests: function (validBidRequests, bidderRequest) {
25+
logInfo('validBidRequests', validBidRequests);
26+
2527
let win = getWindowLocation();
2628
let customID = Math.round(Math.random() * 999999999) + '-' + Math.round(new Date() / 1000) + '-1-46-';
2729
let siteId = getBidIdParameter('siteid', validBidRequests[0].params) + '';
@@ -97,17 +99,22 @@ export const spec = {
9799
});
98100
});
99101

100-
let adrcidCookie = storage.getDataFromLocalStorage('adrcid') || validBidRequests[0].userId?.adrcid;
102+
let userid = validBidRequests[0].userId;
103+
let adrcidCookie = storage.getDataFromLocalStorage('adrcid') || validBidRequests[0].userId.adrcid;
104+
101105
if (adrcidCookie) {
102-
payload.user.buyerid = adrcidCookie;
106+
payload.adrcid = adrcidCookie;
107+
payload.id5 = userid.id5id;
108+
payload.sharedid = userid.pubcid;
109+
payload.unifiedid = userid.tdid;
103110
}
104111
const payloadString = JSON.stringify(payload);
105112

106113
return {
107114
method: 'POST',
108115
url: ADRIVER_BID_URL,
109-
data: payloadString
110-
}
116+
data: payloadString,
117+
};
111118
},
112119

113120
interpretResponse: function (serverResponse, bidRequest) {

modules/adriverIdSystem.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ export const adriverIdSubmodule = {
7373
callback();
7474
}
7575
};
76-
let newUrl = url + '&cid=' + (storage.getDataFromLocalStorage('adrcid') || storage.getCookie('adrcid'));
77-
ajax(newUrl, callbacks, undefined, {method: 'GET'});
76+
ajax(url, callbacks, undefined, {method: 'GET'});
7877
}
7978
};
8079
return {callback: resp};

modules/adtelligentBidAdapter.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ const HOST_GETTERS = {
2323
janet: () => 'ghb.bidder.jmgads.com',
2424
pgam: () => 'ghb.pgamssp.com',
2525
ocm: () => 'ghb.cenarius.orangeclickmedia.com',
26-
vidcrunchllc: () => 'ghb.platform.vidcrunch.com',
2726
}
2827
const getUri = function (bidderCode) {
2928
let bidderWithoutSuffix = bidderCode.split('_')[0];
@@ -44,7 +43,6 @@ export const spec = {
4443
{ code: 'navelix', gvlid: 380 },
4544
'pgam',
4645
'ocm',
47-
{ code: 'vidcrunchllc', gvlid: 1145 },
4846
],
4947
supportedMediaTypes: [VIDEO, BANNER],
5048
isBidRequestValid: function (bid) {

modules/criteoBidAdapter.js

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -469,20 +469,15 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
469469
if (bidRequest.params.publisherSubId) {
470470
slot.publishersubid = bidRequest.params.publisherSubId;
471471
}
472-
473-
if (bidRequest.params.nativeCallback || hasNativeMediaType(bidRequest)) {
472+
if (bidRequest.params.nativeCallback || deepAccess(bidRequest, `mediaTypes.${NATIVE}`)) {
474473
slot.native = true;
475474
if (!checkNativeSendId(bidRequest)) {
476475
logWarn(LOG_PREFIX + 'all native assets containing URL should be sent as placeholders with sendId(icon, image, clickUrl, displayUrl, privacyLink, privacyIcon)');
477476
}
478-
}
479-
480-
if (hasBannerMediaType(bidRequest)) {
481-
slot.sizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'), parseSize);
477+
slot.sizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'), parseNativeSize);
482478
} else {
483-
slot.sizes = [];
479+
slot.sizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'), parseSize);
484480
}
485-
486481
if (hasVideoMediaType(bidRequest)) {
487482
const video = {
488483
playersizes: parseSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize'), parseSize),
@@ -559,16 +554,15 @@ function parseSize(size) {
559554
return size[0] + 'x' + size[1];
560555
}
561556

562-
function hasVideoMediaType(bidRequest) {
563-
return deepAccess(bidRequest, 'mediaTypes.video') !== undefined;
564-
}
565-
566-
function hasBannerMediaType(bidRequest) {
567-
return deepAccess(bidRequest, 'mediaTypes.banner') !== undefined;
557+
function parseNativeSize(size) {
558+
if (size[0] === undefined && size[1] === undefined) {
559+
return '2x2';
560+
}
561+
return size[0] + 'x' + size[1];
568562
}
569563

570-
function hasNativeMediaType(bidRequest) {
571-
return deepAccess(bidRequest, 'mediaTypes.native') !== undefined;
564+
function hasVideoMediaType(bidRequest) {
565+
return deepAccess(bidRequest, 'mediaTypes.video') !== undefined;
572566
}
573567

574568
function hasValidVideoMediaType(bidRequest) {
@@ -652,18 +646,18 @@ function enrichSlotWithFloors(slot, bidRequest) {
652646
if (bidRequest.mediaTypes?.banner) {
653647
slotFloors.banner = {};
654648
const bannerSizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes'))
655-
bannerSizes.forEach(bannerSize => slotFloors.banner[parseSize(bannerSize).toString()] = bidRequest.getFloor({ size: bannerSize, mediaType: BANNER }));
649+
bannerSizes.forEach(bannerSize => slotFloors.banner[parseSize(bannerSize).toString()] = bidRequest.getFloor({size: bannerSize, mediaType: BANNER}));
656650
}
657651

658652
if (bidRequest.mediaTypes?.video) {
659653
slotFloors.video = {};
660654
const videoSizes = parseSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize'))
661-
videoSizes.forEach(videoSize => slotFloors.video[parseSize(videoSize).toString()] = bidRequest.getFloor({ size: videoSize, mediaType: VIDEO }));
655+
videoSizes.forEach(videoSize => slotFloors.video[parseSize(videoSize).toString()] = bidRequest.getFloor({size: videoSize, mediaType: VIDEO}));
662656
}
663657

664658
if (bidRequest.mediaTypes?.native) {
665659
slotFloors.native = {};
666-
slotFloors.native['*'] = bidRequest.getFloor({ size: '*', mediaType: NATIVE });
660+
slotFloors.native['*'] = bidRequest.getFloor({size: '*', mediaType: NATIVE});
667661
}
668662

669663
if (Object.keys(slotFloors).length > 0) {

modules/dgkeywordRtdProvider.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,6 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
2525
const timeout = (moduleConfig && moduleConfig.params && moduleConfig.params.timeout && Number(moduleConfig.params.timeout) > 0) ? Number(moduleConfig.params.timeout) : PROFILE_TIMEOUT_MS;
2626
const url = (moduleConfig && moduleConfig.params && moduleConfig.params.url) ? moduleConfig.params.url : URL + encodeURIComponent(window.location.href);
2727
const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
28-
callback = (function(cb) {
29-
let done = false;
30-
return function () {
31-
if (!done) {
32-
done = true;
33-
return cb.apply(this, arguments);
34-
}
35-
}
36-
})(callback);
3728
let isFinish = false;
3829
logMessage('[dgkeyword sub module]', adUnits, timeout);
3930
let setKeywordTargetBidders = getTargetBidderOfDgKeywords(adUnits);

modules/displayioBidAdapter.js

Lines changed: 97 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import {registerBidder} from '../src/adapters/bidderFactory.js';
22
import {BANNER, VIDEO} from '../src/mediaTypes.js';
3-
import {Renderer} from '../src/Renderer.js';
4-
import {getWindowFromDocument, logWarn} from '../src/utils.js';
53

6-
const ADAPTER_VERSION = '1.1.0';
4+
const BIDDER_VERSION = '1.0.0';
75
const BIDDER_CODE = 'displayio';
6+
const GVLID = 999;
87
const BID_TTL = 300;
98
const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
109
const DEFAULT_CURRENCY = 'USD';
1110

1211
export const spec = {
1312
code: BIDDER_CODE,
13+
gvlid: GVLID,
1414
supportedMediaTypes: SUPPORTED_AD_TYPES,
1515
isBidRequestValid: function(bid) {
1616
return !!(bid.params && bid.params.placementId && bid.params.siteId &&
@@ -20,7 +20,7 @@ export const spec = {
2020
return bidRequests.map(bid => {
2121
let url = '//' + bid.params.adsSrvDomain + '/srv?method=getPlacement&app=' +
2222
bid.params.siteId + '&placement=' + bid.params.placementId;
23-
const data = getPayload(bid, bidderRequest);
23+
const data = this._getPayload(bid, bidderRequest);
2424
return {
2525
method: 'POST',
2626
headers: {'Content-Type': 'application/json;charset=utf-8'},
@@ -42,112 +42,117 @@ export const spec = {
4242
height: adData.h,
4343
netRevenue: true,
4444
ttl: BID_TTL,
45-
creativeId: adData.adId || 1,
46-
currency: adData.cur || DEFAULT_CURRENCY,
45+
creativeId: adData.adId || 0,
46+
currency: DEFAULT_CURRENCY,
4747
referrer: data.data.ref,
48-
mediaType: ads[0].ad.subtype === 'videoVast' ? VIDEO : BANNER,
48+
mediaType: ads[0].ad.subtype,
4949
ad: adData.markup,
50-
adUnitCode: data.adUnitCode,
51-
renderURL: data.renderURL,
50+
placement: data.placement,
5251
adData: adData
5352
};
54-
55-
if (bidResponse.mediaType === VIDEO) {
56-
bidResponse.vastUrl = adData.videos[0] && adData.videos[0].url
57-
}
58-
59-
if (bidResponse.renderURL) {
60-
bidResponse.renderer = newRenderer(bidResponse);
53+
if (bidResponse.vastUrl === 'videoVast') {
54+
bidResponse.vastUrl = adData.videos[0].url
6155
}
6256
bidResponses.push(bidResponse);
6357
}
6458
return bidResponses;
65-
}
66-
};
67-
68-
function getPayload (bid, bidderRequest) {
69-
const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
70-
const userSession = 'us_web_xxxxxxxxxxxx'.replace(/[x]/g, c => {
71-
let r = Math.random() * 16 | 0;
72-
let v = c === 'x' ? r : (r & 0x3 | 0x8);
73-
return v.toString(16);
74-
});
75-
const { params, adUnitCode, bidId } = bid;
76-
const { siteId, placementId, renderURL, pageCategory, keywords } = params;
77-
const { refererInfo, uspConsent, gdprConsent } = bidderRequest;
78-
const mediation = {consent: '-1', gdpr: '-1'};
79-
if (gdprConsent && 'gdprApplies' in gdprConsent) {
80-
if (gdprConsent.consentString !== undefined) {
81-
mediation.consent = gdprConsent.consentString;
82-
}
83-
if (gdprConsent.gdprApplies !== undefined) {
84-
mediation.gdpr = gdprConsent.gdprApplies ? '1' : '0';
59+
},
60+
_getPayload: function (bid, bidderRequest) {
61+
const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
62+
const userSession = 'us_web_xxxxxxxxxxxx'.replace(/[x]/g, c => {
63+
let r = Math.random() * 16 | 0;
64+
let v = c === 'x' ? r : (r & 0x3 | 0x8);
65+
return v.toString(16);
66+
});
67+
const { params } = bid;
68+
const { siteId, placementId } = params;
69+
const { refererInfo, uspConsent, gdprConsent } = bidderRequest;
70+
const mediation = {consent: '-1', gdpr: '-1'};
71+
if (gdprConsent) {
72+
if (gdprConsent.consentString !== undefined) {
73+
mediation.consent = gdprConsent.consentString;
74+
}
75+
if (gdprConsent.gdprApplies !== undefined) {
76+
mediation.gdpr = gdprConsent.gdprApplies ? '1' : '0';
77+
}
8578
}
86-
}
87-
return {
88-
userSession,
89-
data: {
90-
id: bidId,
91-
action: 'getPlacement',
92-
app: siteId,
93-
placement: placementId,
94-
adUnitCode,
95-
renderURL,
79+
const payload = {
80+
userSession,
9681
data: {
97-
pagecat: pageCategory ? pageCategory.split(',').map(k => k.trim()) : [],
98-
keywords: keywords ? keywords.split(',').map(k => k.trim()) : [],
99-
lang_content: document.documentElement.lang,
100-
lang: window.navigator.language,
101-
domain: refererInfo.domain,
102-
page: refererInfo.page,
103-
ref: refererInfo.referer,
104-
userids: bid.userIdAsEids || {},
105-
geo: '',
106-
},
107-
complianceData: {
108-
child: '-1',
109-
us_privacy: uspConsent,
110-
dnt: window.doNotTrack === '1' || window.navigator.doNotTrack === '1' || false,
111-
iabConsent: {},
112-
mediation: {
113-
consent: mediation.consent,
114-
gdpr: mediation.gdpr,
82+
id: bid.bidId,
83+
action: 'getPlacement',
84+
app: siteId,
85+
placement: placementId,
86+
data: {
87+
pagecat: params.pageCategory ? params.pageCategory.split(',').map(k => k.trim()) : [],
88+
keywords: params.keywords ? params.keywords.split(',').map(k => k.trim()) : [],
89+
lang_content: document.documentElement.lang,
90+
lang: window.navigator.language,
91+
// TODO: are these the correct refererInfo values?
92+
domain: refererInfo.domain,
93+
page: refererInfo.page,
94+
ref: refererInfo.ref,
95+
userids: _getUserIDs(),
96+
geo: '',
97+
},
98+
complianceData: {
99+
child: '-1',
100+
us_privacy: uspConsent,
101+
dnt: window.navigator.doNotTrack,
102+
iabConsent: {},
103+
mediation: {
104+
consent: mediation.consent,
105+
gdpr: mediation.gdpr,
106+
}
107+
},
108+
integration: 'JS',
109+
omidpn: 'Displayio',
110+
mediationPlatform: 0,
111+
prebidVersion: BIDDER_VERSION,
112+
device: {
113+
w: window.screen.width,
114+
h: window.screen.height,
115+
connection_type: connection ? connection.effectiveType : '',
115116
}
116-
},
117-
integration: 'JS',
118-
omidpn: 'Displayio',
119-
mediationPlatform: 0,
120-
prebidVersion: ADAPTER_VERSION,
121-
device: {
122-
w: window.screen.width,
123-
h: window.screen.height,
124-
connection_type: connection ? connection.effectiveType : '',
125117
}
126118
}
119+
if (navigator.permissions) {
120+
navigator.permissions.query({ name: 'geolocation' })
121+
.then((result) => {
122+
if (result.state === 'granted') {
123+
payload.data.data.geo = _getGeoData();
124+
}
125+
});
126+
}
127+
return payload
127128
}
128-
}
129-
130-
function newRenderer(bid) {
131-
const renderer = Renderer.install({
132-
id: bid.requestId,
133-
url: bid.renderURL,
134-
adUnitCode: bid.adUnitCode
135-
});
129+
};
136130

131+
function _getUserIDs () {
132+
let ids = {};
137133
try {
138-
renderer.setRender(webisRender);
139-
} catch (err) {
140-
logWarn('Prebid Error calling setRender on renderer', err);
141-
}
142-
143-
return renderer;
134+
ids = window.owpbjs.getUserIdsAsEids();
135+
} catch (e) {}
136+
return ids;
144137
}
145138

146-
function webisRender(bid, doc) {
147-
bid.renderer.push(() => {
148-
const win = getWindowFromDocument(doc) || window;
149-
win.webis.init(bid.adData, bid.adUnitCode, bid.params);
150-
})
139+
async function _getGeoData () {
140+
let geoData = null;
141+
const getCurrentPosition = () => {
142+
return new Promise((resolve, reject) =>
143+
navigator.geolocation.getCurrentPosition(resolve, reject)
144+
);
145+
}
146+
try {
147+
const position = await getCurrentPosition();
148+
let {latitude, longitude, accuracy} = position.coords;
149+
geoData = {
150+
'lat': latitude,
151+
'lng': longitude,
152+
'precision': accuracy
153+
};
154+
} catch (e) {}
155+
return geoData
151156
}
152157

153158
registerBidder(spec);

0 commit comments

Comments
 (0)