Skip to content

Commit

Permalink
Merge branch 'master' into prebid-8
Browse files Browse the repository at this point in the history
  • Loading branch information
dgirardi committed May 30, 2023
2 parents 406610b + fc6bced commit 0a3cad2
Show file tree
Hide file tree
Showing 26 changed files with 462 additions and 83 deletions.
45 changes: 28 additions & 17 deletions modules/adhashBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {registerBidder} from '../src/adapters/bidderFactory.js';
import { getStorageManager } from '../src/storageManager.js';
import { includes } from '../src/polyfill.js';
import { BANNER } from '../src/mediaTypes.js';
import { BANNER, VIDEO } from '../src/mediaTypes.js';

const VERSION = '3.2';
const BAD_WORD_STEP = 0.1;
Expand Down Expand Up @@ -130,13 +130,13 @@ function brandSafety(badWords, maxScore) {

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

isBidRequestValid: (bid) => {
try {
const { publisherId, platformURL, bidderURL } = bid.params;
return (
includes(Object.keys(bid.mediaTypes), BANNER) &&
(includes(Object.keys(bid.mediaTypes), BANNER) || includes(Object.keys(bid.mediaTypes), VIDEO)) &&
typeof publisherId === 'string' &&
publisherId.length === 42 &&
typeof platformURL === 'string' &&
Expand Down Expand Up @@ -168,7 +168,14 @@ export const spec = {
const url = `${bidderURL}/rtb?version=${VERSION}&prebid=true`;
const index = Math.floor(Math.random() * validBidRequests[i].sizes.length);
const size = validBidRequests[i].sizes[index].join('x');

const creativeData = includes(Object.keys(validBidRequests[i].mediaTypes), VIDEO) ? {
size: 'preroll',
position: validBidRequests[i].adUnitCode,
playerSize: size
} : {
size: size,
position: validBidRequests[i].adUnitCode
};
let recentAds = [];
if (storage.localStorageIsEnabled()) {
const prefix = validBidRequests[i].params.prefix || 'adHash';
Expand Down Expand Up @@ -204,10 +211,7 @@ export const spec = {
language: window.navigator.language,
userAgent: window.navigator.userAgent
},
creatives: [{
size: size,
position: validBidRequests[i].adUnitCode
}],
creatives: [creativeData],
blockedCreatives: [],
currentTimestamp: (new Date().getTime() / 1000) | 0,
recentAds: recentAds,
Expand All @@ -229,7 +233,6 @@ export const spec = {

interpretResponse: (serverResponse, request) => {
const responseBody = serverResponse ? serverResponse.body : {};

if (
!responseBody.creatives ||
responseBody.creatives.length === 0 ||
Expand All @@ -241,18 +244,12 @@ export const spec = {
const publisherURL = JSON.stringify(request.bidRequest.params.platformURL);
const bidderURL = request.bidRequest.params.bidderURL || 'https://bidder.adhash.com';
const oneTimeId = request.bidRequest.adUnitCode + Math.random().toFixed(16).replace('0.', '.');
const globalScript = !request.bidRequest.params.globalScript
? `<script src="${bidderURL}/static/scripts/creative.min.js"></script>`
: '';
const bidderResponse = JSON.stringify({ responseText: JSON.stringify(responseBody) });
const requestData = JSON.stringify(request.data);

return [{
var response = {
requestId: request.bidRequest.bidId,
cpm: responseBody.creatives[0].costEUR,
ad:
`<div id="${oneTimeId}"></div>${globalScript}
<script>callAdvertiser(${bidderResponse},['${oneTimeId}'],${requestData},${publisherURL})</script>`,
width: request.bidRequest.sizes[0][0],
height: request.bidRequest.sizes[0][1],
creativeId: request.bidRequest.adUnitCode,
Expand All @@ -262,7 +259,21 @@ export const spec = {
meta: {
advertiserDomains: responseBody.advertiserDomains ? [responseBody.advertiserDomains] : []
}
}];
};
if (typeof request == 'object' && typeof request.bidRequest == 'object' && typeof request.bidRequest.mediaTypes == 'object' && includes(Object.keys(request.bidRequest.mediaTypes), BANNER)) {
response = Object.assign({
ad:
`<div id="${oneTimeId}"></div>
<script src="${bidderURL}/static/scripts/creative.min.js"></script>
<script>callAdvertiser(${bidderResponse},['${oneTimeId}'],${requestData},${publisherURL})</script>`
}, response);
} else if (includes(Object.keys(request.bidRequest.mediaTypes), VIDEO)) {
response = Object.assign({
vastUrl: responseBody.creatives[0].vastURL,
mediaType: VIDEO
}, response);
}
return [response];
}
};

Expand Down
3 changes: 2 additions & 1 deletion modules/adkernelBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ export const spec = {
{code: 'displayioads'},
{code: 'rtbdemand_com'},
{code: 'bidbuddy'},
{code: 'adliveconnect'}
{code: 'adliveconnect'},
{code: 'didnadisplay'}
],
supportedMediaTypes: [BANNER, VIDEO, NATIVE],

Expand Down
52 changes: 30 additions & 22 deletions modules/admanBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,43 +99,51 @@ export const spec = {
const len = validBidRequests.length;

for (let i = 0; i < len; i++) {
let bid = validBidRequests[i];
let traff = bid.params.traffic || BANNER
const bid = validBidRequests[i];
const { params, bidId, mediaTypes } = bid;

const placement = {
placementId: bid.params.placementId,
bidId: bid.bidId,
sizes: bid.mediaTypes && bid.mediaTypes[traff] && bid.mediaTypes[traff].sizes ? bid.mediaTypes[traff].sizes : [],
traffic: traff,
placementId: params.placementId,
bidId,
eids: [],
bidFloor: getBidFloor(bid)
}

if (bid.schain) {
placement.schain = bid.schain;
}

if (bid.userId) {
getUserId(placement.eids, bid.userId.uid2 && bid.userId.uid2.id, 'uidapi.com');
getUserId(placement.eids, bid.userId.lotamePanoramaId, 'lotame.com');
getUserId(placement.eids, bid.userId.idx, 'idx.lat');
}
if (traff === VIDEO) {
placement.playerSize = bid.mediaTypes[VIDEO].playerSize;
placement.minduration = bid.mediaTypes[VIDEO].minduration;
placement.maxduration = bid.mediaTypes[VIDEO].maxduration;
placement.mimes = bid.mediaTypes[VIDEO].mimes;
placement.protocols = bid.mediaTypes[VIDEO].protocols;
placement.startdelay = bid.mediaTypes[VIDEO].startdelay;
placement.placement = bid.mediaTypes[VIDEO].placement;
placement.skip = bid.mediaTypes[VIDEO].skip;
placement.skipafter = bid.mediaTypes[VIDEO].skipafter;
placement.minbitrate = bid.mediaTypes[VIDEO].minbitrate;
placement.maxbitrate = bid.mediaTypes[VIDEO].maxbitrate;
placement.delivery = bid.mediaTypes[VIDEO].delivery;
placement.playbackmethod = bid.mediaTypes[VIDEO].playbackmethod;
placement.api = bid.mediaTypes[VIDEO].api;
placement.linearity = bid.mediaTypes[VIDEO].linearity;

if (mediaTypes?.[BANNER]) {
placement.traffic = BANNER;
placement.sizes = mediaTypes[BANNER].sizes;
} else if (mediaTypes?.[VIDEO]) {
placement.traffic = VIDEO;
placement.playerSize = mediaTypes[VIDEO].playerSize;
placement.minduration = mediaTypes[VIDEO].minduration;
placement.maxduration = mediaTypes[VIDEO].maxduration;
placement.mimes = mediaTypes[VIDEO].mimes;
placement.protocols = mediaTypes[VIDEO].protocols;
placement.startdelay = mediaTypes[VIDEO].startdelay;
placement.placement = mediaTypes[VIDEO].placement;
placement.skip = mediaTypes[VIDEO].skip;
placement.skipafter = mediaTypes[VIDEO].skipafter;
placement.minbitrate = mediaTypes[VIDEO].minbitrate;
placement.maxbitrate = mediaTypes[VIDEO].maxbitrate;
placement.delivery = mediaTypes[VIDEO].delivery;
placement.playbackmethod = mediaTypes[VIDEO].playbackmethod;
placement.api = mediaTypes[VIDEO].api;
placement.linearity = mediaTypes[VIDEO].linearity;
}

placements.push(placement);
}

return {
method: 'POST',
url: AD_URL,
Expand Down
8 changes: 7 additions & 1 deletion modules/adqueryBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,13 @@ export const spec = {
};
function buildRequest(validBidRequests, bidderRequest) {
let bid = validBidRequests;
let pageUrl = '';
if (bidderRequest && bidderRequest.refererInfo) {
pageUrl = bidderRequest.refererInfo.page || '';
}

return {
v: '$prebid.version$',
placementCode: bid.params.placementId,
// TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
auctionId: bid.auctionId,
Expand All @@ -200,11 +206,11 @@ function buildRequest(validBidRequests, bidderRequest) {
bidQid: storage.getDataFromLocalStorage('qid') || null,
bidId: bid.bidId,
bidder: bid.bidder,
bidPageUrl: pageUrl,
bidderRequestId: bid.bidderRequestId,
bidRequestsCount: bid.bidRequestsCount,
bidderRequestsCount: bid.bidderRequestsCount,
sizes: parseSizesInput(bid.mediaTypes.banner.sizes).toString(),

};
}

Expand Down
1 change: 1 addition & 0 deletions modules/adrinoBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export const spec = {
let bids = [];
for (let i = 0; i < validBidRequests.length; i++) {
let requestData = {
adUnitCode: validBidRequests[i].adUnitCode,
bidId: validBidRequests[i].bidId,
placementHash: validBidRequests[i].params.hash,
userId: validBidRequests[i].userId,
Expand Down
1 change: 1 addition & 0 deletions modules/appnexusBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ export const spec = {
{ code: 'adasta', gvlid: 32 },
{ code: 'beintoo', gvlid: 618 },
{ code: 'projectagora', gvlid: 1032 },
{ code: 'uol', gvlid: 32 },
],
supportedMediaTypes: [BANNER, VIDEO, NATIVE],

Expand Down
6 changes: 2 additions & 4 deletions modules/cleanioRtdProvider.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
*/

import { submodule } from '../src/hook.js';
import { loadExternalScript } from '../src/adloader.js';
import { logError, generateUUID, insertElement } from '../src/utils.js';
import * as events from '../src/events.js';
import CONSTANTS from '../src/constants.json';
Expand Down Expand Up @@ -52,10 +53,7 @@ function pageInitStepPreloadScript(scriptURL) {
* @param {string} scriptURL The script URL to add to the page for protection
*/
function pageInitStepProtectPage(scriptURL) {
const scriptElement = document.createElement('script');
scriptElement.type = 'text/javascript';
scriptElement.src = scriptURL;
insertElement(scriptElement);
loadExternalScript(scriptURL, 'clean.io');
}

/**
Expand Down
9 changes: 9 additions & 0 deletions modules/criteoBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,15 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
request.user.ext = request.user.ext || {};
request.user.ext.eids = [...userIdAsEids];
}
if (bidderRequest && bidderRequest.ortb2?.bcat) {
request.bcat = bidderRequest.ortb2.bcat;
}
if (bidderRequest && bidderRequest.ortb2?.badv) {
request.badv = bidderRequest.ortb2.badv;
}
if (bidderRequest && bidderRequest.ortb2?.bapp) {
request.bapp = bidderRequest.ortb2.bapp;
}
return request;
}

Expand Down
16 changes: 13 additions & 3 deletions modules/minutemediaBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,16 @@ function generateBidParameters(bid, bidderRequest) {
bidObject.placementId = placementId;
}

const sua = deepAccess(bid, `ortb2.device.sua`);
if (sua) {
bidObject.sua = sua;
}

const coppa = deepAccess(bid, `ortb2.regs.coppa`)
if (coppa) {
bidObject.coppa = 1;
}

if (mediaType === VIDEO) {
const playbackMethod = deepAccess(bid, `mediaTypes.video.playbackmethod`);
let playbackMethodValue;
Expand Down Expand Up @@ -348,9 +358,9 @@ function generateBidParameters(bid, bidderRequest) {
bidObject.linearity = linearity;
}

const coppa = deepAccess(bid, `ortb2.regs.coppa`);
if (coppa) {
bidObject.coppa = 1;
const plcmt = deepAccess(bid, `mediaTypes.video.plcmt`);
if (plcmt) {
bidObject.plcmt = plcmt;
}
}

Expand Down
12 changes: 6 additions & 6 deletions modules/pairIdSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import { submodule } from '../src/hook.js';
import {getStorageManager} from '../src/storageManager.js'
import { logError } from '../src/utils.js';
import { logInfo } from '../src/utils.js';
import {MODULE_TYPE_UID} from '../src/activities/modules.js';

const MODULE_NAME = 'pairId';
Expand All @@ -17,11 +17,11 @@ const DEFAULT_LIVERAMP_PAIR_ID_KEY = '_lr_pairId';
export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});

function pairIdFromLocalStorage(key) {
return storage.localStorageIsEnabled ? storage.getDataFromLocalStorage(key) : null;
return storage.localStorageIsEnabled() ? storage.getDataFromLocalStorage(key) : null;
}

function pairIdFromCookie(key) {
return storage.cookiesAreEnabled ? storage.getCookie(key) : null;
return storage.cookiesAreEnabled() ? storage.getCookie(key) : null;
}

/** @type {Submodule} */
Expand Down Expand Up @@ -52,7 +52,7 @@ export const pairIdSubmodule = {
try {
ids = ids.concat(JSON.parse(atob(pairIdsString)))
} catch (error) {
logError(error)
logInfo(error)
}
}

Expand All @@ -64,12 +64,12 @@ export const pairIdSubmodule = {
const obj = JSON.parse(atob(liverampValue));
ids = ids.concat(obj.envelope);
} catch (error) {
logError(error)
logInfo(error)
}
}

if (ids.length == 0) {
logError('PairId not found.')
logInfo('PairId not found.')
return undefined;
}
return {'id': ids};
Expand Down
16 changes: 13 additions & 3 deletions modules/riseBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,16 @@ function generateBidParameters(bid, bidderRequest) {
bidObject.api = api;
}

const sua = deepAccess(bid, `ortb2.device.sua`);
if (sua) {
bidObject.sua = sua;
}

const coppa = deepAccess(bid, `ortb2.regs.coppa`)
if (coppa) {
bidObject.coppa = 1;
}

if (mediaType === VIDEO) {
const playbackMethod = deepAccess(bid, `mediaTypes.video.playbackmethod`);
let playbackMethodValue;
Expand Down Expand Up @@ -366,9 +376,9 @@ function generateBidParameters(bid, bidderRequest) {
bidObject.protocols = protocols;
}

const coppa = deepAccess(bid, 'ortb2.regs.coppa')
if (coppa) {
bidObject.coppa = 1;
const plcmt = deepAccess(bid, `mediaTypes.video.plcmt`);
if (plcmt) {
bidObject.plcmt = plcmt;
}
}

Expand Down
Loading

0 comments on commit 0a3cad2

Please sign in to comment.