Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
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
ae42588
RVR-1124 Setup initial skeleton analytics adapter that can send somet…
May 14, 2018
4aa0799
Formatted auction/events data to fit needed schema.
Wozniaxos May 14, 2018
08a438f
Applied feedback.
Wozniaxos May 17, 2018
8bea7bc
RVR-1135 fetched device data.
Wozniaxos May 16, 2018
316aaea
Applied feedback.
Wozniaxos May 17, 2018
5ad40bd
Fetched core.
Wozniaxos May 17, 2018
8314ce2
Added click handler for reporting banners click events.
Wozniaxos May 18, 2018
cf19b68
Applied analyzer for reporting displayed impressions.
Wozniaxos May 18, 2018
3abcf53
Applied feedback.
Wozniaxos May 22, 2018
9d655d2
Merged in RVR-1214-invoke-handlers-on-rendering (pull request #7)
May 24, 2018
9d2e6c6
Merged in RVR-1192-configuration-global-parameters (pull request #8)
May 24, 2018
531fedf
Merged in RVR-1181-Prebid-js-unit-tests-setup (pull request #6)
May 25, 2018
f70992f
Merged in RVR-1247-additional-data-to-impression-records (pull reques…
May 25, 2018
ddbd018
Merged in RVR-1249-add-requestedbids-to-auction (pull request #10)
May 25, 2018
e7e28ac
Merged in RVR-1261-fix-tests (pull request #11)
May 30, 2018
3b2d283
RVR-1352 analytics adapter bugs
Jun 13, 2018
5f692b2
Fixed bug with geolocation notification.
Wozniaxos Jun 13, 2018
9c98d85
fixed missing bracket.
Wozniaxos Jun 13, 2018
eb6bba3
one more fix.
Wozniaxos Jun 13, 2018
f654565
RVR-1357 Different optimisation responses & tracking into auction event
Jun 26, 2018
2a3923a
RVR-1852 - Add content type and hardcoded auth headers
AlessandroDG Aug 30, 2018
ebf8f54
RVR-1852 - Change tracker host
AlessandroDG Aug 31, 2018
07bc09f
RVR-1852 - Override content type instead of adding header
AlessandroDG Aug 31, 2018
53d2493
RVR-1914 Consistent data types in events
AlessandroDG Sep 13, 2018
849897f
Merged in RVR-1883-Add-Basic-Access-Authentication (pull request #17)
AlessandroDG Sep 17, 2018
77e39d5
Increase code coverage
AlessandroDG Oct 1, 2018
4ca7c57
Fix for IE 11.0.0 and Safari 8.0.8 - includes()
AlessandroDG Oct 17, 2018
099fe28
Restore pbjs_api_spec.js
AlessandroDG Oct 19, 2018
e489aed
Fix API calls for rivr analytics impressions and clicks
AlessandroDG Oct 23, 2018
37fabf1
RVR-2005 - Change auction object model
AlessandroDG Oct 31, 2018
d4c5378
RVR-2005 - Set rvr_usr_id cookie
AlessandroDG Nov 1, 2018
47126c4
RVR-2005 - Remove BID_REQUESTED and BID_RESPONSE handlers
AlessandroDG Nov 1, 2018
7f9be8f
RVR-2005 - build Bidders Array From Auction End
AlessandroDG Nov 1, 2018
11bd673
RVR-2005 - build impressions Array From Auction End
AlessandroDG Nov 2, 2018
f21dd12
RVR-2005 - set status of winning bid
AlessandroDG Nov 2, 2018
924d683
RVR-2005 - cleanup
AlessandroDG Nov 2, 2018
6252ac2
RVR-2005 - adapt enableAnalytics() test
AlessandroDG Nov 2, 2018
c60d124
RVR-2005 - adapt all tests
AlessandroDG Nov 2, 2018
cdbd413
RVR-2005 - Add Rivr Analytics adapter md file
AlessandroDG Nov 2, 2018
f38fb3b
RVR-2005 - rewrite connectAllUnits
AlessandroDG Nov 2, 2018
41430e6
RVR-2005 - correct typo
AlessandroDG Nov 2, 2018
88d8121
RVR-2005 - use IE compatible find()
AlessandroDG Nov 2, 2018
e3f3e65
Merge branch 'Rivr-Analytics-Adapter' into RVR-2005-Rvr-Analytics-Ada…
Nov 2, 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
94 changes: 94 additions & 0 deletions modules/adikteevBidAdapter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import {registerBidder} from 'src/adapters/bidderFactory';
import {BANNER} from 'src/mediaTypes';
import * as utils from '../src/utils';
import {config} from 'src/config';

export const BIDDER_CODE = 'adikteev';
export const ENDPOINT_URL = 'https://serve-adserver.adikteev.com/api/prebid/bid';
export const ENDPOINT_URL_STAGING = 'https://serve-adserver-staging.adikteev.com/api/prebid/bid';
export const USER_SYNC_IFRAME_URL = 'https://serve-adserver.adikteev.com/api/prebid/sync-iframe';
export const USER_SYNC_IFRAME_URL_STAGING = 'https://serve-adserver-staging.adikteev.com/api/prebid/sync-iframe';
export const USER_SYNC_IMAGE_URL = 'https://serve-adserver.adikteev.com/api/prebid/sync-image';
export const USER_SYNC_IMAGE_URL_STAGING = 'https://serve-adserver-staging.adikteev.com/api/prebid/sync-image';

export let stagingEnvironmentSwitch = false; // Don't use it. Allow us to make tests on staging

export function setstagingEnvironmentSwitch(value) {
stagingEnvironmentSwitch = value;
}

function validateSizes(sizes) {
if (!utils.isArray(sizes) || typeof sizes[0] === 'undefined') {
return false;
}
return sizes.every(size => utils.isArray(size) && size.length === 2);
}

export const spec = {
code: BIDDER_CODE,
supportedMediaTypes: [BANNER],

isBidRequestValid: (bid) => {
setstagingEnvironmentSwitch(stagingEnvironmentSwitch || !!bid.params.stagingEnvironment);
return !!(
bid &&
bid.params &&
bid.params.bidFloorPrice &&
bid.params.placementId &&
bid.bidder === BIDDER_CODE &&
validateSizes(bid.mediaTypes.banner.sizes)
);
},

buildRequests: (validBidRequests, bidderRequest) => {
const payload = {
validBidRequests,
bidderRequest,
refererInfo: bidderRequest.refererInfo,
currency: config.getConfig('currency'),
userAgent: navigator.userAgent,
screen: {
width: window.screen.width,
height: window.screen.height
},
language: navigator.language,
cookies: document.cookie.split(';'),
prebidUpdateVersion: '1.29.0',
};
return {
method: 'POST',
url: stagingEnvironmentSwitch ? ENDPOINT_URL_STAGING : ENDPOINT_URL,
data: JSON.stringify(payload),
};
},

interpretResponse: (serverResponse, bidRequests) => {
const returnedBids = [];
const validBidRequests = JSON.parse(bidRequests.data).validBidRequests;
serverResponse.body.forEach((value, index) => {
const overrides = {
requestId: validBidRequests[index].bidId,
};
returnedBids.push(Object.assign({}, value, overrides));
});
return returnedBids;
},

getUserSyncs: (syncOptions, serverResponses) => {
const syncs = [];
if (syncOptions.iframeEnabled) {
syncs.push({
type: 'iframe',
url: stagingEnvironmentSwitch ? USER_SYNC_IFRAME_URL_STAGING : USER_SYNC_IFRAME_URL,
});
}
if (syncOptions.pixelEnabled && serverResponses.length > 0) {
syncs.push({
type: 'image',
url: stagingEnvironmentSwitch ? USER_SYNC_IMAGE_URL_STAGING : USER_SYNC_IMAGE_URL,
});
}
return syncs;
},
};
registerBidder(spec);
35 changes: 35 additions & 0 deletions modules/adikteevBidAdapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Overview

```
Module Name: Adikteev Bidder Adapter
Module Type: Bidder Adapter
Maintainer: adnetwork@adikteev.com
```

# Description

Module that connects to Adikteev's demand sources

# Test Parameters

``` javascript
var adUnits = [
{
code: 'test-div',
mediaTypes: {
banner: {
sizes: [[750, 200]], // a display size
}
},
bids: [
{
bidder: 'adikteev',
params: {
placementId: 12345,
bidFloorPrice: 0.1,
}
}
]
}
];
```
4 changes: 3 additions & 1 deletion modules/appnexusBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ function newBid(serverBid, rtbBid, bidderRequest) {
netRevenue: true,
ttl: 300,
appnexus: {
buyerMemberId: rtbBid.buyer_member_id
buyerMemberId: rtbBid.buyer_member_id,
dealPriority: rtbBid.deal_priority,
dealCode: rtbBid.deal_code
}
};

Expand Down
124 changes: 124 additions & 0 deletions modules/emx_digitalBidAdapter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import * as utils from 'src/utils';
import {
registerBidder
} from 'src/adapters/bidderFactory';
import {
BANNER
} from 'src/mediaTypes';
import {
config
} from 'src/config';

const BIDDER_CODE = 'emx_digital';
const ENDPOINT = 'hb.emxdgt.com';
export const spec = {
code: BIDDER_CODE,
supportedMediaTypes: [BANNER],
isBidRequestValid: function (bid) {
return !!(bid.params.tagid);
},
buildRequests: function (validBidRequests, bidRequests) {
const {host, href, protocol} = utils.getTopWindowLocation();
let emxData = {};
let emxImps = [];
const auctionId = bidRequests.auctionId;
const timeout = config.getConfig('bidderTimeout');
const timestamp = Date.now();
const url = location.protocol + '//' + ENDPOINT + ('?t=' + timeout + '&ts=' + timestamp);

utils._each(validBidRequests, function (bid) {
let tagId = String(utils.getBidIdParameter('tagid', bid.params));
let bidFloor = utils.getBidIdParameter('bidfloor', bid.params) || 0;
let emxBid = {
id: bid.bidId,
tid: bid.transactionId,
tagid: tagId,
secure: protocol === 'https:' ? 1 : 0,
banner: {
format: bid.sizes.map(function (size) {
return {
w: size[0],
h: size[1]
};
}),
w: bid.sizes[0][0],
h: bid.sizes[0][1]
}
}
if (bidFloor > 0) {
emxBid.bidfloor = bidFloor
}
emxImps.push(emxBid);
});
emxData = {
id: auctionId,
imp: emxImps,
site: {
domain: host,
page: href
}
};
if (bidRequests.gdprConsent) {
emxData.regs = {
ext: {
gdpr: bidRequests.gdprConsent.gdprApplies === true ? 1 : 0
}
};
}
if (bidRequests.gdprConsent && bidRequests.gdprConsent.gdprApplies) {
emxData.user = {
ext: {
consent: bidRequests.gdprConsent.consentString
}
};
}
return {
method: 'POST',
url: url,
data: JSON.stringify(emxData),
options: {
withCredentials: true
}
};
},
interpretResponse: function (serverResponse) {
let emxBidResponses = [];
let response = serverResponse.body || {};
if (response.seatbid && response.seatbid.length > 0 && response.seatbid[0].bid) {
response.seatbid.forEach(function (emxBid) {
emxBid = emxBid.bid[0];
emxBidResponses.push({
requestId: emxBid.id,
cpm: emxBid.price,
width: emxBid.w,
height: emxBid.h,
creativeId: emxBid.crid || emxBid.id,
dealId: emxBid.dealid || null,
currency: 'USD',
netRevenue: true,
mediaType: BANNER,
ad: decodeURIComponent(emxBid.adm),
ttl: emxBid.ttl
});
});
}
return emxBidResponses;
},
getUserSyncs: function (syncOptions) {
const syncs = [];
if (syncOptions.iframeEnabled) {
syncs.push({
type: 'iframe',
url: '//biddr.brealtime.com/check.html'
});
}
if (syncOptions.pixelEnabled) {
syncs.push({
type: 'image',
url: '//edba.brealtime.com/'
});
}
return syncs;
}
};
registerBidder(spec);
Loading