Skip to content

Commit

Permalink
Merge branch 'master' into smaato-adapter
Browse files Browse the repository at this point in the history
* master: (122 commits)
  Vidazoo Adapter: Feature/user-id (prebid#5386)
  Add customParams to yieldlab configuration (prebid#5374)
  added waardex adapter (prebid#5349)
  33Across: CCPA Compliance + Schain support (prebid#5365)
  External ids (prebid#5351)
  PubMatic adds support for bidUserIdAsEids (prebid#5397)
  appnexusBidAdapter - fix video params (prebid#5394)
  Triplelift Adaptor: Use Floors Module (prebid#5329)
  PubMatic bid adapter to support price floors module (prebid#5387)
  Marsmedia & videofy adapters - Add onTimeout & onSetTargeting (prebid#5352)
  Freewheel - Converted the ComponentId property to be 'prebid' in request (prebid#5320)
  UserId SharedId submodule (prebid#5315)
  GumGum: removes deprecated banner sizes default (prebid#5372)
  Apply some updates to Valueimpression bid adapter (prebid#5356)
  Added keywords parameter to TheMediaGrid Bid Adapter (prebid#5353)
  Support for ID5 (prebid#5345)
  PBS Bid Adapter: allow setting site params (prebid#4973)
  Delaying removal of floor data for 3 seconds (prebid#5360)
  Configurable user-sync types support (prebid#5359)
  Add placement_type and position parameters to spotxBidAdapter (prebid#5364)
  ...
  • Loading branch information
sbrosinski committed Jun 23, 2020
2 parents beca5e1 + 263c6cc commit 0d3ee12
Show file tree
Hide file tree
Showing 357 changed files with 38,650 additions and 16,967 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Expand Up @@ -7,7 +7,7 @@ aliases:
- &environment
docker:
# specify the version you desire here
- image: circleci/node:8.9.0
- image: circleci/node:12.16.1

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
@@ -1 +1 @@
8.9
12.16.1
15 changes: 9 additions & 6 deletions PR_REVIEW.md
Expand Up @@ -15,12 +15,15 @@ For modules and core platform updates, the initial reviewer should request an ad
- If the change is a new feature / change to core prebid.js - review the change with a Tech Lead on the project and make sure they agree with the nature of change.
- If the change results in needing updates to docs (such as public API change, module interface etc), add a label for "needs docs" and inform the submitter they must submit a docs PR to update the appropriate area of Prebid.org **before the PR can merge**. Help them with finding where the docs are located on prebid.org if needed.
- Below are some examples of bidder specific updates that should require docs update (in their dev-docs/bidders/bidder.md file):
- Add support for GDPR consentManagement module > add `gdpr_supported: true`
- Add support for US Privacy consentManagement module > add `usp_supported: true`
- Add support for userId module > add `userId: pubCommon, digitrust, newProviderHere`
- Add support for video and/or native mediaTypes > add `media_types: video, native`
- Add support for COPPA > add `coppa_supported: true`
- Add support for SChain > add `schain_supported: true`
- If they support the GDPR consentManagement module and TCF1, add `gdpr_supported: true`
- If they support the GDPR consentManagement module and TCF2, add `tcf2_supported: true`
- If they support the US Privacy consentManagementUsp module, add `usp_supported: true`
- If they support one or more userId modules, add `userId: (list of supported vendors)`
- If they support video and/or native mediaTypes add `media_types: video, native`. Note that display is added by default. If you don't support display, add "no-display" as the first entry, e.g. `media_types: no-display, native`
- If they support COPPA, add `coppa_supported: true`
- If they support SChain, add `schain_supported: true`
- If their bidder doesn't work well with safeframed creatives, add `safeframes_ok: false`. This will alert publishers to not use safeframed creatives when creating the ad server entries for their bidder.
- If they're a member of Prebid.org, add `prebid_member: true`
- If all above is good, add a `LGTM` comment and request 1 additional core member to review.
- Once there is 2 `LGTM` on the PR, merge to master
- Ask the submitter to add a PR for documentation if applicable.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -112,7 +112,7 @@ prebid.requestBids({
$ cd Prebid.js
$ npm install

*Note:* You need to have `NodeJS` 8.9.x or greater installed.
*Note:* You need to have `NodeJS` 12.16.1 or greater installed.

*Note:* In the 1.24.0 release of Prebid.js we have transitioned to using gulp 4.0 from using gulp 3.9.1. To comply with gulp's recommended setup for 4.0, you'll need to have `gulp-cli` installed globally prior to running the general `npm install`. This shouldn't impact any other projects you may work on that use an earlier version of gulp in its setup.

Expand Down
47 changes: 33 additions & 14 deletions gulpfile.js
@@ -1,3 +1,4 @@
/* eslint-disable no-console */
'use strict';

var _ = require('lodash');
Expand Down Expand Up @@ -32,8 +33,8 @@ var prebid = require('./package.json');
var dateString = 'Updated : ' + (new Date()).toISOString().substring(0, 10);
var banner = '/* <%= prebid.name %> v<%= prebid.version %>\n' + dateString + ' */\n';
var port = 9999;
const mockServerPort = 4444;
const host = argv.host ? argv.host : 'localhost';
const FAKE_SERVER_HOST = argv.host ? argv.host : 'localhost';
const FAKE_SERVER_PORT = 4444;
const { spawn } = require('child_process');

// these modules must be explicitly listed in --modules to be included in the build, won't be part of "all" modules
Expand Down Expand Up @@ -238,25 +239,25 @@ function test(done) {
];
}

//run mock-server
const mockServer = spawn('node', ['./test/mock-server/index.js', '--port=' + mockServerPort]);
mockServer.stdout.on('data', (data) => {
// run fake-server
const fakeServer = spawn('node', ['./test/fake-server/index.js', `--port=${FAKE_SERVER_PORT}`]);
fakeServer.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
mockServer.stderr.on('data', (data) => {
fakeServer.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});

execa(wdioCmd, wdioOpts, { stdio: 'inherit' })
.then(stdout => {
// kill mock server
mockServer.kill('SIGINT');
// kill fake server
fakeServer.kill('SIGINT');
done();
process.exit(0);
})
.catch(err => {
// kill mock server
mockServer.kill('SIGINT');
// kill fake server
fakeServer.kill('SIGINT');
done(new Error(`Tests failed with error: ${err}`));
process.exit(1);
});
Expand Down Expand Up @@ -326,11 +327,27 @@ function setupE2e(done) {
done();
}

gulp.task('updatepath', function () {
function injectFakeServerEndpoint() {
return gulp.src(['build/dist/*.js'])
.pipe(replace('https://ib.adnxs.com/ut/v3/prebid', 'http://' + host + ':' + mockServerPort + '/'))
.pipe(replace('https://ib.adnxs.com/ut/v3/prebid', `http://${FAKE_SERVER_HOST}:${FAKE_SERVER_PORT}`))
.pipe(gulp.dest('build/dist'));
});
}

function injectFakeServerEndpointDev() {
return gulp.src(['build/dev/*.js'])
.pipe(replace('https://ib.adnxs.com/ut/v3/prebid', `http://${FAKE_SERVER_HOST}:${FAKE_SERVER_PORT}`))
.pipe(gulp.dest('build/dev'));
}

function startFakeServer() {
const fakeServer = spawn('node', ['./test/fake-server/index.js', `--port=${FAKE_SERVER_PORT}`]);
fakeServer.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
fakeServer.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
}

// support tasks
gulp.task(lint);
Expand All @@ -355,9 +372,11 @@ gulp.task('build', gulp.series(clean, 'build-bundle-prod'));
gulp.task('build-postbid', gulp.series(escapePostbidConfig, buildPostbid));

gulp.task('serve', gulp.series(clean, lint, gulp.parallel('build-bundle-dev', watch, test)));
gulp.task('serve-fake', gulp.series(clean, gulp.parallel('build-bundle-dev', watch), injectFakeServerEndpointDev, test, startFakeServer));

gulp.task('default', gulp.series(clean, makeWebpackPkg));

gulp.task('e2e-test', gulp.series(clean, setupE2e, gulp.parallel('build-bundle-prod', watch), 'updatepath', test));
gulp.task('e2e-test', gulp.series(clean, setupE2e, gulp.parallel('build-bundle-prod', watch), injectFakeServerEndpoint, test));
// other tasks
gulp.task(bundleToStdout);
gulp.task('bundle', gulpBundle.bind(null, false)); // used for just concatenating pre-built files with no build step
Expand Down
@@ -1,3 +1,6 @@
<!-- Test page for Size Mapping V2 module. Don't forget to include that module in the build before you run this page!
Feel free to play around with different settings and configurations for size mapping v2 -->

<!DOCTYPE html>
<html>

Expand All @@ -8,15 +11,16 @@
const FAILSAFE_TIMEOUT = 3300;
const PREBID_TIMEOUT = 1000;

// Example of a multi-format ad unit setup with uses the module `sizeMappingV2.js`.
const adUnits = [{
code: 'div-gpt-ad-1460505748561-0',
mediaTypes: {
banner: {
sizeConfig: [
{ minViewPort: [0, 0], sizes: [] }, // remove if < 750px
{ minViewPort: [750, 0], sizes: [[300, 250], [300, 600]] }, // between 750px and 1199px
{ minViewPort: [1200, 0], sizes: [[970, 90], [728, 90], [300, 250]] }, // between 1200px and 1599px
{ minViewPort: [1600, 0], sizes: [[1000, 300], [970, 90], [728, 90], [300, 250]] } // greater than 1600px
{ minViewPort: [750, 0], sizes: [[300, 250], [300, 600]] }, // between 750px and 1199px, use sizes: [[300, 250], [300, 600]]
{ minViewPort: [1200, 0], sizes: [[970, 90], [728, 90], [300, 250]] }, // between 1200px and 1599px, use sizes: [[970, 90], [728, 90], [300, 250]]
{ minViewPort: [1600, 0], sizes: [[1000, 300], [970, 90], [728, 90], [300, 250]] } // greater than 1600px, use sizes: [[1000, 300], [970, 90], [728, 90], [300, 250]]
]
},
video: {
Expand All @@ -31,9 +35,9 @@
required: true,
sizes: [150, 50]
},

// native media type enters auction only if device width is > 600px
sizeConfig: [
{ minViewPort: [0, 0], active: false },
{ minViewPort: [0, 0], active: false },
{ minViewPort: [600, 0], active: true }
]
}
Expand All @@ -54,12 +58,33 @@
siteId: 70608,
zoneId: 498816
},
// example of a bidder level size config. In the scenario below, bidder 'rubicon' enters auction only if the device width
// is between 850-1200 and it'll only send request for the 'native' media type.
sizeConfig: [
{ minViewPort: [0, 0], relevantMediaTypes: ['none'] },
{ minViewPort: [850, 0], relevantMediaTypes: ['native'] },
{ minViewPort: [1200, 0], relevantMediaTypes: ['none'] }
]
}]
}, {
// Example of an 'Identical Ad Unit' (same 'code' as previous ad unit but different 'mediaTypes' object)
// Ad Unit makes use of the 'labelAll' operator. (the label operators can be applied at the bidder lever as well)
code: 'div-gpt-ad-1460505748561-0',
labelAll: ['tablet'], // Label check fails since labels passed to pbjs.requestBids() equals ['mobile']. This disables the entire ad unit.
mediaTypes: {
banner: {
sizeConfig: [
{ minViewPort: [800, 0], sizes: [[360, 400], [640, 200]] },
{ minViewPort: [1000, 0], sizes: [] }
]
}
},
bids: [{
bidder: 'appnexus',
params: {
placementId: 4232323
}
}]
}];
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
Expand All @@ -75,9 +100,11 @@

pbjs.que.push(function () {
pbjs.addAdUnits(adUnits);
pbjs.setConfig({debug: true});
pbjs.requestBids({
bidsBackHandler: sendAdserverRequest,
timeout: PREBID_TIMEOUT
timeout: PREBID_TIMEOUT,
labels: ['mobile']
});
});

Expand Down
5 changes: 0 additions & 5 deletions integrationExamples/gpt/audigentSegments_example.html
Expand Up @@ -162,11 +162,6 @@
params: {
// change to Parrable Partner Client ID(s) you received from the Parrable Partners you are using
partner: '30182847-e426-4ff9-b2b5-9ca1324ea09b'
},
storage: {
type: "cookie",
name: "_parrable_eid", // create a cookie with this name
expires: 365 // cookie can last for a year
}
}, {
name: "pubCommonId",
Expand Down
2 changes: 1 addition & 1 deletion integrationExamples/gpt/revcontent_example.html
Expand Up @@ -45,7 +45,7 @@
apiKey: '8a33fa9cf220ae685dcc3544f847cdda858d3b1c',
userId: 673,
domain: 'test.com',
endpoint: 'trends-s0.revcontent.com'
endpoint: 'trends.revcontent.com'
}
}]
}];
Expand Down
17 changes: 11 additions & 6 deletions integrationExamples/gpt/userId_example.html
Expand Up @@ -157,11 +157,6 @@
params: {
// change to Parrable Partner Client ID(s) you received from the Parrable Partners you are using
partner: '30182847-e426-4ff9-b2b5-9ca1324ea09b'
},
storage: {
type: "cookie",
name: "_parrable_eid", // create a cookie with this name
expires: 365 // cookie can last for a year
}
}, {
name: "pubCommonId",
Expand All @@ -184,9 +179,19 @@
name: 'idl_env',
expires: 30
}
}, {
name: "sharedId",
params: {
syncTime: 60 // in seconds, default is 24 hours
},
storage: {
type: "cookie",
name: "sharedid",
expires: 28
}
}],
syncDelay: 5000,
auctionDelay: 1000
auctionDelay: 1000
}
});
pbjs.addAdUnits(adUnits);
Expand Down
4 changes: 1 addition & 3 deletions integrationExamples/gpt/x-domain/creative.html
Expand Up @@ -6,7 +6,6 @@
var urlParser = document.createElement('a');
urlParser.href = '%%PATTERN:url%%';
var publisherDomain = urlParser.protocol + '//' + urlParser.hostname;
var adServerDomain = windowLocation.protocol + '//tpc.googlesyndication.com';

function renderAd(ev) {
var key = ev.message ? 'message' : 'data';
Expand Down Expand Up @@ -58,8 +57,7 @@
function requestAdFromPrebid() {
var message = JSON.stringify({
message: 'Prebid Request',
adId: '%%PATTERN:hb_adid%%',
adServerDomain: adServerDomain
adId: '%%PATTERN:hb_adid%%'
});
window.parent.postMessage(message, publisherDomain);
}
Expand Down
7 changes: 5 additions & 2 deletions integrationExamples/longform/basic_w_bidderSettings.html
Expand Up @@ -5,6 +5,10 @@
<title>Prebid Freewheel Integration Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script async src="//acdn.adnxs.com/prebid/not-for-prod/1/prebid.js"></script> -->
<script src="longformTestUtils.js"></script>
<script>
prebidTestUtils.setMockCategories();
</script>
<script src="/build/dist/prebid.js" async=true></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
Expand All @@ -20,10 +24,9 @@
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" />
<!-- <script type="text/javascript" src="//adm.fwmrm.net/p/vitest-js/AdManager.js"></script> -->
<script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script>
<!-- <script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script> -->
<!-- <script type="text/javascript" src="player.js"></script> -->
<link rel="stylesheet" href="longform_testpages_style.css">
<script src="longformTestUtils.js"></script>
<script>
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
Expand Down
Expand Up @@ -5,6 +5,10 @@
<title>Prebid Freewheel Integration Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script async src="//acdn.adnxs.com/prebid/not-for-prod/1/prebid.js"></script> -->
<script src="longformTestUtils.js"></script>
<script>
prebidTestUtils.setMockCategories();
</script>
<script src="/build/dist/prebid.js" async=true></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
Expand All @@ -20,10 +24,9 @@
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" />
<!-- <script type="text/javascript" src="//adm.fwmrm.net/p/vitest-js/AdManager.js"></script> -->
<script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script>
<!-- <script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script> -->
<!-- <script type="text/javascript" src="player.js"></script> -->
<link rel="stylesheet" href="longform_testpages_style.css">
<script src="longformTestUtils.js"></script>
<script>
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
Expand Down
7 changes: 5 additions & 2 deletions integrationExamples/longform/basic_w_priceGran.html
Expand Up @@ -5,6 +5,10 @@
<title>Prebid Freewheel Integration Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script async src="//acdn.adnxs.com/prebid/not-for-prod/1/prebid.js"></script> -->
<script src="longformTestUtils.js"></script>
<script>
prebidTestUtils.setMockCategories();
</script>
<script src="/build/dist/prebid.js" async=true></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
Expand All @@ -20,10 +24,9 @@
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" />
<!-- <script type="text/javascript" src="//adm.fwmrm.net/p/vitest-js/AdManager.js"></script> -->
<script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script>
<!-- <script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script> -->
<!-- <script type="text/javascript" src="player.js"></script> -->
<link rel="stylesheet" href="longform_testpages_style.css">
<script src="longformTestUtils.js"></script>
<script>
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
Expand Down
Expand Up @@ -5,6 +5,10 @@
<title>Prebid Freewheel Integration Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script async src="//acdn.adnxs.com/prebid/not-for-prod/1/prebid.js"></script> -->
<script src="longformTestUtils.js"></script>
<script>
prebidTestUtils.setMockCategories();
</script>
<script src="/build/dist/prebid.js" async=true></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
Expand All @@ -20,10 +24,9 @@
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" />
<!-- <script type="text/javascript" src="//adm.fwmrm.net/p/vitest-js/AdManager.js"></script> -->
<script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script>
<!-- <script type="text/javascript" src="https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager-debug.js"></script> -->
<!-- <script type="text/javascript" src="player.js"></script> -->
<link rel="stylesheet" href="longform_testpages_style.css">
<script src="longformTestUtils.js"></script>
<script>
var pbjs = pbjs || {};
pbjs.que = pbjs.que || [];
Expand Down

0 comments on commit 0d3ee12

Please sign in to comment.