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

[pull] master from prebid:master #34

Merged
merged 73 commits into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
1243f21
appnexusBidAdapter - video plcmt logic fix (#11403)
jsnellbaker Apr 28, 2024
7b77515
Remove 'transformBidParams' from relevantdigitalBidAdapter (#11412)
samuel-palmer-relevant-digital Apr 29, 2024
428ae3b
Criteo Bid Adapter: fix issue where bidder conf pubid param is not se…
leonardlabat Apr 29, 2024
ee509d3
Using origbidid instead of piid (#11415)
pm-azhar-mulla Apr 29, 2024
b38c0a6
NoBid Bid Adapter : update version 1.3.4 (#11420)
redaguermas Apr 30, 2024
51532c6
Limelight Digital Bid Adapter: add sua field (#11422)
imedvedko Apr 30, 2024
a6aba0e
Criteo Bid Adapter: Add missing tmax along the request send to backen…
leonardlabat Apr 30, 2024
14ef0c1
yieldlabBidAdapter support topics (#11421)
rey1128 Apr 30, 2024
ecb9218
Kargo Bid Adapter: test spec overhaul (#11417)
nickllerandi Apr 30, 2024
bf6de06
Build system: fix standalone debugging & inclusion of node dependenci…
dgirardi Apr 30, 2024
51c63b6
Pubx.ai RTD Provider - Initial Release (#11300)
pruthvimuga May 1, 2024
0e58601
lockr AIM user module: initial release (#11159)
KEPlockr May 1, 2024
670a859
OpenWeb Bid Adapter : remove multi currency support (#11430)
IgorKulemzin May 1, 2024
16616c5
STN Bid Adapter: remove multi currency support (#11429)
Dedis23 May 1, 2024
c561843
MinuteMedia Bid Adapter: remove multi currency support (#11428)
Dedis23 May 1, 2024
0bb0ad3
Rise Bid Adapter : remove multi currency support (#11427)
Dedis23 May 1, 2024
3cb4c16
Prebid 8.47.0 release
prebidjs-release May 1, 2024
54c87ba
Increment version to 8.48.0-pre
prebidjs-release May 1, 2024
f4d0ef0
Bump ejs from 3.1.9 to 3.1.10 (#11432)
dependabot[bot] May 1, 2024
3350dee
Add lmpIdSystem userId submodule (#11431)
ecdrsvc May 1, 2024
8c72bc2
EXADS Bid Adapter: initial release (#11284)
giuseppe-exads May 2, 2024
5cfae1b
Eight Pod Bid / Analytics Adapter : initial release (#11260)
GreDiSe May 2, 2024
7ab6165
Limelight Digital Bid Adapter: fix page field filling (#11436)
imedvedko May 2, 2024
7d52b11
Conversant Adapter - remove transformBidParams (#11441)
johnwier May 6, 2024
8a57af7
[Smaato] Migrating to ortbConverter requests build process (#11433)
Enigo May 6, 2024
3a1dff0
ID5 ID module: config call as bounce (#11424)
pkowalski-id5 May 6, 2024
2bb9f97
DeepIntent Id Module : fix user ids not being passed on page reload d…
parthshah51999 May 6, 2024
55d008a
Discovery Bid Adapter : get UTM tag data (#11380)
ecoeco163 May 6, 2024
3ccef43
README: note about build-bundle-dev (#11448)
bretg May 6, 2024
b6c25e1
adding the domain when calling home (#11440)
jlaso May 6, 2024
9353327
Update PULL_REQUEST_TEMPLATE.md (#11449)
bretg May 6, 2024
14d2a0e
Dailymotion Bid Adapter: accept ortb2 field (#11366)
sebmil-daily May 7, 2024
685d72c
enhance fledge (#11455)
ikagotso May 7, 2024
80f627d
Mabidder Bid Adapter : use ortbConverter facility to pass ortb2 (#11447)
ecdrsvc May 7, 2024
8ebc22d
Update sharethroughBidAdapter.js (#11451)
jefftmahoney May 7, 2024
ff458c5
remove format guard (#11452)
0tarof May 7, 2024
10830ee
EXADS bid adapter: replace broken logic with merely bad logic (#11456)
dgirardi May 7, 2024
4a4ada8
look for gpid in the ortb2Imp.ext.gpid (#11460)
JonGoSonobi May 7, 2024
eb5ae98
Performax Bid Adapter: New bidder adapter (#11325)
lukashakl May 7, 2024
0b574b3
faster-deep-clone (#11418)
bbaresic May 7, 2024
3870124
LiveIntent User ID Module: Stabilize Tests (#11463)
3link May 8, 2024
5438945
Smaato: Change server response type (#11450)
Enigo May 8, 2024
8c5c9d5
EXADS Bid Adapter : update bidder code before adapter is published (#…
giuseppe-exads May 8, 2024
85fd44e
Rubicon Bid Adapter: Provide backwards compatibility for transparency…
harrykingriches May 8, 2024
b76cddd
Playdigo: new adapter (#11378)
Yanivplaydigo May 8, 2024
3c81410
Twist Digital Bid Adapter: initial release (#11370)
saar120 May 8, 2024
3c4ebab
Telaria bid adapter typo (#11471)
jorgealgaba May 9, 2024
c902d6c
chore: code cleanup [PB-2828] (#11468)
lksharma May 9, 2024
0a5e9de
Prebid 8.48.0 release
prebidjs-release May 9, 2024
ef42add
Increment version to 8.49.0-pre
prebidjs-release May 9, 2024
37ab555
9789 tmax/timeout set to value from bidderRequest (#11469)
mkomorski May 10, 2024
b6159c0
Various Adapters: Delete s2s transform bid params for adapters with n…
patmmccann May 13, 2024
3a5f386
KRAK-4688: Adds support for PAAPI module (#34) (#11480)
nickllerandi May 13, 2024
1604431
Site Ext Data to kvs. (#11465)
mikael-lundin May 13, 2024
48c884c
Remove Email (#11484)
ChrisHuie May 14, 2024
ddb66fd
AdagioBidAdapter: validate `plcmt` video param () (#11487)
osazos May 14, 2024
0612325
AdsYield Bid Adapter: move to limelight (#11483)
imedvedko May 14, 2024
f47540b
Vidazoo Bid Adapter : rector gpid value assignment (#11491)
saar120 May 15, 2024
7a507b7
Refactor gpid extraction logic. (#11492)
saar120 May 15, 2024
85cee26
Seedtag Bid Adapter : allows sending bcat and badv ortb2 params in re…
sangarbe May 15, 2024
5426945
Invibes Bid Adapter : reading page referer and cookie handlid (#11477)
rcheptanariu May 15, 2024
dd398f1
Brid Bid Adapter: switching to plcmt (#11502)
grajzer May 16, 2024
2c55a6a
Tappx Bid Adapter : change to plcmt (#11504)
prebidtappx May 16, 2024
f3c4760
Prebid 8.49.0 release
prebidjs-release May 16, 2024
b71b555
Increment version to 8.50.0-pre
prebidjs-release May 16, 2024
501e596
OpenX Bid Adapter: remove use of deprecated video.placement (#11496)
bwschmidt May 16, 2024
2b50b76
Core: include dynamic renderer in native messages (#11343)
dgirardi May 18, 2024
059aa64
51Degrees RTD submodule: initial commit (#11414)
jwrosewell May 18, 2024
2002798
Create sharethroughAnalyticsAdapter.md (#11513)
jefftmahoney May 19, 2024
f2282e4
Improve Digital Bid Adapter : remove parsing of addtlConsent (#11514)
jbartek25 May 20, 2024
ecdde0f
Adding new GVL ID for Adzymic adapter (#11517)
kampungkat May 20, 2024
1faf5e9
Yieldmo Bid Adapter: adding Prebid 9 compatibility (#11507)
desidiver May 20, 2024
581a0ba
Driftpixel Bid Adapter : initial release (#11454)
driftpixelai May 20, 2024
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
3 changes: 2 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ For any user facing change, submit a link to a PR on the docs repo at https://gi
<!-- Remove items that don't apply and/or select an item by changing [ ] to [x] -->
- [ ] Bugfix
- [ ] Feature
- [ ] New bidder adapter <!-- IMPORTANT: if checking here, also submit your bidder params documentation here https://github.com/prebid/prebid.github.io/tree/master/dev-docs/bidders -->
- [ ] New bidder adapter <!-- IMPORTANT: also submit your bidder parameter documentation as noted in https://docs.prebid.org/dev-docs/bidder-adaptor.html#submitting-your-adapter -->
- [ ] Updated bidder adapter <!-- IMPORTANT: (1) consider whether you need to upgrade your bidder parameter documentation in https://github.com/prebid/prebid.github.io/tree/master/dev-docs/bidders and (2) if you have a Prebid Server adapter, please consider whether that should be updated as well. -->
- [ ] Code style update (formatting, local variables)
- [ ] Refactoring (no functional changes, no api changes)
- [ ] Build related changes
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,16 @@ Or, if you are consuming Prebid through npm, with the `disableFeatures` option i

**Note**: this is still a work in progress - at the moment, `NATIVE` is the only feature that can be disabled this way, resulting in a minimal decrease in size (but you can expect that to improve over time).

## Unminified code

You can get a version of the code that's unminified for debugging with `build-bundle-dev`:

```bash
gulp build-bundle-dev --modules=bidderA,module1,...
```

The results will be in build/dev/prebid.js.

## Test locally

To lint the code:
Expand Down
2 changes: 1 addition & 1 deletion allowedModules.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module.exports = {
],
'src': [
'fun-hooks/no-eval',
'just-clone',
'klona',
'dlv',
'dset'
],
Expand Down
87 changes: 47 additions & 40 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ var webpackStream = require('webpack-stream');
var gulpClean = require('gulp-clean');
var opens = require('opn');
var webpackConfig = require('./webpack.conf.js');
const standaloneDebuggingConfig = require('./webpack.debugging.js');
var helpers = require('./gulpHelpers.js');
var concat = require('gulp-concat');
var replace = require('gulp-replace');
Expand Down Expand Up @@ -127,35 +128,56 @@ function viewReview(done) {

viewReview.displayName = 'view-review';

function makeDevpackPkg() {
var cloned = _.cloneDeep(webpackConfig);
Object.assign(cloned, {
devtool: 'source-map',
mode: 'development'
})
function makeVerbose(config = webpackConfig) {
return _.merge({}, config, {
optimization: {
minimizer: [
new TerserPlugin({
parallel: true,
terserOptions: {
mangle: false,
format: {
comments: 'all'
}
},
extractComments: false,
}),
],
}
});
}

const babelConfig = require('./babelConfig.js')({disableFeatures: helpers.getDisabledFeatures(), prebidDistUrlBase: argv.distUrlBase || '/build/dev/'});
function makeDevpackPkg(config = webpackConfig) {
return function() {
var cloned = _.cloneDeep(config);
Object.assign(cloned, {
devtool: 'source-map',
mode: 'development'
})

const babelConfig = require('./babelConfig.js')({disableFeatures: helpers.getDisabledFeatures(), prebidDistUrlBase: argv.distUrlBase || '/build/dev/'});

// update babel config to set local dist url
cloned.module.rules
.flatMap((rule) => rule.use)
.filter((use) => use.loader === 'babel-loader')
.forEach((use) => use.options = Object.assign({}, use.options, babelConfig));
// update babel config to set local dist url
cloned.module.rules
.flatMap((rule) => rule.use)
.filter((use) => use.loader === 'babel-loader')
.forEach((use) => use.options = Object.assign({}, use.options, babelConfig));

var externalModules = helpers.getArgModules();
var externalModules = helpers.getArgModules();

const analyticsSources = helpers.getAnalyticsSources();
const moduleSources = helpers.getModulePaths(externalModules);
const analyticsSources = helpers.getAnalyticsSources();
const moduleSources = helpers.getModulePaths(externalModules);

return gulp.src([].concat(moduleSources, analyticsSources, 'src/prebid.js'))
.pipe(helpers.nameModules(externalModules))
.pipe(webpackStream(cloned, webpack))
.pipe(gulp.dest('build/dev'))
.pipe(connect.reload());
return gulp.src([].concat(moduleSources, analyticsSources, 'src/prebid.js'))
.pipe(helpers.nameModules(externalModules))
.pipe(webpackStream(cloned, webpack))
.pipe(gulp.dest('build/dev'))
.pipe(connect.reload());
}
}

function makeWebpackPkg(extraConfig = {}) {
var cloned = _.merge(_.cloneDeep(webpackConfig), extraConfig);
function makeWebpackPkg(config = webpackConfig) {
var cloned = _.cloneDeep(config)
if (!argv.sourceMaps) {
delete cloned.devtool;
}
Expand Down Expand Up @@ -495,26 +517,11 @@ gulp.task(escapePostbidConfig);
gulp.task('build-creative-dev', gulp.series(buildCreative(argv.creativeDev ? 'development' : 'production'), updateCreativeRenderers));
gulp.task('build-creative-prod', gulp.series(buildCreative(), updateCreativeRenderers));

gulp.task('build-bundle-dev', gulp.series('build-creative-dev', makeDevpackPkg, gulpBundle.bind(null, true)));
gulp.task('build-bundle-prod', gulp.series('build-creative-prod', makeWebpackPkg(), gulpBundle.bind(null, false)));
gulp.task('build-bundle-dev', gulp.series('build-creative-dev', makeDevpackPkg(standaloneDebuggingConfig), makeDevpackPkg(), gulpBundle.bind(null, true)));
gulp.task('build-bundle-prod', gulp.series('build-creative-prod', makeWebpackPkg(standaloneDebuggingConfig), makeWebpackPkg(), gulpBundle.bind(null, false)));
// build-bundle-verbose - prod bundle except names and comments are preserved. Use this to see the effects
// of dead code elimination.
gulp.task('build-bundle-verbose', gulp.series(makeWebpackPkg({
optimization: {
minimizer: [
new TerserPlugin({
parallel: true,
terserOptions: {
mangle: false,
format: {
comments: 'all'
}
},
extractComments: false,
}),
],
}
}), gulpBundle.bind(null, false)));
gulp.task('build-bundle-verbose', gulp.series('build-creative-dev', makeWebpackPkg(makeVerbose(standaloneDebuggingConfig)), makeWebpackPkg(makeVerbose()), gulpBundle.bind(null, true)));

// public tasks (dependencies are needed for each task since they can be ran on their own)
gulp.task('test-only', test);
Expand Down
196 changes: 196 additions & 0 deletions integrationExamples/gpt/51DegreesRtdProvider_example.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Delegate-CH" content="sec-ch-ua-full-version-list https://cloud.51degrees.com; sec-ch-ua-model https://cloud.51degrees.com; sec-ch-ua-platform https://cloud.51degrees.com; sec-ch-ua-platform-version https://cloud.51degrees.com">
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script async src="../../build/dev/prebid.js"></script>
<meta charset="utf-8">
<style>
body {
color: #555;
font-family: sans-serif;
}
</style>
<script>
var PREBID_TIMEOUT = 1000;
var FAILSAFE_TIMEOUT = 3000;

var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];

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

function initAdserver() {
if (pbjs.initAdserverSet) return;

googletag.cmd.push(function () {
pbjs.que.push(function () {
pbjs.setTargetingForGPTAsync();
googletag.pubads().refresh();
});
});

pbjs.initAdserverSet = true;
}

pbjs.que.push(function () {
var adUnits = [{
code: 'div-banner-native-1',
mediaTypes: {
banner: {
sizes: [
[300, 250]
]
},
native: {
type: 'image'
},
},
bids: [{
bidder: 'appnexus',
params: {
placementId: 13232392,
}
}]
},
{
code: 'div-banner-native-2',
mediaTypes: {
banner: {
sizes: [
[300, 250]
]
},
native: {
title: {
required: true
},
image: {
required: true
},
sponsoredBy: {
required: true
}
}
},
bids: [{
bidder: 'appnexus',
params: {
placementId: 13232392,
}
}]
}
];

pbjs.setConfig({
debug: true, // use only for testing, remove in production
realTimeData: {
auctionDelay: 1000, // should be set lower in production use
dataProviders: [
{
name: '51Degrees',
waitForIt: true,
params: {
// Get your resource key from https://configure.51degrees.com/tWrhNfY6
resourceKey: '<YOUR_RESOURCE_KEY>',
// alternatively, you can use the on-premise version of the 51Degrees service and connect to your chosen end point
// onPremiseJSUrl: 'https://localhost/51Degrees.core.js'
}
}
]
},
});

pbjs.addAdUnits(adUnits);

pbjs.onEvent('bidRequested', function (data) {
try {
fod.complete(() => {
document.getElementById('enriched-51').style.display = 'block';
document.getElementById('enriched-51-data').textContent = JSON.stringify(data.ortb2.device, null, 2);
});
} catch (e) {
console.error('Error while trying to display enriched data', e);
}
});

pbjs.requestBids({
timeout: PREBID_TIMEOUT,
bidsBackHandler: function (bidResponses) {
initAdserver();
}
});
});
setTimeout(initAdserver, FAILSAFE_TIMEOUT);
</script>

<script>
googletag.cmd.push(function () {
googletag
.defineSlot(
'/19968336/prebid_multiformat_test', [
[300, 250],
[360, 360]
],
'div-banner-native-1'
)
.addService(googletag.pubads());

googletag
.defineSlot(
'/19968336/prebid_multiformat_test', [
[300, 250],
[360, 360]
],
'div-banner-native-2'
)
.addService(googletag.pubads());

googletag.pubads().disableInitialLoad();
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>
<title>51Degrees RTD submodule example - Prebid.js</title>
</head>
<body>
<h2>51Degrees RTD submodule - example of usage</h2>

<h3>div-banner-native-1</h3>
<div id='div-banner-native-1'>
<p>No response</p>
<script type='text/javascript'>
googletag.cmd.push(function () {
googletag.display('div-banner-native-1');
});
</script>
</div>

<h3>div-banner-native-2</h3>
<div id='div-banner-native-2'>
<p>No response</p>
<script type='text/javascript'>
googletag.cmd.push(function () {
googletag.display('div-banner-native-2');
});
</script>
</div>

<div id="debug">
<h3>Testing/Debugging Guidance</h3>
<ol>
<li>Make sure you have <code>debug: true</code> under <code>pbjs.setConfig</code> in this example code (be sure to remove it for production!)
<li>Make sure you have replaced <code>&lt;YOUR RESOURCE KEY&gt;</code> in this example code with the one you have obtained
from the <a href="https://configure.51degrees.com/tWrhNfY6" target="blank;">51Degrees Configurator Tool</a></li>
<li>Open DevTools Console in your browser and refresh the page</li>
<li>Observe the enriched ortb device data shown below and also in the console as part of the <code>[51Degrees RTD Submodule]: reqBidsConfigObj:</code> message (under <code>reqBidsConfigObj.global.device</code>)</li>
</ol>

</div>
<div id="enriched-51" style="display: none">
<h3>Enriched ORTB2 device data</h3>
<pre id="enriched-51-data"></pre>
</div>
</body>
</html>
Loading