Skip to content

Commit

Permalink
Merge branch 'master' into prebid-7
Browse files Browse the repository at this point in the history
  • Loading branch information
dgirardi committed May 3, 2022
2 parents 3b3c8a5 + 32f4a5c commit 64375dd
Show file tree
Hide file tree
Showing 16 changed files with 435 additions and 196 deletions.
50 changes: 45 additions & 5 deletions modules/adagioBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import {createEidsArray} from './userId/eids.js';
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
import {Renderer} from '../src/Renderer.js';
import {OUTSTREAM} from '../src/video.js';
import { getGlobal } from '../src/prebidGlobal.js';

const BIDDER_CODE = 'adagio';
const LOG_PREFIX = 'Adagio:';
Expand All @@ -46,7 +47,6 @@ const MAX_SESS_DURATION = 30 * 60 * 1000;
const ADAGIO_PUBKEY = 'AL16XT44Sfp+8SHVF1UdC7hydPSMVLMhsYknKDdwqq+0ToDSJrP0+Qh0ki9JJI2uYm/6VEYo8TJED9WfMkiJ4vf02CW3RvSWwc35bif2SK1L8Nn/GfFYr/2/GG/Rm0vUsv+vBHky6nuuYls20Og0HDhMgaOlXoQ/cxMuiy5QSktp';
const ADAGIO_PUBKEY_E = 65537;
const CURRENCY = 'USD';
const DEFAULT_FLOOR = 0.1;

// This provide a whitelist and a basic validation
// of OpenRTB 2.5 options used by the Adagio SSP.
Expand Down Expand Up @@ -589,13 +589,13 @@ function _getFloors(bidRequest) {
const info = bidRequest.getFloor({
currency: CURRENCY,
mediaType,
size: []
size
});

floors.push(cleanObj({
mt: mediaType,
s: isArray(size) ? `${size[0]}x${size[1]}` : undefined,
f: (!isNaN(info.floor) && info.currency === CURRENCY) ? info.floor : DEFAULT_FLOOR
f: (!isNaN(info.floor) && info.currency === CURRENCY) ? info.floor : undefined
}));
}

Expand Down Expand Up @@ -869,7 +869,9 @@ function storeRequestInAdagioNS(bidRequest) {
}],
auctionId: bidRequest.auctionId,
pageviewId: internal.getPageviewId(),
printNumber
printNumber,
localPbjs: '$$PREBID_GLOBAL$$',
localPbjsRef: getGlobal()
});

// (legacy) Store internal adUnit information
Expand Down Expand Up @@ -937,7 +939,45 @@ export const spec = {
});

// Handle priceFloors module
bidRequest.floors = _getFloors(bidRequest);
const computedFloors = _getFloors(bidRequest);
if (isArray(computedFloors) && computedFloors.length) {
bidRequest.floors = computedFloors

if (deepAccess(bidRequest, 'mediaTypes.banner')) {
const bannerObj = bidRequest.mediaTypes.banner

const computeNewSizeArray = (sizeArr = []) => {
const size = { size: sizeArr, floor: null }
const bannerFloors = bidRequest.floors.filter(floor => floor.mt === BANNER)
const BannerSizeFloor = bannerFloors.find(floor => floor.s === sizeArr.join('x'))
size.floor = (bannerFloors) ? (BannerSizeFloor) ? BannerSizeFloor.f : bannerFloors[0].f : null
return size
}

// `bannerSizes`, internal property name
bidRequest.mediaTypes.banner.bannerSizes = (isArray(bannerObj.sizes[0]))
? bannerObj.sizes.map(sizeArr => {
return computeNewSizeArray(sizeArr)
})
: computeNewSizeArray(bannerObj.sizes)
}

if (deepAccess(bidRequest, 'mediaTypes.video')) {
const videoObj = bidRequest.mediaTypes.video
const videoFloors = bidRequest.floors.filter(floor => floor.mt === VIDEO);
const playerSize = (videoObj.playerSize && isArray(videoObj.playerSize[0])) ? videoObj.playerSize[0] : videoObj.playerSize
const videoSizeFloor = (playerSize) ? videoFloors.find(floor => floor.s === playerSize.join('x')) : undefined

bidRequest.mediaTypes.video.floor = (videoFloors) ? videoSizeFloor ? videoSizeFloor.f : videoFloors[0].f : null
}

if (deepAccess(bidRequest, 'mediaTypes.native')) {
const nativeFloors = bidRequest.floors.filter(floor => floor.mt === NATIVE);
if (nativeFloors.length) {
bidRequest.mediaTypes.native.floor = nativeFloors[0].f
}
}
}

if (deepAccess(bidRequest, 'mediaTypes.video')) {
_buildVideoBidRequest(bidRequest);
Expand Down
10 changes: 1 addition & 9 deletions modules/adyoulikeBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -350,14 +350,6 @@ function getTrackers(eventsArray, jsTrackers) {
return result;
}

function getVideoAd(response) {
var adJson = {};
if (typeof response.Ad === 'string' && response.Ad.indexOf('\/\*PREBID\*\/') > 0) {
adJson = JSON.parse(response.Ad.match(/\/\*PREBID\*\/(.*)\/\*PREBID\*\//)[1]);
return deepAccess(adJson, 'Content.MainVideo.Vast');
}
}

function getNativeAssets(response, nativeConfig) {
if (typeof response.Native === 'object') {
return response.Native;
Expand Down Expand Up @@ -486,7 +478,7 @@ function createBid(response, bidRequests) {
};

// retreive video response if present
const vast64 = response.Vast || getVideoAd(response);
const vast64 = response.Vast;
if (vast64) {
bid.width = response.Width;
bid.height = response.Height;
Expand Down
76 changes: 62 additions & 14 deletions modules/asealBidAdapter.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,77 @@
import { registerBidder } from '../src/adapters/bidderFactory.js';
import { BANNER } from '../src/mediaTypes.js';
import { config } from '../src/config.js';
import { generateUUID, getWindowTop, getWindowSelf } from '../src/utils.js';
import { getStorageManager } from '../src/storageManager.js';

export const BIDDER_CODE = 'aseal';
const SUPPORTED_AD_TYPES = [BANNER];
export const SUPPORTED_AD_TYPES = [BANNER];
export const API_ENDPOINT = 'https://tkprebid.aotter.net/prebid/adapter';
export const HEADER_AOTTER_VERSION = 'prebid_0.0.1';
export const WEB_SESSION_ID_KEY = '__tkwsid';
export const HEADER_AOTTER_VERSION = 'prebid_0.0.2';

export const storage = getStorageManager({ bidderCode: BIDDER_CODE });

const getTrekWebSessionId = () => {
let wsid =
storage.localStorageIsEnabled() &&
storage.getDataFromLocalStorage(WEB_SESSION_ID_KEY);

if (!wsid) {
wsid = generateUUID();
setTrekWebSessionId(wsid);
}

return wsid;
};

const setTrekWebSessionId = (wsid) => {
if (storage.localStorageIsEnabled()) {
storage.setDataInLocalStorage(WEB_SESSION_ID_KEY, wsid);
}
};

const canAccessTopWindow = () => {
try {
return !!getWindowTop().location.href;
} catch (errro) {
return false;
}
};

export const spec = {
code: BIDDER_CODE,
aliases: ['aotter', 'trek'],
supportedMediaTypes: SUPPORTED_AD_TYPES,

isBidRequestValid: (bid) => !!bid.params.placeUid && typeof bid.params.placeUid === 'string',

isBidRequestValid: (bid) =>
!!bid.params.placeUid && typeof bid.params.placeUid === 'string',
buildRequests: (validBidRequests, bidderRequest) => {
if (validBidRequests.length === 0) {
return [];
}

const clientId =
config.getConfig('aseal.clientId') || '';
const clientId = config.getConfig('aseal.clientId') || '';

const windowTop = getWindowTop();
const windowSelf = getWindowSelf();

const w = canAccessTopWindow() ? windowTop : windowSelf;

const data = {
bids: validBidRequests,
refererInfo: bidderRequest.refererInfo,
device: {
webSessionId: getTrekWebSessionId(),
},
payload: {
meta: {
dr: w.document.referrer,
drs: windowSelf.document.referrer,
drt: (canAccessTopWindow() && windowTop.document.referrer) || '',
dt: w.document.title,
dl: w.location.href,
},
},
};

const options = {
Expand All @@ -36,14 +83,15 @@ export const spec = {
},
};

return [{
method: 'POST',
url: API_ENDPOINT,
data,
options,
}];
return [
{
method: 'POST',
url: API_ENDPOINT,
data,
options,
},
];
},

interpretResponse: (serverResponse, bidRequest) => {
if (!Array.isArray(serverResponse.body)) {
return [];
Expand Down
35 changes: 24 additions & 11 deletions modules/automatadBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const spec = {

isBidRequestValid: function (bid) {
// will receive request bid. check if have necessary params for bidding
return (bid && bid.hasOwnProperty('params') && bid.params.hasOwnProperty('siteId') && bid.params.hasOwnProperty('placementId') && bid.hasOwnProperty('mediaTypes') && bid.mediaTypes.hasOwnProperty('banner'))
return (bid && bid.hasOwnProperty('params') && bid.params.hasOwnProperty('siteId') && bid.params.siteId != null && bid.hasOwnProperty('mediaTypes') && bid.mediaTypes.hasOwnProperty('banner') && typeof bid.mediaTypes.banner == 'object')
},

buildRequests: function (validBidRequests, bidderRequest) {
Expand All @@ -29,16 +29,29 @@ export const spec = {
const siteId = validBidRequests[0].params.siteId

const impressions = validBidRequests.map(bidRequest => {
return {
id: bidRequest.bidId,
adUnitCode: bidRequest.adUnitCode,
placement: bidRequest.params.placementId,
banner: {
format: bidRequest.sizes.map(sizeArr => ({
w: sizeArr[0],
h: sizeArr[1],
}))
},
if (bidRequest.params.hasOwnProperty('placementId')) {
return {
id: bidRequest.bidId,
adUnitCode: bidRequest.adUnitCode,
placement: bidRequest.params.placementId,
banner: {
format: bidRequest.sizes.map(sizeArr => ({
w: sizeArr[0],
h: sizeArr[1],
}))
},
}
} else {
return {
id: bidRequest.bidId,
adUnitCode: bidRequest.adUnitCode,
banner: {
format: bidRequest.sizes.map(sizeArr => ({
w: sizeArr[0],
h: sizeArr[1],
}))
},
}
}
})

Expand Down
4 changes: 2 additions & 2 deletions modules/automatadBidAdapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ var adUnits = [
bids: [{
bidder: 'automatad',
params: {
siteId: 'someValue',
placementId: 'someValue'
siteId: 'someValue', // required
placementId: 'someValue' // optional
}
}]
}
Expand Down
18 changes: 14 additions & 4 deletions modules/insticatorBidAdapter.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,25 @@ function buildImpression(bidRequest) {
ext.gpid = gpid;
}

const instl = deepAccess(bidRequest, 'ortb2Imp.instl')
const secure = location.protocol === 'https:' ? 1 : 0;
const pos = deepAccess(bidRequest, 'mediaTypes.banner.pos');

return {
id: bidRequest.bidId,
tagid: bidRequest.adUnitCode,
instl,
secure,
banner: {
format,
pos,
},
ext,
};
}

function buildDevice() {
const deviceConfig = config.getConfig('device');
const device = {
w: window.innerWidth,
h: window.innerHeight,
Expand All @@ -93,8 +101,6 @@ function buildDevice() {
},
};

const deviceConfig = config.getConfig('device');

if (typeof deviceConfig === 'object') {
Object.assign(device, deviceConfig);
}
Expand All @@ -115,13 +121,17 @@ function buildRegs(bidderRequest) {
return {};
}

function buildUser() {
function buildUser(bid) {
const userId = getUserId() || generateUUID();
const yob = deepAccess(bid, 'params.user.yob')
const gender = deepAccess(bid, 'params.user.gender')

setUserId(userId);

return {
id: userId,
yob,
gender,
};
}

Expand Down Expand Up @@ -158,7 +168,7 @@ function buildRequest(validBidRequests, bidderRequest) {
},
device: buildDevice(),
regs: buildRegs(bidderRequest),
user: buildUser(),
user: buildUser(validBidRequests[0]),
imp: validBidRequests.map((bidRequest) => buildImpression(bidRequest)),
ext: {
insticator: {
Expand Down
Loading

0 comments on commit 64375dd

Please sign in to comment.