Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
88 changes: 88 additions & 0 deletions modules/m152BidAdapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Overview

```
Module Name: m152 Bidder Adapter
Module Type: m152 Bidder Adapter
Maintainer: info@152media.com
```

# Description

Connects to m152 exchange for bids.
m152 bid adapter supports Banner, Video (instream and outstream) and Native.

# Region Parameter

**Supported regions:**
- `eu` → `eu.152media-ssp.com`
- `us-east` → `east.152media-ssp.com`

# Test Parameters
```
var adUnits = [
// Will return static test banner
{
code: 'adunit1',
mediaTypes: {
banner: {
sizes: [ [300, 250], [320, 50] ],
}
},
bids: [
{
bidder: 'm152',
params: {
placementId: 'testBanner',
region: 'us-east',
}
}
]
},
{
code: 'addunit2',
mediaTypes: {
video: {
playerSize: [ [640, 480] ],
context: 'instream',
minduration: 5,
maxduration: 60,
}
},
bids: [
{
bidder: 'm152',
params: {
placementId: 'testVideo',
region: 'us-east',
}
}
]
},
{
code: 'addunit3',
mediaTypes: {
native: {
title: {
required: true
},
body: {
required: true
},
icon: {
required: true,
size: [64, 64]
}
}
},
bids: [
{
bidder: 'm152',
params: {
placementId: 'testNative',
region: 'us-east',
}
}
]
}
];
```
48 changes: 48 additions & 0 deletions modules/m152BidAdapter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { BidderSpec, registerBidder } from '../src/adapters/bidderFactory.js';
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
import {
isBidRequestValid,
interpretResponse,
buildRequestsBase,
getUserSyncs,
type TeqBlazeBidParams
} from '../libraries/teqblazeUtils/bidderUtils.ts';
import type { BaseBidderRequest, BidRequest } from '../src/adapterManager.ts';

const BIDDER_CODE = 'm152';
const AD_URL = 'https://#{REGION}#.152media-ssp.com/pbjs';
const GVLID = 1111;
const SYNC_URL = 'https://cs.152media-ssp.com';

declare module '../src/adUnits' {
interface BidderParams {
[BIDDER_CODE]: TeqBlazeBidParams;
}
}

const buildRequests = (validBidRequests: BidRequest<string>[] = [], bidderRequest: BaseBidderRequest<string>) => {
const request = buildRequestsBase({ adUrl: AD_URL, validBidRequests, bidderRequest });
const region = validBidRequests[0].params?.region as string;
Comment thread
monis0395 marked this conversation as resolved.

const regionMap: Record<string, string> = {
eu: 'eu',
'us-east': 'east'
};

request.url = AD_URL.replace('#{REGION}#', regionMap[region]);
Comment thread
patmmccann marked this conversation as resolved.
Comment thread
monis0395 marked this conversation as resolved.

return request;
};

export const spec: BidderSpec<typeof BIDDER_CODE> = {
code: BIDDER_CODE,
gvlid: GVLID,
supportedMediaTypes: [BANNER, VIDEO, NATIVE],

isBidRequestValid: isBidRequestValid(),
buildRequests,
interpretResponse,
Comment thread
patmmccann marked this conversation as resolved.
getUserSyncs: getUserSyncs(SYNC_URL)
};

registerBidder(spec);
Loading
Loading