BYOA

Custom Brain

Custom Brain allows the client to use the BYOA API to upload a set of logistic coefficients corresponding to any of the variables currently in use by the MediaMath Brain. These coefficients will then be used by participating strategies to calculate the predicted response rate for each impression. The bidder will calculate bid price by multipling the predicted response rate by the strategy's goal value. Goal values can be modified using the MediaMath Platform campaign management API.

It is best for you to contact us early in your process by emailing developers@mediamath.com, as it may take about 48 hours before you are granted API access to begin work on your model.

BYOM

Download OpenAPI description
Languages
Servers
Mock server
https://apidocs.mediamath.com/_mock/apis/byoa-api/
https://api.byoa.mediamath.com/

Aggregate

Internal methods to create model from a group of campaigns

Operations

Bid Valuator

Internal - Bid valuator

Campaign Settings

BYOA (Bring Your Own Algorithm) allows advertisers to apply their own bidding algorithms within MediaMath. The participating campaigns and strategies are configured with the BYOA Campaign Settings

Operations

Custom Bid Router

Custom Bid Router further extends the BYOA architecture allowing advertisers to apply their own bidding algorithms in their own ecosystem. The MediaMath system will invoke an external call to the client with the bid request and await a response that MediaMath can use in our internal auction. Forwarded bid requests adhere to OpenRTB v2.4 format and may be enriched with certain information such as segment membership and pixel recency.

Operations

Custom Brain

In Customized Brain, the client uses the BYOA API to upload a set of logistic coefficients corresponding to any of the variables currently in use by the MediaMath Brain. These coefficients will then be used by participating strategies to calculate the predicted response rate for each impression. The bidder will calculate bid price by multiplying the predicted response rate by the strategy's goal value. Goal values can be modified using the T1 campaign management API.

Operations

Model Data Delete

Request

Delete a model

Path
model_idstringrequired

Model ID

namespacestringrequired

namespace

curl -i -X DELETE \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/data/{namespace}/models/{model_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "created_on": "2017-07-05T15:21:03.228289Z", "data_size": 30878, "updated_on": "2017-07-05T15:21:03.228289Z" }, "meta": { "status": "success" } }

Model Data Details

Request

Get Model details

Path
model_idstringrequired

Model ID

namespacestringrequired

namespace

curl -i -X GET \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/data/{namespace}/models/{model_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The Data parameter has been drastically shortened for this example.

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "brain_type_id": 3, "created_on": "2019-06-04T19:10:37.951112Z", "Data": "DAAA...", "model_id": "aggregate_2", "Namespace": "100667", "updated_on": "2019-08-17T16:13:35.445614Z" }, "meta": { "status": "success" } }

Model Data Create/Modify

Request

Upload Model data

Path
model_idstringrequired

_

namespacestringrequired

_

Bodyapplication/json

Note: the data field in the example below has been radically shortened for space concerns

datastringrequired
brain_type_idinteger[ 1000 .. 1004 ]required
curl -i -X PUT \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/data/{namespace}/models/{model_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "data": "string",
    "brain_type_id": 1000
  }'

Responses

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "created_on": "2019-07-05T10:18:43.250498Z", "data_size": 2538, "updated_on": "2019-07-05T10:18:43.250498Z" }, "meta": { "status": "success" } }

Model Data Decode

Request

Get Model details

Path
model_idstringrequired

model ID

namespacestringrequired

namespace

curl -i -X GET \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/data/decode/{namespace}/models/{model_id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The Features (under Data under data) in the example below have been extremely abbreviated for easier readability. GoalType (under Data) is case-insensitive.

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "brain_type_id": 3, "created_on": "2019-06-04T19:10:37.951112Z", "Data": [], "model_id": "aggregate_2", "Namespace": "100667", "updated_on": "2019-08-17T16:13:35.445614Z" }, "meta": { "status": "success" } }

Model Data Details for Namespace

Request

Get all Models and data for a specific namespace

Path
namespaceintegerrequired

namespace

Query
model_idstring

Model ID

curl -i -X GET \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/data/{namespace}?model_id=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

The parameter Data had a very long value, which has been shortened for readabiltiy here. Really the same as doing a GET /data/{namespace}/models/{model_id}.

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "brain_type_id": 3, "created_on": "2019-06-04T19:10:37.951112Z", "Data": "DAAA...", "model_id": "aggregate_2", "Namespace": "100667", "updated_on": "2019-08-17T16:13:35.445614Z" }, "meta": { "status": "success" } }

Executors

Internal methods used to configure Log Brain and Tree Brain executors

Operations

Jumpstart

Internal - Jumpstart campaigns

Operations

Serialize

Internal methods to update the BYOA execution engines with current campaigns and settings

Operations