Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latest Pull #1

Merged
merged 91 commits into from
Nov 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
175a7ca
add a check against the size config when setting targeting (#3183)
snapwich Oct 17, 2018
c238e68
add stub for adloader.loadScript in various adapter test files (#3193)
jsnellbaker Oct 17, 2018
ea96547
fix simon spy.reset deprecation warning
snapwich Oct 17, 2018
73e7014
Stub adloader across the board to prevent requests going out (#3196)
snapwich Oct 17, 2018
a62e088
Add buyer bid adapter (#3200)
avj83 Oct 19, 2018
6879fea
Adlive bid adapter (#3109)
Oct 19, 2018
b8eb55c
Add native support to RTBHouseAdapter (#3189)
Kamoris Oct 19, 2018
86357a8
Ref and meta keyword collection feature (#3184)
ckbo3hrk Oct 19, 2018
3178468
use referrer detection module (#3188)
jsalis Oct 22, 2018
db67744
ZEDO - Updated Documentation (#3192)
skazedo Oct 22, 2018
52b8a77
change domain of sync URL (#3207)
naffis Oct 22, 2018
bf3b3ae
rename buyer to dspx (#3210)
avj83 Oct 22, 2018
14d3031
Fixes #3197 - call auctionDone() when 'No valid bid requests returned…
drdmitry Oct 23, 2018
ebca05a
[Update rexrtbBidAdapter] Update default host (#3217)
prebidRxRTB Oct 23, 2018
47d726a
adds height and width params to request (#3215)
HolzAndrew Oct 23, 2018
b4705e3
Rubicon adapter: Removed extraneous warning (#3218)
bretg Oct 23, 2018
6213708
updates jcsi (#3220)
susyt Oct 23, 2018
a7b143d
Prebid 1.29.0 Release
bretg Oct 23, 2018
8159d40
Increment pre version
bretg Oct 23, 2018
bd3cb66
add proper cleanup to realvu analytics (#3195)
snapwich Oct 23, 2018
5e27370
Submitting EMX Digital Adapter (#3173)
EMXDigital Oct 24, 2018
2863df1
TheMediaGrid Bid Adapter (#3204)
TheMediaGrid Oct 25, 2018
50a7cff
Adding user sync method for IFRAME and Pixel (#3232)
EMXDigital Oct 25, 2018
5743e2b
updates (#3162)
GLStephen Oct 26, 2018
6363197
Only set native targeting if value exists. (#3225)
nanek Oct 26, 2018
e1f55ce
add nolint command line option, similar to notest (#3234)
snapwich Oct 26, 2018
fda63ec
add inskin iab vendor id: enables consent via string (#3235)
micha Oct 26, 2018
67b24c9
Added user sync support for undertone bid adapter (#3172)
omerko Oct 29, 2018
4c085b8
Updating Auction Init Pick for timestamp + Test update (#3223)
Oct 30, 2018
50d5097
Add code, test, and doc for Adikteev adapter (#3229)
piotr-yuxuan Oct 30, 2018
9ddb20b
Quantcast adapter onTimeout (#3239)
jacekburys-quantcast Oct 30, 2018
903743a
Test cleanup (#3238)
snapwich Oct 30, 2018
0de2478
Appnexus adapter: Added dealPriority and dealCode to bidResponse (#3201)
jaiminpanchal27 Oct 30, 2018
5481af9
use unit id being sent instead of hard coded auid (#3236)
HolzAndrew Oct 30, 2018
6649ef9
Prebid 1.30.0 Release
jsnellbaker Oct 30, 2018
ab703ac
increment pre version
jsnellbaker Oct 30, 2018
2c5685c
fix deal targeting for cpm 0 (#3233)
snapwich Oct 31, 2018
d25f571
YIELDONE adapter - support Video (#3227)
kusapan Nov 1, 2018
d854db3
rtbhouseBidAdapter changes (#3241)
Kamoris Nov 1, 2018
ec023ba
correct user agent value population (#3248)
ankur-modi Nov 1, 2018
728465c
Increase timeoutBuffer default to 400 ms (#3258)
jaiminpanchal27 Nov 2, 2018
033b151
Ensure transaction ID is always unique (#3190)
naegelin Nov 2, 2018
1110e25
Add canonical url to referer info (#3254)
jaiminpanchal27 Nov 5, 2018
5e1c996
Bidfluence adapter 1.x (#3244)
francescocristallo Nov 5, 2018
432c656
Rivr Analytics Adapter (#3202)
Nov 5, 2018
db24dea
MarsMedia analytic adpater to use PREBID_GLOBAL than hard-coded pbjs …
pm-harshad-mane Nov 5, 2018
7fe95d8
On set targeting (#3203)
jsfaure Nov 6, 2018
01e6718
Added trackers in ZEDO adapter (#3240)
skazedo Nov 6, 2018
0d5ea4b
Rubicon analytics site zone (#3242)
Nov 6, 2018
3b541a3
Multi currency (#3250)
teranchristian Nov 6, 2018
4153788
Altering logic to determine if is video bid or not + update tests (#3…
Nov 6, 2018
6456231
COX COMET Bid adapter removed (#3260)
SergeyRudakov Nov 6, 2018
ec47ed0
Modified how gdpr info is being sent from adapter (#3253)
bjorn-lw Nov 6, 2018
7a5ca11
appnexus adapter support empty keyvalues in bidder params (#3257)
jsnellbaker Nov 6, 2018
05ba9e0
"Prebid 1.31.0 Release"
Nov 6, 2018
1f9e624
Increment pre version
Nov 6, 2018
3d9f5c5
fix undertone adapter user sync url (#3271)
omerko Nov 7, 2018
459a2e2
Revert "fix undertone adapter user sync url (#3271)" (#3273)
omerko Nov 7, 2018
d644363
TripleliftBidAdapter - remove dependency on getTopWindowLocation util…
brittanyzellman Nov 7, 2018
b17a11e
update AdGeneration adapter (#3228)
banakemi Nov 7, 2018
8c78cde
adding Prebid.js version to request in quantcastBidAdapter (#3230)
jacekburys-quantcast Nov 7, 2018
2206ba4
add logic to resize AST divs and iframes (#3206)
jsnellbaker Nov 8, 2018
143d1b0
Add Prebid.js version to the request (#3280)
glebglushtsov Nov 8, 2018
bf2dc9c
Tag level params passed to renderer in ZEDO Adapter (#3279)
skazedo Nov 8, 2018
a4e8c49
Adform openrtb adapter (#3245)
Pupis Nov 8, 2018
a186c83
Criteo adapter handles onSetTargeting and onBidWon (#3276)
jsfaure Nov 8, 2018
771db1c
fix: secure kargoBidAdapter against wrong Array extensions (#3275)
sielay Nov 8, 2018
1b5b83e
Add nextMilleniumBidAdapter (#3249)
Nov 12, 2018
7904190
Alias for adkernelAdn adapter (#3289)
ckbo3hrk Nov 12, 2018
40c8284
add support for platform ids (#3282)
rjvelicaria Nov 13, 2018
e834735
handles empty responses in getUserSyncs & add tests - ajaBidAdapter (…
pokutuna Nov 13, 2018
c7482b5
Prebid 1.32.0 Release
jsnellbaker Nov 13, 2018
aa61b76
increment pre version
jsnellbaker Nov 13, 2018
433efea
kargo adapter deal support (#3292)
samuelhorwitz Nov 14, 2018
3320a83
Add new alias for Adtelligent adapter (#3295)
GeneGenie Nov 14, 2018
259af19
Updated Sovrn Bid Adaptor for MultiSized and added Error Call Home. (…
jrosendahl Nov 15, 2018
8f53dca
update the TTL for winning bids to 30s (#3296)
naffis Nov 15, 2018
186ee66
only set mediaTypes.banner.sizes from sizes if mediaTypes doesn't exi…
snapwich Nov 15, 2018
6c4243c
OpenX analytics adapter (#3285)
haohany Nov 16, 2018
e1fb3a8
Triplelift - update creativeId (#3305)
brittanyzellman Nov 16, 2018
155dd8a
otm (#3302)
fedotxxl Nov 16, 2018
f5890e8
Updating bidrequestvalid and protocol checks. (#3297)
EMXDigital Nov 16, 2018
836acf7
Quantcast supporting instream video (#3303)
jacekburys-quantcast Nov 20, 2018
706f569
Do not load external js if renderer defined on adUnit (#3284)
jaiminpanchal27 Nov 20, 2018
e562c62
Prebid 1.33.0 Release
Nov 20, 2018
4c31200
Increment Pre Version
Nov 20, 2018
aed272f
YieldbotBidAdapter to use implicit document open via write (#3313)
elljoh Nov 21, 2018
4b14844
- vertoz adaptor response params updated (#3316)
mohit546 Nov 21, 2018
f8b14ec
Rename adformOpenRTBBidAdapter (#3318)
Pupis Nov 21, 2018
e90b5d5
Added 930x600 to Rubicon Adapter (#3323)
hdeodhar Nov 26, 2018
7990f92
PubMatic adapter to support TTD (#3311)
pm-harshad-mane Nov 27, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ function escapePostbidConfig() {
};
escapePostbidConfig.displayName = 'escape-postbid-config';

function lint() {
function lint(done) {
if (argv.nolint) {
return done();
}
return gulp.src(['src/**/*.js', 'modules/**/*.js', 'test/**/*.js'])
.pipe(eslint())
.pipe(eslint.format('stylish'))
Expand Down
93 changes: 93 additions & 0 deletions integrationExamples/gpt/hello_world_adikteev.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<html>

<head>
<link rel="icon" type="image/png" href="/favicon.png">
<script async src="//www.googletagservices.com/tag/js/gpt.js"></script>
<script type="text/javascript" src="../../build/dev/prebid.js" async></script>
<script>
var sizes = [
[300, 250],
[250, 300],
[300, 600]
];
var PREBID_TIMEOUT = 3000;
var FAILSAFE_TIMEOUT = 3000;

var adUnits = [{
code: '/19968336/header-bid-tag-1',
mediaTypes: {
banner: {
sizes: sizes
}
},
bids: [{
bidder: 'adikteev',
params: {
placementId: 13144370,
stagingEnvironment: true,
bidFloorPrice: 0.1,
}
}]
}];

// ======== DO NOT EDIT BELOW THIS LINE =========== //
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(function () {
googletag.pubads().disableInitialLoad();
});

var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];

pbjs.que.push(function () {
pbjs.addAdUnits(adUnits);
pbjs.requestBids({
bidsBackHandler: initAdserver,
timeout: PREBID_TIMEOUT
});
});

function initAdserver() {
if (pbjs.initAdserverSet) return;
pbjs.initAdserverSet = true;
googletag.cmd.push(function () {
pbjs.que.push(function () {
pbjs.setTargetingForGPTAsync();
googletag.pubads().refresh();
});
});
}


// in case PBJS doesn't load
setTimeout(function () {
console.log("prebid.js setTimeout");
initAdserver();
}, FAILSAFE_TIMEOUT);

googletag.cmd.push(function () {
googletag.defineSlot('/19968336/header-bid-tag-1', sizes, 'div-1')
.addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});

</script>

</head>

<body>
<h2>Basic Prebid.js Example</h2>
<h5>Div-1</h5>
<div id='div-1'>
<script type='text/javascript'>
googletag.cmd.push(function () {
googletag.display('div-1');
});

</script>
</div>
</body>

</html>
11 changes: 9 additions & 2 deletions integrationExamples/gpt/pbjs_example_gpt.html
Original file line number Diff line number Diff line change
Expand Up @@ -312,8 +312,15 @@
width: '300',
height: '250',
}
}

},
{
bidder: 'adikteev',
params: {
placementId: 12345,
currency: 'EUR',
bidFloorPrice: 0.1,
}
},
]
}, {
code: 'div-gpt-ad-12345678-1',
Expand Down
8 changes: 8 additions & 0 deletions modules/33acrossBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,14 @@ function _createServerRequest(bidRequest, gdprConsent) {
gdpr: (gdprConsent.gdprApplies === true) ? 1 : 0
}
};
ttxRequest.ext = {
ttx: {
caller: [{
'name': 'prebidjs',
'version': '$prebid.version$'
}]
}
}

// Finally, set the openRTB 'test' param if this is to be a test bid
if (params.test === 1) {
Expand Down
173 changes: 173 additions & 0 deletions modules/adformOpenRTBBidAdapter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
// jshint esversion: 6, es3: false, node: true
'use strict';

import {
registerBidder
} from 'src/adapters/bidderFactory';
import {
NATIVE
} from 'src/mediaTypes';
import * as utils from 'src/utils';

const BIDDER_CODE = 'adformOpenRTB';
const NATIVE_ASSET_IDS = { 0: 'title', 2: 'icon', 3: 'image', 5: 'sponsoredBy', 4: 'body', 1: 'cta' };
const NATIVE_PARAMS = {
title: {
id: 0,
name: 'title'
},
icon: {
id: 2,
type: 1,
name: 'img'
},
image: {
id: 3,
type: 3,
name: 'img'
},
sponsoredBy: {
id: 5,
name: 'data',
type: 1
},
body: {
id: 4,
name: 'data',
type: 2
},
cta: {
id: 1,
type: 12,
name: 'data'
}
};

export const spec = {
code: BIDDER_CODE,
supportedMediaTypes: [ NATIVE ],
isBidRequestValid: bid => !!bid.params.mid,
buildRequests: (validBidRequests, bidderRequest) => {
const page = bidderRequest.refererInfo.referer;
const adxDomain = setOnAny(validBidRequests, 'params.adxDomain') || 'adx.adform.net';
const ua = navigator.userAgent;
const pt = setOnAny(validBidRequests, 'params.pt') || setOnAny(validBidRequests, 'params.priceType') || 'net';
const tid = validBidRequests[0].transactionId; // ??? check with ssp
const test = setOnAny(validBidRequests, 'params.test');
const publisher = setOnAny(validBidRequests, 'params.publisher');
const siteId = setOnAny(validBidRequests, 'params.siteId');

const imp = validBidRequests.map((bid, id) => {
bid.netRevenue = pt;
const assets = utils._map(bid.nativeParams, (bidParams, key) => {
const props = NATIVE_PARAMS[key];
const asset = {
required: bidParams.required & 1,
};
if (props) {
asset.id = props.id;
asset[props.name] = {
len: bidParams.len,
wmin: bidParams.sizes && bidParams.sizes[0],
hmin: bidParams.sizes && bidParams.sizes[1],
type: props.type
};

return asset;
}
}).filter(Boolean);

return {
id: id + 1,
tagid: bid.params.mid,
native: {
request: {
assets
}
}
};
});

const request = {
id: bidderRequest.auctionId,
site: { id: siteId, page, publisher },
device: { ua },
source: { tid, fd: 1 },
ext: { pt },
imp
};

if (test) {
request.is_debug = !!test;
request.test = 1;
}
if (utils.deepAccess(bidderRequest, 'gdprConsent.gdprApplies')) {
request.user = { ext: { consent: bidderRequest.gdprConsent.consentString } };
request.regs = { ext: { gdpr: bidderRequest.gdprConsent.gdprApplies & 1 } };
}

return {
method: 'POST',
url: '//' + adxDomain + '/adx/openrtb',
data: JSON.stringify(request),
options: {
contentType: 'application/json'
},
bids: validBidRequests
};
},
interpretResponse: function(serverResponse, { bids }) {
if (!serverResponse.body) {
return;
}
const { seatbid, cur } = serverResponse.body;

return bids.map((bid, id) => {
const _cbid = seatbid && seatbid[id] && seatbid[id].bid;
const bidResponse = _cbid && _cbid[0];
if (bidResponse) {
return {
requestId: bid.bidId,
cpm: bidResponse.price,
creativeId: bidResponse.crid,
ttl: 360,
netRevenue: bid.netRevenue === 'net',
currency: cur,
mediaType: NATIVE,
bidderCode: BIDDER_CODE,
native: parseNative(bidResponse)
};
}
}).filter(Boolean);
}
};

registerBidder(spec);

function parseNative(bid) {
const { assets, link, imptrackers, jstracker } = bid.native;
const result = {
clickUrl: link.url,
clickTrackers: link.clicktrackers || undefined,
impressionTrackers: imptrackers || undefined,
javascriptTrackers: jstracker ? [ jstracker ] : undefined
};
assets.forEach(asset => {
const kind = NATIVE_ASSET_IDS[asset.id];
const content = kind && asset[NATIVE_PARAMS[kind].name];
if (content) {
result[kind] = content.text || content.value || { url: content.url, width: content.w, height: content.h };
}
});

return result;
}

function setOnAny(collection, key) {
for (let i = 0, result; i < collection.length; i++) {
result = utils.deepAccess(collection[i], key);
if (result) {
return result;
}
}
}
59 changes: 59 additions & 0 deletions modules/adformOpenRTBBidAdapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Overview

Module Name: Adform OpenRTB Adapter
Module Type: Bidder Adapter
Maintainer: Scope.FL.Scripts@adform.com

# Description

Module that connects to Adform demand sources to fetch bids.
Only native format is supported. Using OpenRTB standard.

# Test Parameters
```
var adUnits = [
code: '/19968336/prebid_native_example_1',
sizes: [
[360, 360]
],
mediaTypes: {
native: {
image: {
required: false,
sizes: [100, 50]
},
title: {
required: false,
len: 140
},
sponsoredBy: {
required: false
},
clickUrl: {
required: false
},
body: {
required: false
},
icon: {
required: false,
sizes: [50, 50]
}
}
},
bids: [{
bidder: 'adformOpenRTB',
params: {
mid: 606169, // required
adxDomain: 'axd.adform.net', // optional
siteId: '23455', // optional
priceType: 'gross' // optional, default is 'net'
publisher: { // optional block
id: "2706",
name: "Publishers Name",
domain: "publisher.com"
}
}
}]
];
```
Loading