Skip to content

Commit 1ef97b1

Browse files
author
Mat Brown
committed
Merge branch 'master' of https://github.com/prebid/Prebid.js into prebuilt
* 'master' of https://github.com/prebid/Prebid.js: inclusion of popular Nordic ad sizes to default size list (prebid#1168) pre release version bump Prebid 0.23.1 Release Add trafficSourceCode + test (prebid#1184) Clear cookie sync to prevent multiple calls (prebid#1181) change s2s adapter to filter out units with empty sizes array (prebid#1179) Sharethrough: Change to using a closure for the callback from ajax to preserve bidObj (prebid#1108) check array length when mapping sizes (prebid#1180) Bugfix/encoding url (prebid#1178)
2 parents 2f7895c + 0eba2bc commit 1ef97b1

11 files changed

+182
-87
lines changed

src/adapters/appnexus.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ AppNexusAdapter = function AppNexusAdapter() {
6161
}
6262

6363
jptCall = utils.tryAppendQueryString(jptCall, 'code', inventoryCode);
64+
jptCall = utils.tryAppendQueryString(jptCall, 'traffic_source_code', (utils.getBidIdParameter('trafficSourceCode', bid.params)));
6465

6566
//sizes takes a bit more logic
6667
var sizeQueryString = '';

src/adapters/prebidServer.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function PrebidServer() {
3131
timeout_millis : config.timeout,
3232
url: utils.getTopWindowUrl(),
3333
prebid_version : '$prebid.version$',
34-
ad_units : bidRequest.ad_units
34+
ad_units : bidRequest.ad_units.filter(hasSizes)
3535
};
3636

3737
const payload = JSON.stringify(requestJson);
@@ -41,6 +41,11 @@ function PrebidServer() {
4141
});
4242
};
4343

44+
// at this point ad units should have a size array either directly or mapped so filter for that
45+
function hasSizes(unit) {
46+
return unit.sizes && unit.sizes.length;
47+
}
48+
4449
/* Notify Prebid of bid responses so bids can get in the auction */
4550
function handleResponse(response) {
4651
let result;

src/adapters/rhythmone.js

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var bidmanager = require('../bidmanager.js'),
33
CONSTANTS = require('../constants.json');
44

55
import {ajax as ajax} from '../ajax';
6-
6+
77
module.exports = function(bidManager, global, loader){
88

99
var version = "0.9.0.0",
@@ -15,24 +15,24 @@ module.exports = function(bidManager, global, loader){
1515
loadStart,
1616
configuredPlacements = [],
1717
fat = /(^v|(\.0)+$)/gi;
18-
18+
1919
if(typeof global === "undefined")
2020
global = window;
21-
21+
2222
if(typeof bidManager === "undefined")
2323
bidManager = bidmanager;
24-
24+
2525
if(typeof loader === "undefined")
2626
loader = ajax;
27-
27+
2828
function applyMacros(txt, values){
2929
return txt.replace(/\{([^\}]+)\}/g, function(match){
3030
var v = values[match.replace(/[\{\}]/g, "").toLowerCase()];
3131
if(typeof v !== "undefined") return v;
3232
return match;
3333
});
3434
}
35-
35+
3636
function load(bidParams, url, callback){
3737
loader(url, function(responseText, response){
3838
if(response.status === 200)
@@ -49,7 +49,7 @@ module.exports = function(bidManager, global, loader){
4949
t = "application/x-shockwave-flash",
5050
x = global.ActiveXObject;
5151

52-
if(p &&
52+
if(p &&
5353
p["Shockwave Flash"] &&
5454
m &&
5555
m[t] &&
@@ -63,28 +63,28 @@ module.exports = function(bidManager, global, loader){
6363

6464
return false;
6565
}
66-
66+
6767
var bidderCode = "rhythmone";
68-
68+
6969
function attempt(valueFunction, defaultValue){
7070
try{
7171
return valueFunction();
7272
}catch(ex){}
7373
return defaultValue;
7474
}
75-
75+
7676
function logToConsole(txt){
7777
if(debug)
7878
console.log(txt);
7979
}
80-
80+
8181
function getBidParameters(bids){
8282
for(var i=0;i<bids.length;i++)
8383
if(typeof bids[i].params === "object" && bids[i].params.placementId)
8484
return bids[i].params;
8585
return null;
8686
}
87-
87+
8888
function noBids(params){
8989
for(var i=0; i<params.bids.length; i++){
9090
if(params.bids[i].success !== 1){
@@ -95,26 +95,26 @@ module.exports = function(bidManager, global, loader){
9595
}
9696
}
9797
}
98-
98+
9999
function getRMPURL(bidParams, bids){
100100
var endpoint = "//tag.1rx.io/rmp/{placementId}/0/{path}?z={zone}",
101101
query = [];
102102

103103
if(typeof bidParams.endpoint === "string")
104104
endpoint = bidParams.endpoint;
105-
105+
106106
if(typeof bidParams.zone === "string")
107107
defaultZone = bidParams.zone;
108-
108+
109109
if(typeof bidParams.path === "string")
110110
defaultPath = bidParams.path;
111-
111+
112112
if(bidParams.debug === true)
113113
debug = true;
114-
114+
115115
if(bidParams.trace === true)
116116
query.push("trace=true");
117-
117+
118118
endpoint = applyMacros(endpoint, {
119119
placementid:bidParams.placementId,
120120
zone: defaultZone,
@@ -146,24 +146,24 @@ module.exports = function(bidManager, global, loader){
146146
p("tz", (new Date()).getTimezoneOffset());
147147
p("dtype", ((/(ios|ipod|ipad|iphone|android)/i).test(global.navigator.userAgent) ? 1 : ((/(smart[-]?tv|hbbtv|appletv|googletv|hdmi|netcast\.tv|viera|nettv|roku|\bdtv\b|sonydtv|inettvbrowser|\btv\b)/i).test(global.navigator.userAgent) ? 3 : 2)));
148148
p("flash", (flashInstalled() ? 1 : 0));
149-
149+
150150
var heights = [],
151151
widths = [],
152152
floors = [],
153153
mediaTypes = [],
154154
i=0;
155155

156156
configuredPlacements = [];
157-
157+
158158
p("hbv", global.$$PREBID_GLOBAL$$.version.replace(fat,"")+","+version.replace(fat,""));
159-
159+
160160
for(; i<bids.length; i++){
161161

162162
var th = [], tw = [];
163-
163+
164164
if(bids[i].sizes.length > 0 && typeof bids[i].sizes[0] === "number")
165165
bids[i].sizes = [bids[i].sizes];
166-
166+
167167
for(var j = 0; j<bids[i].sizes.length; j++){
168168
tw.push(bids[i].sizes[j][0]);
169169
th.push(bids[i].sizes[j][1]);
@@ -174,18 +174,18 @@ module.exports = function(bidManager, global, loader){
174174
mediaTypes.push(((/video/i).test(bids[i].mediaType) ? "v" : "d"));
175175
floors.push(0);
176176
}
177-
177+
178178
p("imp", configuredPlacements);
179179
p("w", widths);
180180
p("h", heights);
181181
p("floor", floors);
182182
p("t", mediaTypes);
183-
183+
184184
endpoint += "&"+query.join("&");
185-
185+
186186
return endpoint;
187187
}
188-
188+
189189
function sendAuditBeacon(placementId){
190190
var data = {
191191
doc_version : 1,
@@ -196,41 +196,41 @@ module.exports = function(bidManager, global, loader){
196196
q = [],
197197
u = "//hbevents.1rx.io/audit?",
198198
i = new Image();
199-
199+
200200
if(ao && ao.length > 0){
201201
data.ancestor_origins = ao[ao.length-1];
202-
}
203-
202+
}
203+
204204
data.popped = window.opener!==null?1:0;
205205
data.framed = window.top===window?0:1;
206-
206+
207207
try{
208208
data.url = window.top.document.location.href.toString();
209209
}catch(ex){
210210
data.url = window.document.location.href.toString();
211211
}
212-
212+
213213
var prebid_instance = global.$$PREBID_GLOBAL$$;
214-
214+
215215
data.prebid_version = prebid_instance.version.replace(fat,"");
216216
data.response_ms = (new Date()).getTime() - loadStart;
217217
data.placement_codes = configuredPlacements.join(",");
218218
data.bidder_version = version;
219219
data.prebid_timeout = prebid_instance.cbTimeout || prebid_instance.bidderTimeout;
220-
220+
221221
for(var k in data){
222222
q.push(encodeURIComponent(k)+"="+encodeURIComponent((typeof data[k] === "object" ? JSON.stringify(data[k]) : data[k])));
223-
}
223+
}
224224

225225
q.sort();
226226
i.src = u+q.join("&");
227227
}
228-
228+
229229
this.callBids = function(params){
230230

231231
var slotMap = {},
232232
bidParams = getBidParameters(params.bids);
233-
233+
234234
debug = (bidParams !== null && bidParams.debug === true);
235235

236236
if(bidParams === null){
@@ -240,7 +240,7 @@ module.exports = function(bidManager, global, loader){
240240

241241
for(var i = 0; i<params.bids.length; i++)
242242
slotMap[params.bids[i].placementCode] = params.bids[i];
243-
243+
244244
loadStart = (new Date()).getTime();
245245
load(bidParams, getRMPURL(bidParams, params.bids), function(code, msg, txt){
246246

@@ -255,32 +255,32 @@ module.exports = function(bidManager, global, loader){
255255
try{
256256
var result = JSON.parse(txt),
257257
registerBid = function(bid){
258-
258+
259259
slotMap[bid.impid].success = 1;
260-
260+
261261
var pbResponse = bidfactory.createBid(CONSTANTS.STATUS.GOOD),
262262
placementCode = slotMap[bid.impid].placementCode;
263-
263+
264264
placementCodes[placementCode] = false;
265-
265+
266266
pbResponse.bidderCode = bidderCode;
267267
pbResponse.cpm = parseFloat(bid.price);
268268
pbResponse.width = bid.w;
269269
pbResponse.height = bid.h;
270-
270+
271271
if((/video/i).test(slotMap[bid.impid].mediaType)){
272272
pbResponse.mediaType = "video";
273273
pbResponse.vastUrl = bid.nurl;
274274
pbResponse.descriptionUrl = bid.nurl;
275275
}
276276
else
277277
pbResponse.ad = bid.adm;
278-
278+
279279
logToConsole("registering bid "+placementCode+" "+JSON.stringify(pbResponse));
280-
280+
281281
bidManager.addBidResponse(placementCode, pbResponse);
282282
};
283-
283+
284284
for(i=0; result.seatbid && i<result.seatbid.length; i++)
285285
for(var j=0; result.seatbid[i].bid && j<result.seatbid[i].bid.length; j++){
286286
registerBid(result.seatbid[i].bid[j]);
@@ -292,7 +292,7 @@ module.exports = function(bidManager, global, loader){
292292
// if no bids are successful, inform prebid
293293
noBids(params);
294294
});
295-
295+
296296
logToConsole("version: "+version);
297297
};
298-
};
298+
};

src/adapters/rubicon.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ var sizeMap = {
2727
15:'300x250',
2828
16:'336x280',
2929
19:'300x100',
30+
31:'980x120',
31+
32:'250x360',
32+
33:'180x500',
33+
35:'980x150',
34+
37:'468x400',
35+
38:'930x180',
3036
43:'320x50',
3137
44:'300x50',
3238
48:'300x300',
@@ -41,11 +47,15 @@ var sizeMap = {
4147
68:'1800x1000',
4248
72:'320x320',
4349
73:'320x160',
50+
78:'980x240',
51+
79:'980x300',
52+
80:'980x400',
4453
83:'480x300',
4554
94:'970x310',
4655
96:'970x210',
4756
101:'480x320',
4857
102:'768x1024',
58+
103:'480x280',
4959
113:'1000x300',
5060
117:'320x100',
5161
125:'800x250',

src/adapters/sharethrough.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var bidfactory = require('../bidfactory.js');
44
var ajax = require('../ajax.js').ajax;
55

66
const STR_BIDDER_CODE = "sharethrough";
7-
const STR_VERSION = "1.1.0";
7+
const STR_VERSION = "1.2.0";
88

99
var SharethroughAdapter = function SharethroughAdapter() {
1010

@@ -22,10 +22,16 @@ var SharethroughAdapter = function SharethroughAdapter() {
2222
const bidRequest = bids[i];
2323
str.placementCodeSet[bidRequest.placementCode] = bidRequest;
2424
const scriptUrl = _buildSharethroughCall(bidRequest);
25-
str.ajax(scriptUrl, $$PREBID_GLOBAL$$.strcallback, undefined, {withCredentials: true});
25+
str.ajax(scriptUrl, _createCallback(bidRequest), undefined, {withCredentials: true});
2626
}
2727
}
2828

29+
function _createCallback(bidRequest) {
30+
return (bidResponse) => {
31+
_strcallback(bidRequest, bidResponse);
32+
};
33+
}
34+
2935
function _buildSharethroughCall(bid) {
3036
const pkey = utils.getBidIdParameter('pkey', bid.params);
3137

@@ -39,17 +45,10 @@ var SharethroughAdapter = function SharethroughAdapter() {
3945
return url;
4046
}
4147

42-
$$PREBID_GLOBAL$$.strcallback = function(bidResponse) {
48+
function _strcallback(bidObj, bidResponse) {
4349
try {
4450
bidResponse = JSON.parse(bidResponse);
45-
} catch (e) {
46-
utils.logError(e);
47-
return;
48-
}
49-
50-
const bidId = bidResponse.bidId;
51-
const bidObj = utils.getBidRequest(bidId);
52-
try {
51+
const bidId = bidResponse.bidId;
5352
const bid = bidfactory.createBid(1, bidObj);
5453
bid.bidderCode = STR_BIDDER_CODE;
5554
bid.cpm = bidResponse.creatives[0].cpm;
@@ -84,7 +83,7 @@ var SharethroughAdapter = function SharethroughAdapter() {
8483
} catch (e) {
8584
_handleInvalidBid(bidObj);
8685
}
87-
};
86+
}
8887

8988
function _handleInvalidBid(bidObj) {
9089
const bid = bidfactory.createBid(2, bidObj);

0 commit comments

Comments
 (0)