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

Get serialized aggregates

Request

Retrieve aggregates from a list of namespaces

Query
namespacestringrequired

Adama_session_exp

Default "123456,234567"
curl -i -X GET \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates/serialize?namespace=123456%2C234567' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Please note that namespace is a required query parameter.

Bodyapplication/json
dataArray of objects
metaobject
Response
application/json
{ "data": [ {} ], "meta": { "status": "success" } }

Create aggregate

Request

Create an aggregate for an organization and list of campaigns to aggregate

Bodyapplication/json

_

campaign_idsArray of integers
namespacestring
vanity_namestring
curl -i -X PUT \
  https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "campaign_ids": [
      0
    ],
    "namespace": "string",
    "vanity_name": "string"
  }'

Responses

Bodyapplication/json
campaign_idsArray of integers
namespacestring
vanity_namestring
Response
application/json
{ "campaign_ids": [ 234567, 345678, 456789 ], "namespace": "mm", "vanity_name": "shared_brain_1" }

Modify aggregate

Request

Modify an already created aggregate

Path
aggregate_idstringrequired

_

Bodyapplication/json

_

campaign_idsArray of integers
namespacestring
vanity_namestring
curl -i -X PUT \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates/{aggregate_id}' \
  -H 'Content-Type: application/json' \
  -H 'adama_session: YOUR_API_KEY_HERE' \
  -d '{
    "campaign_ids": [
      0
    ],
    "namespace": "string",
    "vanity_name": "string"
  }'

Responses

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "aggregate_name": "aggregate_2", "campaign_ids": [], "created_on": "2019-01-29T15:51:37.095474Z", "ID": 2, "namespace": "123456", "output_campaigns": [], "updated_on": "2019-01-29T18:09:31.870659Z", "vanity_name": "Roy G Biv" }, "meta": { "status": "success" } }

Delete aggregate

Request

Delete an aggregate

Path
aggregate_idstringrequired

_

curl -i -X DELETE \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates/{aggregate_id}'

Responses

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "aggregate_name": "aggregate_2", "campaign_ids_aggregate": [], "created_on": "2019-01-29T15:51:37.095474Z", "ID": 2, "namespace": "mm", "output_campaigns": [], "updated_on": "2019-01-29T18:09:31.870659Z", "vanity_name": "Roy G Biv" }, "meta": { "status": "success" } }

Get aggregate

Request

Retrieve an aggregate

Path
aggregate_idstringrequired

_

curl -i -X GET \
  'https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates/{aggregate_id}' \
  -H 'adama_session: YOUR_API_KEY_HERE'

Responses

Example is a response to: GET https://api.byoa.mediamath.com/aggregates/107

Bodyapplication/json
dataobject
metaobject
Response
application/json
{ "data": { "aggregate_name": "aggregate_107", "campaign_ids": [], "created_on": "2019-04-29T16:56:44.974853Z", "ID": 107, "namespace": "100667", "output_campaigns": [], "updated_on": "2019-05-21T19:01:39.181669Z", "vanity_name": "Roy G Biv" }, "meta": { "status": "success" } }

Get serialized aggregates

Request

Private - Return

curl -i -X GET \
  https://apidocs.mediamath.com/_mock/apis/byoa-api/aggregates/serialize_all

Responses

Bodyapplication/json
dataArray of objects
metaobject
Response
application/json
{ "data": [ {}, {} ], "meta": { "status": "success" } }

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

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