Skip to content

Commit

Permalink
Merge pull request #8 from prebid/master
Browse files Browse the repository at this point in the history
Merge upstream
  • Loading branch information
abijr authored Jun 16, 2020
2 parents 4bad041 + 7bd17e4 commit 44a4ebe
Show file tree
Hide file tree
Showing 319 changed files with 36,301 additions and 16,176 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.9
12.16.1
15 changes: 9 additions & 6 deletions PR_REVIEW.md
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Loading

0 comments on commit 44a4ebe

Please sign in to comment.