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

Feat/dailymotion adaptor metadata #6

Closed
wants to merge 41 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
797a95d
Insticator Bid Adapter: support optional video params (#10969)
shubhamc-ins Jan 22, 2024
2a45454
pass document instance to custom renderer (#10959)
olafbuitelaar Jan 22, 2024
e00450a
Oxxion Rtd Module: tracking time to run (#10955)
matthieularere-msq Jan 22, 2024
4551792
IQX Bid Adapter : initial release (#10952)
IQzoneIT Jan 22, 2024
e36bf15
AJA Bid Adapter: add Global Placement ID support, remove native/video…
0tarof Jan 23, 2024
6944f28
AdFusion Bid Adapter : currency support (#10938)
AdFusionPrebid Jan 23, 2024
6256236
[TECH-6244] fix: add gvlid to adot adapter (#11) (#10975)
ramyferjaniadot Jan 23, 2024
ca2d2cd
Agma Analytics Module : fix getting global config data (#10968)
steffenmllr Jan 23, 2024
0eb7b30
ID5 ID Module : ID5 will be able to optionally delegate its logic to …
cosenmarco Jan 23, 2024
a8e5c0f
JSdoc Lint Fixes for Multiple ID Modules (#10972)
ChrisHuie Jan 23, 2024
8111c54
JSdoc Linting Fixes for Multiiple RTD Modules (#10973)
ChrisHuie Jan 23, 2024
364a4e8
Insticator Bid Adaptor: add support for bidder video params (#10976)
shubhamc-ins Jan 24, 2024
65c09aa
Conversant adapter: use ortbConverter to handle requests and response…
johnwier Jan 24, 2024
6dec933
Missena Bid Adapter: send cookieDeprecationLabel and prebid version (…
pdamoc Jan 24, 2024
23427cb
zMaticoo Bid Adapter : Initial Release (#10881)
lxj15398019970 Jan 25, 2024
f5d1072
MediaGo Bid Adapter : add pmguid, title, description, keywords and s…
Yimilh Jan 25, 2024
900b5f9
Discovery Bid Adapter : not filter params (#10965)
ecoeco163 Jan 25, 2024
d30cdfc
appnexus Bid Adapter - DSA support (#10971)
jsnellbaker Jan 26, 2024
9600329
NextMillennium Bid Adapter : currency support in request (#10871)
mhlm Jan 26, 2024
0567bdf
Core & PBS adapter: fix race condition between network timeout and au…
dgirardi Jan 26, 2024
8e37b28
Prebid 8.33.0 release
prebidjs-release Jan 26, 2024
968f82b
Increment version to 8.34.0-pre
prebidjs-release Jan 26, 2024
2ac71f2
Discovery Bid Adapter : synchronize mguid from third party cookie to …
lhxx121 Jan 26, 2024
7dc90da
JSdoc Lint Fixes for Multiple Adapters (#10967)
ChrisHuie Jan 26, 2024
11576ac
update mail (#10992)
ikagotso Jan 27, 2024
d247a06
Grid bid adapter : do not send topics along requests to the backend (…
leonardlabat Jan 29, 2024
a1062dc
dfpAdServerVideo: add several parameters do DFP URLs (#10977)
dgirardi Jan 29, 2024
4fd0428
SmileWanted - Add Video Instream, Video Outstream and Native support …
QuentinGallard Jan 30, 2024
cc85f1a
GC-179 Simpliy the userId module, and added feature to allow customer…
southern-growthcode Jan 30, 2024
91701c5
E2E testing: Remove @wdio/sync and update @wdio/* to the latest (#10990)
jamarzka Jan 30, 2024
40931d9
Yandex Analytics Adapter: initial release (#10876)
enovikov11 Jan 30, 2024
176deae
MgidX Bid Adapter: add optional region param (#10612)
xmgiddev Jan 30, 2024
a54d7ba
Video module: log error when adUnit provides unknown player div ID (#…
dgirardi Jan 30, 2024
215e913
ZetaGlobalSsp: bugfix (#10882)
asurovenko-zeta Jan 30, 2024
eb56e38
Yieldmo Bid Adapter : send topics in the Bid Request (#10892)
desidiver Jan 30, 2024
a7925c5
SilverMob adapter initial commit (#10896)
freemmy Jan 30, 2024
8022117
Update appnexusBidAdapter.js (#11009)
patmmccann Jan 31, 2024
dfd56a5
Topics fpd module : fix for intermitent failing test (#11013)
jlquaccia Jan 31, 2024
72e3a93
Appnexus Bid Adapter: Update DSA field names (#11027)
jsnellbaker Jan 31, 2024
37dbe1e
Dailymotion Bid Adaptor: build bidder request based on param with fal…
Jan 31, 2024
fb67377
Dailymotion Bid Adaptor: support video metadata
Aditi0101 Feb 16, 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
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:12.16.1-browsers
- image: cimg/node:16.20-browsers
resource_class: xlarge
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,12 @@ gulp test-coverage
gulp view-coverage
```

Local end-to-end testing can be done with:

```bash
gulp e2e-test --local
```

For Prebid.org members with access to BrowserStack, additional end-to-end testing can be done with:

```bash
Expand Down
61 changes: 41 additions & 20 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,18 @@ function clean() {
.pipe(gulpClean());
}

function requireNodeVersion(version) {
return (done) => {
const [major] = process.versions.node.split('.');

if (major < version) {
throw new Error(`This task requires Node v${version}`)
}

done();
}
}

// Dependant task for building postbid. It escapes postbid-config file.
function escapePostbidConfig() {
gulp.src('./integrationExamples/postbid/oas/postbid-config.js')
Expand Down Expand Up @@ -293,7 +305,7 @@ function bundle(dev, moduleArr) {
// If --notest is given, it will immediately skip the test task (useful for developing changes with `gulp serve --notest`)

function testTaskMaker(options = {}) {
['watch', 'e2e', 'file', 'browserstack', 'notest'].forEach(opt => {
['watch', 'file', 'browserstack', 'notest'].forEach(opt => {
options[opt] = options.hasOwnProperty(opt) ? options[opt] : argv[opt];
})

Expand All @@ -302,22 +314,6 @@ function testTaskMaker(options = {}) {
return function test(done) {
if (options.notest) {
done();
} else if (options.e2e) {
const integ = startIntegServer();
startLocalServer();
runWebdriver(options)
.then(stdout => {
// kill fake server
integ.kill('SIGINT');
done();
process.exit(0);
})
.catch(err => {
// kill fake server
integ.kill('SIGINT');
done(new Error(`Tests failed with error: ${err}`));
process.exit(1);
});
} else {
runKarma(options, done)
}
Expand All @@ -326,10 +322,34 @@ function testTaskMaker(options = {}) {

const test = testTaskMaker();

function e2eTestTaskMaker() {
return function test(done) {
const integ = startIntegServer();
startLocalServer();
runWebdriver({})
.then(stdout => {
// kill fake server
integ.kill('SIGINT');
done();
process.exit(0);
})
.catch(err => {
// kill fake server
integ.kill('SIGINT');
done(new Error(`Tests failed with error: ${err}`));
process.exit(1);
});
}
}

function runWebdriver({file}) {
process.env.TEST_SERVER_HOST = argv.host || 'localhost';

let local = argv.local || false;

let wdioConfFile = local === true ? 'wdio.local.conf.js' : 'wdio.conf.js';
let wdioCmd = path.join(__dirname, 'node_modules/.bin/wdio');
let wdioConf = path.join(__dirname, 'wdio.conf.js');
let wdioConf = path.join(__dirname, wdioConfFile);
let wdioOpts;

if (file) {
Expand Down Expand Up @@ -486,8 +506,9 @@ gulp.task('serve-e2e-dev', gulp.series(clean, 'build-bundle-dev', gulp.parallel(

gulp.task('default', gulp.series(clean, 'build-bundle-prod'));

gulp.task('e2e-test-only', () => runWebdriver({file: argv.file}));
gulp.task('e2e-test', gulp.series(clean, 'build-bundle-prod', testTaskMaker({e2e: true})));
gulp.task('e2e-test-only', gulp.series(requireNodeVersion(16), () => runWebdriver({file: argv.file})));
gulp.task('e2e-test', gulp.series(requireNodeVersion(16), clean, 'build-bundle-prod', e2eTestTaskMaker()));

// 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
2 changes: 1 addition & 1 deletion libraries/creativeRender/direct.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export function renderAdDirect(doc, adId, options) {
message: `renderAd was prevented from writing to the main document.`
})
} else {
handleRender(renderFn, {adId, options: {clickUrl: options?.clickThrough}, bidResponse: bid});
handleRender(renderFn, {adId, options: {clickUrl: options?.clickThrough}, bidResponse: bid, doc});
}
}
} catch (e) {
Expand Down
6 changes: 6 additions & 0 deletions modules/33acrossIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ import { ajaxBuilder } from '../src/ajax.js';
import { submodule } from '../src/hook.js';
import { uspDataHandler, coppaDataHandler, gppDataHandler } from '../src/adapterManager.js';

/**
* @typedef {import('../modules/userId/index.js').Submodule} Submodule
* @typedef {import('../modules/userId/index.js').SubmoduleConfig} SubmoduleConfig
* @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
*/

const MODULE_NAME = '33acrossId';
const API_URL = 'https://lexicon.33across.com/v1/envelope';
const AJAX_TIMEOUT = 10000;
Expand Down
4 changes: 4 additions & 0 deletions modules/a1MediaRtdProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ import { submodule } from '../src/hook.js';
import { getStorageManager } from '../src/storageManager.js';
import { isEmptyStr, mergeDeep } from '../src/utils.js';

/**
* @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
*/

const REAL_TIME_MODULE = 'realTimeData';
const MODULE_NAME = 'a1Media';
const SCRIPT_URL = 'https://linkback.contentsfeed.com/src';
Expand Down
6 changes: 6 additions & 0 deletions modules/ablidaBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import {convertOrtbRequestToProprietaryNative} from '../src/native.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerResponse} ServerResponse
*/

const BIDDER_CODE = 'ablida';
const ENDPOINT_URL = 'https://bidder.ablida.net/prebid';

Expand Down
30 changes: 30 additions & 0 deletions modules/adfusionBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import * as utils from '../src/utils.js';

const adpterVersion = '1.0';
export const REQUEST_URL = 'https://spicyrtb.com/auction/prebid';
export const DEFAULT_CURRENCY = 'USD';

export const spec = {
code: 'adfusion',
Expand All @@ -23,6 +24,17 @@ const converter = ortbConverter({
context: {
netRevenue: true,
ttl: 300,
currency: DEFAULT_CURRENCY,
},
imp(buildImp, bidRequest, context) {
const imp = buildImp(bidRequest, context);
const floor = getBidFloor(bidRequest);
if (floor) {
imp.bidfloor = floor;
imp.bidfloorcur = DEFAULT_CURRENCY;
}

return imp;
},
request(buildRequest, imps, bidderRequest, context) {
const req = buildRequest(imps, bidderRequest, context);
Expand Down Expand Up @@ -88,3 +100,21 @@ function isBannerBid(bid) {
function interpretResponse(resp, req) {
return converter.fromORTB({ request: req.data, response: resp.body });
}

function getBidFloor(bid) {
if (utils.isFn(bid.getFloor)) {
let floor = bid.getFloor({
currency: DEFAULT_CURRENCY,
mediaType: '*',
size: '*',
});
if (
utils.isPlainObject(floor) &&
!isNaN(floor.floor) &&
floor.currency === DEFAULT_CURRENCY
) {
return floor.floor;
}
}
return null;
}
8 changes: 8 additions & 0 deletions modules/adgenerationBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
import {tryAppendQueryString} from '../libraries/urlUtils/urlUtils.js';
import {escapeUnsafeChars} from '../libraries/htmlEscape/htmlEscape.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerResponse} ServerResponse
* @typedef {import('../src/adapters/bidderFactory.js').SyncOptions} SyncOptions
* @typedef {import('../src/adapters/bidderFactory.js').UserSync} UserSync
*/

const ADG_BIDDER_CODE = 'adgeneration';

export const spec = {
Expand Down
8 changes: 6 additions & 2 deletions modules/adkernelBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ import {config} from '../src/config.js';
import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
import {getAdUnitSizes} from '../libraries/sizeUtils/sizeUtils.js';

/*
/**
* In case you're AdKernel whitelable platform's client who needs branded adapter to
* work with Adkernel platform - DO NOT COPY THIS ADAPTER UNDER NEW NAME
*
* Please contact prebid@adkernel.com and we'll add your adapter as an alias.
* Please contact prebid@adkernel.com and we'll add your adapter as an alias
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerRequest} ServerRequest
* @typedef {import('../src/adapters/bidderFactory.js').UserSync} UserSync
*/

const VIDEO_PARAMS = ['pos', 'context', 'placement', 'plcmt', 'api', 'mimes', 'protocols', 'playbackmethod', 'minduration', 'maxduration',
'startdelay', 'linearity', 'skip', 'skipmin', 'skipafter', 'minbitrate', 'maxbitrate', 'delivery', 'playbackend', 'boxingallowed'];
const VIDEO_FPD = ['battr', 'pos'];
Expand Down
7 changes: 7 additions & 0 deletions modules/admaticBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ import {getValue, formatQS, logError, deepAccess, isArray, getBidIdParameter} fr
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { config } from '../src/config.js';
import { BANNER, VIDEO, NATIVE } from '../src/mediaTypes.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerRequest} ServerRequest
*/

export const OPENRTB = {
NATIVE: {
IMAGE_TYPE: {
Expand Down
6 changes: 6 additions & 0 deletions modules/admediaBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerResponse} ServerResponse
*/

const BIDDER_CODE = 'admedia';
const ENDPOINT_URL = 'https://prebid.admedia.com/bidder/';

Expand Down
7 changes: 7 additions & 0 deletions modules/admixerIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ import { submodule } from '../src/hook.js';
import {getStorageManager} from '../src/storageManager.js';
import {MODULE_TYPE_UID} from '../src/activities/modules.js';

/**
* @typedef {import('../modules/userId/index.js').Submodule} Submodule
* @typedef {import('../modules/userId/index.js').SubmoduleConfig} SubmoduleConfig
* @typedef {import('../modules/userId/index.js').ConsentData} ConsentData
* @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
*/

const NAME = 'admixerId';
export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: NAME});

Expand Down
4 changes: 4 additions & 0 deletions modules/adnowBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ const ENDPOINT = 'https://n.ads3-adnow.com/a';

/**
* @typedef {object} CommonBidData
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerRequest} ServerRequest
* @typedef {import('../src/adapters/bidderFactory.js').BidderSpec} BidderSpec
*
* @property {string} requestId The specific BidRequest which this bid is aimed at.
* This should match the BidRequest.bidId which this Bid targets.
Expand Down
4 changes: 4 additions & 0 deletions modules/adnuntiusRtdProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ import { ajax } from '../src/ajax.js';

import { config as sourceConfig } from '../src/config.js';

/**
* @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
*/

const GVLID = 855;

function init(config, userConsent) {
Expand Down
4 changes: 3 additions & 1 deletion modules/adotBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { convertOrtbRequestToProprietaryNative } from '../src/native.js';

const BIDDER_CODE = 'adot';
const ADAPTER_VERSION = 'v2.0.0';
const GVLID = 272;
const BID_METHOD = 'POST';
const BIDDER_URL = 'https://dsp.adotmob.com/headerbidding{PUBLISHER_PATH}/bidrequest';
const REQUIRED_VIDEO_PARAMS = ['mimes', 'protocols'];
Expand Down Expand Up @@ -635,7 +636,8 @@ export const spec = {
isBidRequestValid,
buildRequests,
interpretResponse,
getFloor
getFloor,
gvlid: GVLID
};

registerBidder(spec);
8 changes: 8 additions & 0 deletions modules/adqueryBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
import {BANNER} from '../src/mediaTypes.js';
import {buildUrl, logInfo, parseSizesInput, triggerPixel} from '../src/utils.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
* @typedef {import('../src/adapters/bidderFactory.js').ServerRequest} ServerRequest
* @typedef {import('../src/adapters/bidderFactory.js').BidderSpec} BidderSpec
* @typedef {import('../src/adapters/bidderFactory.js').TimedOutBid} TimedOutBid
*/

const ADQUERY_GVLID = 902;
const ADQUERY_BIDDER_CODE = 'adquery';
const ADQUERY_BIDDER_DOMAIN_PROTOCOL = 'https';
Expand Down
6 changes: 6 additions & 0 deletions modules/adqueryIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ import {submodule} from '../src/hook.js';
import {isFn, isPlainObject, isStr, logError, logInfo} from '../src/utils.js';
import {MODULE_TYPE_UID} from '../src/activities/modules.js';

/**
* @typedef {import('../modules/userId/index.js').Submodule} Submodule
* @typedef {import('../modules/userId/index.js').SubmoduleConfig} SubmoduleConfig
* @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
*/

const MODULE_NAME = 'qid';
const AU_GVLID = 902;

Expand Down
5 changes: 5 additions & 0 deletions modules/adrelevantisBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ import {convertCamelToUnderscore} from '../libraries/appnexusUtils/anUtils.js';
import {convertTypes} from '../libraries/transformParamsUtils/convertTypes.js';
import {chunk} from '../libraries/chunk/chunk.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
*/

const BIDDER_CODE = 'adrelevantis';
const URL = 'https://ssp.adrelevantis.com/prebid';
const VIDEO_TARGETING = ['id', 'mimes', 'minduration', 'maxduration',
Expand Down
7 changes: 7 additions & 0 deletions modules/adriverIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ import { submodule } from '../src/hook.js';
import {getStorageManager} from '../src/storageManager.js';
import {MODULE_TYPE_UID} from '../src/activities/modules.js';

/**
* @typedef {import('../modules/userId/index.js').Submodule} Submodule
* @typedef {import('../modules/userId/index.js').SubmoduleConfig} SubmoduleConfig
* @typedef {import('../modules/userId/index.js').ConsentData} ConsentData
* @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
*/

const MODULE_NAME = 'adriverId';

export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
Expand Down
4 changes: 4 additions & 0 deletions modules/adtelligentBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ import {find} from '../src/polyfill.js';
import {convertTypes} from '../libraries/transformParamsUtils/convertTypes.js';
import {chunk} from '../libraries/chunk/chunk.js';

/**
* @typedef {import('../src/adapters/bidderFactory.js').Bid} Bid
*/

const subdomainSuffixes = ['', 1, 2];
const AUCTION_PATH = '/v2/auction/';
const PROTOCOL = 'https://';
Expand Down
Loading