Adhese API (1.0.0)

Download OpenAPI specification:

Development team Adhese: dev@adhese.eu

Advertiser companies

Advertiser company

Get advertiser company by ID

path Parameters
advertiserCompanyId
required
integer
Example: 10

The ID of the advertiser company you want to fetch

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "active": true,
  • "externalId": "string",
  • "subsystemExternalIds": {
    }
}

Advertiser companies

Get a list of active advertiser companies based on the type for campaign creation/modification

query Parameters
type
required
string (AdvertiserCompanyType)
Enum: "ADVERTISER" "INVOICE" "INTERMEDIARY" "MEDIA"

The type of the advertiser companies you want to fetch. Currently only [ADVERTISER,INVOICE] are allowed.

advertiserCompanyId
integer
Example: advertiserCompanyId=102

The id of the advertiser you want to filter this list on

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Advertiser companies

Get a list of advertiser companies based on the type for campaign filtering. Only values used in campaigns visible to the users are returned

query Parameters
type
required
string (AdvertiserCompanyType)
Enum: "ADVERTISER" "INVOICE" "INTERMEDIARY" "MEDIA"

The type of the advertiser companies you want to fetch. Currently only [ADVERTISER,INVOICE] are allowed.

includeInactive
boolean

Specify if inactive entities should be included in the result. If parameter not specified, then only active entities will be returned

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bookings

Get Booking shares

Get the list if next inventory shares of the bookings of a campaign as in the admin UI

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Bookings

Get a list of bookings. Requires filtering on at least one of the ID properties (campaign, booking or creative) or on the search parameter.

query Parameters
campaignId
integer >= 1
Example: campaignId=1

The ID of the campaign(s) you want to fetch bookings for (multiple allowed).

bookingIds
Array of integers
Example: bookingIds=13679,13681

Comma-separated list of booking IDs to filter the results.

creativeId
integer
Example: creativeId=303

Filter bookings linked to a specific creative (multiple allowed).

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list of bookings (ignoring case, on id and name)

status
Array of strings (BookingStatus)
Items Enum: "ACTIVE" "PAUSED" "STOPPED"
Example: status=ACTIVE,PAUSED

Filter applied to one or more booking statuses

sortField
string (BookingSortFields)
Enum: "INTERNAL_ID" "NAME" "STATUS" "START_DATE" "END_DATE"
Example: sortField=INTERNAL_ID

Field that results should be sorted on

sortDirection
string (SortDirection)
Enum: "ASC" "DESC"
Example: sortDirection=ASC

Sort direction to be applied

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Booking

Create a booking

Request Body schema: application/json
campaignId
integer
name
string
startDate
string <date-time>
endDate
string <date-time>
activeDays
Array of strings or null (DayOfWeek)
Enum: "MONDAY" "TUESDAY" "WEDNESDAY" "THURSDAY" "FRIDAY" "SATURDAY" "SUNDAY"
object or null (DeliveryFactors)
object (MediaProductDto)
Array of objects (TargetWithValueIds)
Array of objects (PeriodicalCapping)
Array of objects (DeliveryConstraint)
pacing
string or null
Enum: "EVEN" "FRONTLOADED" "AS_FAST_AS_POSSIBLE" "SHARE_OF_VOICE" "ROTATION"
deliveryParameter
number or null

Float value. Required when pacing is set to "SHARE_OF_VOICE", otherwise to be left empty.

comment
string
priorityId
integer
rtbEnabled
boolean
Default: false
deliveryMultiples
string or null
Enum: "ALL_TOGETHER" "ONE_AT_A_TIME" "EXCLUSIVE_ON_CAMPAIGN" "FREE" "EXCLUSIVE_ON_CREATIVE"
excludePositionIds
Array of integers or null

List of position IDs to exclude from this booking

excludePublicationIds
Array of integers or null

List of publication IDs to exclude from this booking

Responses

Request samples

Content type
application/json
{
  • "campaignId": 5,
  • "name": "My First Booking",
  • "startDate": "2024-01-01T17:56:59Z",
  • "endDate": "2024-01-10T10:00:00Z",
  • "activeDays": [
    ],
  • "deliveryFactors": {
    },
  • "mediaProduct": {
    },
  • "targeting": [
    ],
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0,
  • "comment": "Example comment",
  • "priorityId": 0,
  • "rtbEnabled": false,
  • "deliveryMultiples": "string",
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "status": "ACTIVE",
  • "lifetimeStatus": "INCOMPLETE",
  • "positionId": 0,
  • "positionName": "string",
  • "formatId": 0,
  • "formatName": "string",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "activeDays": [
    ],
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "deliveryFactors": {
    },
  • "creativeCount": 0,
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0.42,
  • "comment": "Example comment",
  • "rtbEnabled": true,
  • "deliveryMultiples": "string",
  • "isBookedOnChannel": true,
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ],
  • "targetExpressions": {
    }
}

Get booking by Id

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to get

Responses

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "status": "ACTIVE",
  • "lifetimeStatus": "INCOMPLETE",
  • "positionId": 0,
  • "positionName": "string",
  • "formatId": 0,
  • "formatName": "string",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "activeDays": [
    ],
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "deliveryFactors": {
    },
  • "creativeCount": 0,
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0.42,
  • "comment": "Example comment",
  • "rtbEnabled": true,
  • "deliveryMultiples": "string",
  • "isBookedOnChannel": true,
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ],
  • "targetExpressions": {
    }
}

Update booking with Id

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to update

Request Body schema: application/json
required

The booking to update

campaignId
integer
name
string
startDate
string <date-time>
endDate
string <date-time>
activeDays
Array of strings or null (DayOfWeek)
Enum: "MONDAY" "TUESDAY" "WEDNESDAY" "THURSDAY" "FRIDAY" "SATURDAY" "SUNDAY"
object or null (DeliveryFactors)
object (MediaProductDto)
Array of objects (TargetWithValueIds)
Array of objects (PeriodicalCapping)
Array of objects (DeliveryConstraint)
pacing
string or null
Enum: "EVEN" "FRONTLOADED" "AS_FAST_AS_POSSIBLE" "SHARE_OF_VOICE" "ROTATION"
deliveryParameter
number or null

Float value. Required when pacing is set to "SHARE_OF_VOICE", otherwise to be left empty.

comment
string
priorityId
integer
rtbEnabled
boolean
Default: false
deliveryMultiples
string or null
Enum: "ALL_TOGETHER" "ONE_AT_A_TIME" "EXCLUSIVE_ON_CAMPAIGN" "FREE" "EXCLUSIVE_ON_CREATIVE"
excludePositionIds
Array of integers or null

List of position IDs to exclude from this booking

excludePublicationIds
Array of integers or null

List of publication IDs to exclude from this booking

Responses

Request samples

Content type
application/json
{
  • "campaignId": 5,
  • "name": "My First Booking",
  • "startDate": "2024-01-01T17:56:59Z",
  • "endDate": "2024-01-10T10:00:00Z",
  • "activeDays": [
    ],
  • "deliveryFactors": {
    },
  • "mediaProduct": {
    },
  • "targeting": [
    ],
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0,
  • "comment": "Example comment",
  • "priorityId": 0,
  • "rtbEnabled": false,
  • "deliveryMultiples": "string",
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "status": "ACTIVE",
  • "lifetimeStatus": "INCOMPLETE",
  • "positionId": 0,
  • "positionName": "string",
  • "formatId": 0,
  • "formatName": "string",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "activeDays": [
    ],
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "deliveryFactors": {
    },
  • "creativeCount": 0,
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0.42,
  • "comment": "Example comment",
  • "rtbEnabled": true,
  • "deliveryMultiples": "string",
  • "isBookedOnChannel": true,
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ],
  • "targetExpressions": {
    }
}

Delete booking by Id

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to (soft)delete/stop. Must be non-running auction booking or draft booking

Responses

Response samples

Content type
application/problem+json
{}

Booking duplication

Duplicate a booking by id, minus state and external key and prepending "Copy:" to the name

path Parameters
bookingId
required
integer
Example: 10

The id of the booking you want to duplicate

Responses

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "status": "ACTIVE",
  • "lifetimeStatus": "INCOMPLETE",
  • "positionId": 0,
  • "positionName": "string",
  • "formatId": 0,
  • "formatName": "string",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "creationDate": "2019-08-24T14:15:22Z",
  • "activeDays": [
    ],
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "deliveryFactors": {
    },
  • "creativeCount": 0,
  • "frequencyLimits": [
    ],
  • "userFrequencies": [
    ],
  • "pacing": "string",
  • "deliveryParameter": 0.42,
  • "comment": "Example comment",
  • "rtbEnabled": true,
  • "deliveryMultiples": "string",
  • "isBookedOnChannel": true,
  • "excludePositionIds": [
    ],
  • "excludePublicationIds": [
    ],
  • "targetExpressions": {
    }
}

Booking status

Update a booking status

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to update

Request Body schema: application/json
string
Enum: "ACTIVE" "PAUSED" "STOPPED"

Responses

Request samples

Content type
application/json
"ACTIVE"

Response samples

Content type
application/problem+json
{}

Creatives for a booking

Creatives for a booking

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to fetch creatives for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bookings for a creative

Gets the bookings for a creative

path Parameters
creativeId
required
integer
Example: 10

The ID of the creative you want to fetch bookings for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Brands

Brands

Get a list of brands filtered on advertiser id and invoice company id for campaign creation/modification

query Parameters
advertiserCompanyId
required
integer
Example: advertiserCompanyId=102

The id of the advertiser you want to filter this list on

invoiceCompanyId
required
integer
Example: invoiceCompanyId=102

The id of the invoice company you want to filter this list on

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Brands

Get a list of brands for campaign filtering. Only values used in campaigns visible to the users are returned

query Parameters
includeInactive
boolean

Specify if inactive entities should be included in the result. If parameter not specified, then only active entities will be returned

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Campaigns

Get all Campaigns

Get a list of campaigns

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list of campaigns (ignoring case, on id, external id and name)

from
string <date-time>
Example: from=2020-01-01T00:00:00Z

Filter to only select campaigns with a start date on or after this date (ISO 8601 format in UTC)

to
string <date-time>
Example: to=2020-01-01T00:00:00Z

Filter to only select campaigns with an end date up to and including this date (ISO 8601 format in UTC)

status
string (ReservationType)
Enum: "CAMPAIGN" "OPTION" "OFFER" "DRAFT"
Example: status=OPTION,OFFER

Filter applied to campaign status, allows multiple selection

type
string (CampaignType)
Enum: "FULL" "PUSH" "GUARANTEED" "AUCTIONED"
Example: type=GUARANTEED,AUCTIONED

Filter applied to campaign type, allows multiple selection

advertiser
integer
Example: advertiser=5

The id of the advertiser you want to filter the campaign list on

invoiceCompany
integer
Example: invoiceCompany=8

The id of the invoiceCompany you want to filter the campaign list on

brand
Array of integers
Example: brand=10,15

The IDs of the brands you want to filter the campaign list on

externalKeys
Array of strings
Example: externalKeys=FOOZ41,BARF66

The list of external keys to match the campaign list on

sortField
string (sortfield)
Enum: "INTERNAL_ID" "NAME" "RESERVATION" "TYPE" "START_DATE" "END_DATE" "CREATION_DATE" "LAST_EDITED_DATE" "VALID_TILL_DATE" "BUDGET" "VOLUME" "BOOKING_BUDGET_SUM" "ADVERTISER" "ADVERTISER_NAME" "INVOICE_COMPANY" "INVOICE_COMPANY_NAME" "PRIORITY" "ORIGIN" "TO_REACH_UNIT" "EXTERNAL_KEY" "CREATED_BY" "LAST_EDITED_BY" "CREATIVE_COUNT"
Example: sortField=START_DATE

Field on what to sort the data one (default is INTERNAL_ID). RESERVATION is what is often called status (CAMPAIGN, DRAFT, OFFER, OPTION)

onlyReviewed
boolean
Deprecated
Example: onlyReviewed=true

Only return reviewed campaigns. Use the filters flag instead.

campaignOrigin
string (CampaignOrigin)
Enum: "CLASSIC" "SHOP" "SYNC" "OTHER" "MCB"
Example: campaignOrigin=MCB,CLASSIC

The origins you want to filter the campaign list on

filters
string (CampaignFilter)
Enum: "ONLY_ONLINE" "ONLY_REVIEWED"
Example: filters=ONLY_ONLINE

Set parameters with flags. Can be multiple at once. Flag ONLY_ONLINE to indicate the list should be filtered on "running" campaigns, currently meaning being in campaign state and having a non-stopped booking start < now < end. Putting 'false' has no effect. Flag ONLY_REVIEWED is equivalent of onlyReviewed parameter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Campaign

Create a campaign. Requires specifying at least either priority ID or campaign type.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string
poNumber
string
advertiserId
required
integer
invoiceCompanyId
required
integer
brandIds
required
Array of integers
Array of objects (PeriodicalCapping)
priorityId
integer
externalKey
string

Only if campaign-manage permission is set for a user. Reference in an external system. Can be made required by setting campaignExternalKeyIsRequired config to true

reservationType
string
Default: "CAMPAIGN"
Enum: "CAMPAIGN" "OPTION" "OFFER" "DRAFT"

Ignored for guaranteed campaigns, in which case it will always be set to "DRAFT".

campaignType
string (CampaignType)
Enum: "FULL" "PUSH" "GUARANTEED" "AUCTIONED"
object (CampaignDeliveryFactors)
internalNote
string
publisherId
integer

if not provided, the user's publisher will be used

Responses

Request samples

Content type
application/json
{
  • "name": "My first campaign",
  • "poNumber": "BC006",
  • "advertiserId": 3,
  • "invoiceCompanyId": 4,
  • "brandIds": [
    ],
  • "frequencyLimits": [
    ],
  • "priorityId": 1,
  • "externalKey": "MC-ADH-123",
  • "reservationType": "CAMPAIGN",
  • "campaignType": "FULL",
  • "deliveryFactors": {
    },
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "lifetimeStatus": "INCOMPLETE",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "budget": "12.34",
  • "bookingBudgetSum": "string",
  • "volume": 0,
  • "toReachUnit": "IMPRESSIONS",
  • "advertiser": 0,
  • "advertiserName": "string",
  • "invoiceCompany": 0,
  • "invoiceCompanyName": "string",
  • "brands": [
    ],
  • "mediaBrands": [
    ],
  • "status": "CAMPAIGN",
  • "priority": 0,
  • "origin": "CLASSIC",
  • "type": "AUCTIONED",
  • "frequencyLimits": [
    ],
  • "createdBy": 0,
  • "creationDate": "2019-08-24T14:15:22Z",
  • "lastEditedBy": 0,
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "externalKey": "string",
  • "validTill": "2019-08-24T14:15:22Z",
  • "deliveryScheme": {
    },
  • "poNumber": "BC009",
  • "message": "string",
  • "creativeCount": 5,
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Get Campaign

Get a campaign by ID

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer
Example: 10

The ID of the campaign you want to fetch

Responses

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "lifetimeStatus": "INCOMPLETE",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "budget": "12.34",
  • "bookingBudgetSum": "string",
  • "volume": 0,
  • "toReachUnit": "IMPRESSIONS",
  • "advertiser": 0,
  • "advertiserName": "string",
  • "invoiceCompany": 0,
  • "invoiceCompanyName": "string",
  • "brands": [
    ],
  • "mediaBrands": [
    ],
  • "status": "CAMPAIGN",
  • "priority": 0,
  • "origin": "CLASSIC",
  • "type": "AUCTIONED",
  • "frequencyLimits": [
    ],
  • "createdBy": 0,
  • "creationDate": "2019-08-24T14:15:22Z",
  • "lastEditedBy": 0,
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "externalKey": "string",
  • "validTill": "2019-08-24T14:15:22Z",
  • "deliveryScheme": {
    },
  • "poNumber": "BC009",
  • "message": "string",
  • "creativeCount": 5,
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Update Campaign

Update Campaign by ID

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer
Example: 10

The ID of the campaign you want to update

Request Body schema: application/json
required

The campaign to update

name
required
string
poNumber
string
advertiserId
required
integer
invoiceCompanyId
required
integer
brandIds
required
Array of integers
Array of objects (PeriodicalCapping)
priorityId
integer
externalKey
string

Only if campaign-manage permission is set for a user. Reference in an external system. Can be made required by setting campaignExternalKeyIsRequired config to true

object (CampaignDeliveryFactors)
internalNote
string
publisherId
integer

if not provided, the user's publisher will be used

Responses

Request samples

Content type
application/json
{
  • "name": "My first campaign",
  • "poNumber": "BC006",
  • "advertiserId": 3,
  • "invoiceCompanyId": 4,
  • "brandIds": [
    ],
  • "frequencyLimits": [
    ],
  • "priorityId": 1,
  • "externalKey": "MC-ADH-123",
  • "deliveryFactors": {
    },
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "lifetimeStatus": "INCOMPLETE",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "budget": "12.34",
  • "bookingBudgetSum": "string",
  • "volume": 0,
  • "toReachUnit": "IMPRESSIONS",
  • "advertiser": 0,
  • "advertiserName": "string",
  • "invoiceCompany": 0,
  • "invoiceCompanyName": "string",
  • "brands": [
    ],
  • "mediaBrands": [
    ],
  • "status": "CAMPAIGN",
  • "priority": 0,
  • "origin": "CLASSIC",
  • "type": "AUCTIONED",
  • "frequencyLimits": [
    ],
  • "createdBy": 0,
  • "creationDate": "2019-08-24T14:15:22Z",
  • "lastEditedBy": 0,
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "externalKey": "string",
  • "validTill": "2019-08-24T14:15:22Z",
  • "deliveryScheme": {
    },
  • "poNumber": "BC009",
  • "message": "string",
  • "creativeCount": 5,
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Delete Campaign

(soft)delete Campaign by ID by (soft)deleting all its Bookings. Is limited by state (draft, or non-started auction)

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer
Example: 10

The ID of the campaign you want to delete

Responses

Conditionally update the status of the bookings in a campaign.

Conditionally update the status of the bookings in a campaign.

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer
Example: 10

The ID of the campaign you want to update.

Request Body schema: application/json

The new status

string
Enum: "ACTIVE" "PAUSED" "STOPPED"

Responses

Request samples

Content type
application/json
"ACTIVE"

Response samples

Content type
application/json
[
  • 0
]

Get Booking shares

Get the list if next inventory shares of the bookings of a campaign as in the admin UI

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer <int32>

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update Campaign status

Update the status of a guaranteed campaign.

Authorizations:
bearerAuth
path Parameters
campaignId
required
integer
Example: 10

The ID of the campaign you want to update.

Request Body schema: application/json
required

The new status and an optional message.

status
required
string (ReservationType)
Enum: "CAMPAIGN" "OPTION" "OFFER" "DRAFT"
message
string

If status is DRAFT, you can provide this message to indicate REJECT or not to indicate RECALL. It should never exceed 250 chars.

Responses

Request samples

Content type
application/json
{
  • "status": "CAMPAIGN",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "internalId": 0,
  • "name": "string",
  • "lifetimeStatus": "INCOMPLETE",
  • "startDate": "2019-08-24T14:15:22Z",
  • "endDate": "2019-08-24T14:15:22Z",
  • "budget": "12.34",
  • "bookingBudgetSum": "string",
  • "volume": 0,
  • "toReachUnit": "IMPRESSIONS",
  • "advertiser": 0,
  • "advertiserName": "string",
  • "invoiceCompany": 0,
  • "invoiceCompanyName": "string",
  • "brands": [
    ],
  • "mediaBrands": [
    ],
  • "status": "CAMPAIGN",
  • "priority": 0,
  • "origin": "CLASSIC",
  • "type": "AUCTIONED",
  • "frequencyLimits": [
    ],
  • "createdBy": 0,
  • "creationDate": "2019-08-24T14:15:22Z",
  • "lastEditedBy": 0,
  • "lastEditedDate": "2019-08-24T14:15:22Z",
  • "externalKey": "string",
  • "validTill": "2019-08-24T14:15:22Z",
  • "deliveryScheme": {
    },
  • "poNumber": "BC009",
  • "message": "string",
  • "creativeCount": 5,
  • "internalNote": "Internal note",
  • "publisherId": 3
}

Unique campaign types

Get a unique list of campaign types for campaign filtering. Only values used in campaigns visible to the users are returned

Responses

Response samples

Content type
application/json
[
  • "AUCTIONED"
]

Channels

Channels

Get a list of channels.

query Parameters
search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list. Matches channel, publication, location, format, or subformat name that includes the search string. Matches channel, publication, location, format, or subformat ID if it exactly matches the search string.

includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive channels in the result.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Config

Account currency

Get the account currency in ISO format

Responses

Response samples

Content type
application/json
{
  • "value": "DKK"
}

Default delivery multiples parameter

Get default delivery multiples parameter, configurable with defaultDeliveryMultiplesParameter param

Responses

Response samples

Content type
application/json
{
  • "value": "one-at-a-time"
}

Used to determine if managed campaigns require an advertiser and a brand.

Get the global setting of mcbCreateCampaignManagedRequiresAdvertiserAndBrand.

Responses

Response samples

Content type
application/json
{
  • "value": true
}

Used to determine if managed campaigns require a debtor.

Get the global setting of mcbCreateCampaignManagedRequiresDebtor.

Responses

Response samples

Content type
application/json
{
  • "value": true
}

Account timezone

Get the account timezone in ISO format

Responses

Response samples

Content type
application/json
{
  • "value": "Europe/Brussels"
}

Account RTB enabled

Get the global setting of whether RTB is enabled.

Responses

Response samples

Content type
application/json
true

Campaign external key required setting

Get the global setting of campaign external key is required.

Responses

Response samples

Content type
application/json
{
  • "value": true
}

Creatives

Upload Creative Deprecated

Upload a creative

query Parameters
key
string
Example: key=2nd

index as a string. 2nd, 3rd, 4th etc. 1st is not used by advar creatives

id
string

the creative id. 0 if new creative, otherwise from the creative

formatId
string

the format id (from the booking)

orderId
string

the campaign id

ignore
boolean

?

versionId
string

version id of the file, starting with 0

qqfile
string

the filename

Request Body schema: application/octet-stream
string <binary>

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "uploadedCreative": {
    }
}

Upload Creative

Upload a creative file by posting the file contents as binary data. The server will store this file in its tmp directory and return its path.

query Parameters
key
required
string
Example: key=2nd

Creative file index written as ordinal number (e.g. 2nd) with the exception of 1, which has key "main" (but is not used in advar creatives).

formatId
required
integer
Example: formatId=1

The ID of the format that will be associated with the creative.

header Parameters
Content-Disposition
required
string
Example: attachment; filename="test.jpg"

Should contain the file name.

Request Body schema: application/octet-stream
string <binary>

Responses

Response samples

Content type
application/json
{
  • "filePath": "/tmp/1727095610724_test.jpg"
}

Create Creative Deprecated

Create a creative

Request Body schema: application/json
creativeId
integer
campaignId
integer
creativeName
string
formatId
integer
advarTemplateName
string or null
object or null (TemplateParameters)
object or null (TemplateFiles)
sku
string or null

Responses

Request samples

Content type
application/json
{
  • "creativeId": 310,
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Response samples

Content type
application/json
{
  • "success": "string",
  • "key": 0
}

Creatives

Get a list of creatives. Requires filtering on at least one of the ID properties (campaign, booking or creative) or on the search parameter.

query Parameters
campaignId
integer
Example: campaignId=10

The ID(s) of the campaign(s) for which you want to get the creatives.

bookingId
integer
Example: bookingId=10

The ID(s) of the booking(s) for which you want to get the creatives.

creativeIds
Array of integers
Example: creativeIds=7130,7152

Comma-separated list of creative IDs to filter the results

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list of creatives (ignoring case, on creative name)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Creative

Create a creative

Request Body schema: application/json
campaignId
integer
creativeName
string
formatId
integer
advarTemplateName
string or null
object or null (TemplateParameters)
object or null (TemplateFiles)
sku
string or null

Responses

Request samples

Content type
application/json
{
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Response samples

Content type
application/json
{
  • "creativeId": 310,
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "lastEdited": 1719389814000,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Creative

Get a single creative

path Parameters
creativeId
required
integer
Example: 10

The id of the creative you want to fetch

Responses

Response samples

Content type
application/json
{
  • "creativeId": 310,
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "lastEdited": 1719389814000,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Update Creative

Update a creative

path Parameters
creativeId
required
integer
Example: 10

The id of the creative you want to update

Request Body schema: application/json
campaignId
integer
creativeName
string
formatId
integer
advarTemplateName
string or null
object or null (TemplateParameters)
object or null (TemplateFiles)
sku
string or null

Responses

Request samples

Content type
application/json
{
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Response samples

Content type
application/json
{
  • "creativeId": 310,
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "lastEdited": 1719389814000,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Duplicate Creative

Duplicate a creative by id. When duplicating to the same campaign, the name is prepended with "Copy of ". When duplicating to a different campaign, the original name is preserved.

path Parameters
creativeId
required
integer
Example: 10

The id of the creative you want to duplicate

Request Body schema: application/json
optional
destinationCampaignId
integer

The campaign to duplicate the creative to. If not provided, duplicates to the same campaign.

Responses

Request samples

Content type
application/json
{
  • "destinationCampaignId": 123
}

Response samples

Content type
application/json
{
  • "creativeId": 310,
  • "campaignId": 120,
  • "creativeName": "My Fourth API creative - updated",
  • "formatId": 3,
  • "advarTemplateName": null,
  • "lastEdited": 1719389814000,
  • "templateParameters": {
    },
  • "templateFiles": {},
  • "sku": "sku1, sku2"
}

Preview links for single creative

Gets the preview links for a creative

path Parameters
creativeId
required
integer
Example: 10

The ID of the creative you want to fetch preview links for

Responses

Preview links for multiple creatives

Gets the preview links for multiple creative ids

query Parameters
creativeIds
required
Array of integers
Example: creativeIds=10,11

Comma-separated list of creative IDs for which to get preview links

Responses

Remove creative

query Parameters
creativeId
required
integer
Example: creativeId=10

The id of the creative you wish to remove

Responses

Response samples

Content type
application/json
{
  • "success": "DELETE on Creative 2785 was successful",
  • "key": 2785
}

Preview Links Deprecated

Fetches the preview links for a creative

Request Body schema: application/x-www-form-urlencoded
id
required
integer

Responses

Creatives for a booking

Creatives for a booking

path Parameters
bookingId
required
integer
Example: 10

The ID of the booking you want to fetch creatives for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bookings for a creative

Gets the bookings for a creative

path Parameters
creativeId
required
integer
Example: 10

The ID of the creative you want to fetch bookings for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Inventory

Account inventory

Get a list of inventory for an account, which colocates related publications, positions, locations and formats.

query Parameters
search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list (publication/position/location/format/subformat name contains the search term or their id equals the search term (if number))

includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive positions in the result.

includeChannels
boolean
Default: false
Example: includeChannels=true

Include positions that are channels in the result.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Channels

Get a list of channels.

query Parameters
search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list. Matches channel, publication, location, format, or subformat name that includes the search string. Matches channel, publication, location, format, or subformat ID if it exactly matches the search string.

includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive channels in the result.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Positions

Get a list of positions and publications pairs by channel id.

query Parameters
channelId
required
integer
Example: channelId=123

The ID of the channel.

search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list (publication/position name contains the search term or their id equals the search term (if number))

includeInactive
boolean
Default: false
Example: includeInactive=true

Include inactive positions in the result.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Media Products

Media Products

Get a list of media products

query Parameters
campaignType
string
Enum: "AUCTION" "GUARANTEED" "FULL"
Example: campaignType=AUCTION

The type of campaign

mediaProductIds
Array of integers
Example: mediaProductIds=10,11

Comma-separated list of media product IDs to filter the results

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Media Product

Get a media product by ID.

path Parameters
mediaProductId
required
integer
Example: 123

The ID of the media product.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "formatId": "string",
  • "name": "string",
  • "description": "string",
  • "price": 0,
  • "externalId": "string",
  • "currency": "EUR"
}

Metrics

Metrics

Get a of metrics per day for a given booking or campaign. Take note that this lives somewhere else (https://data.staging-adhese.org/)

path Parameters
client
required
string
Example: ahms

The name of the client we fetch data for - if it has an enabled metrics job!

query Parameters
entity_type
required
string
Example: entity_type=campaign

Wherever you ask data for: creative, booking or campaign

entity_id
required
integer
Example: entity_id=102

The id of the booking, creative or campaign you want metrics for. Can be repeated

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Notifications

Notifications

Get a list of available notifications

query Parameters
from
required
string <date-time>

The lower bound of the time window to get notifications from.

to
string <date-time>

The upper bound of the time window to get notifications from. If missing, it's unlimited ("now" for most cases, or any future event in others)

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

eventTypes
Array of strings (NotificationEventType)
Items Enum: "BOOKING_CREATIVE_APPROVED" "BOOKING_CREATIVE_REJECTED" "CAMPAIGN_APPROVED" "CAMPAIGN_REJECTED" "BOOKING_INCOMPLETE"
Example: eventTypes=CAMPAIGN_REJECTED,BOOKING_INCOMPLETE

Filter applied to one or more notification event types

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Priority

Priority

Get a list of available priorities

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Priority for campaign type

Get the default priority for a campaign type

query Parameters
campaignType
required
string (CampaignType)
Enum: "FULL" "PUSH" "GUARANTEED" "AUCTIONED"
Example: campaignType=GUARANTEED

The campaign type to get the default priority for

Responses

Response samples

Content type
application/json
{
  • "id": 8,
  • "name": "guaranteed campaign",
  • "index": -1
}

Targets

Flat targets

Get a flat list of each target and value.

query Parameters
positionId
integer
Example: positionId=102

Get targets for a specific position.

bookingId
integer
Example: bookingId=101

Get targets for a specific booking.

targetId
integer
Example: targetId=100

Filter the target values on a specific target id.

includeInactive
boolean
Example: includeInactive=true

Include inactive targets in the result.

targetValueType
string (TargetValueType)
Enum: "INCLUSIVE" "EXCLUSIVE"
Example: targetValueType=INCLUSIVE

Get targets for a specific value type.

search
string
Example: search=123

An url-encoded search string to apply to the list of flat targets (ignoring case, on target name, target value id and -name)

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Targets

Get a list of targets either by position or booking.

query Parameters
positionId
integer
Example: positionId=102

Get targets for a specific position. Need to specify either this or bookingId.

bookingId
integer
Example: bookingId=101

Get targets for a specific booking. Need to specify either this or positionId.

includeInactive
boolean
Example: includeInactive=true

Include inactive targets in the result.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Targets values

Gets the target values of a target group, optionally searchable

path Parameters
targetId
required
integer
Example: 10

The ID of the target you want to fetch values for

query Parameters
search
string
Example: search=Bob

The search term you want to filter (string contains) the target values on

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Activate target

Activates the target

path Parameters
targetId
required
integer
Example: 10

The ID of the target you want to activate

Responses

Response samples

Content type
application/problem+json
{}

Deactivate target

Deactivates the target

path Parameters
targetId
required
integer
Example: 10

The ID of the target you want to deactivate

Responses

Response samples

Content type
application/problem+json
{}

Activate target for selfservice

Activates the target for selfservice by setting environments to "mcb"

path Parameters
targetId
required
integer
Example: 10

The ID of the target you want to activate for selfservice

Responses

Response samples

Content type
application/problem+json
{}

Deactivate target for selfservice

Deactivates the target for selfservice by setting environments to null

path Parameters
targetId
required
integer
Example: 10

The ID of the target you want to deactivate for selfservice

Responses

Response samples

Content type
application/problem+json
{}

Activate target value

Activates the target value

path Parameters
targetId
required
integer
Example: 10

The ID of the target of which value you want to activate

targetValueId
required
integer
Example: 10

The ID of the target value you want to activate

Responses

Response samples

Content type
application/problem+json
{}

Deactivate target value

Deactivates the target value

path Parameters
targetId
required
integer
Example: 10

The ID of the target of which value you want to deactivate

targetValueId
required
integer
Example: 10

The ID of the target value you want to deactivate

Responses

Response samples

Content type
application/problem+json
{}

Targets Deprecated

Deprecated, use /api/mcb/targets instead. Gets the valid targets for a position.

path Parameters
positionId
required
integer
Example: 10

The ID of the position you want to fetch valid targets for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Templates

Advar templates

Fetches the template list

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Advar template description

Fetches description of specified advar template

path Parameters
name
required
string
Example: dooh.json

Name of the advar template

Responses

Response samples

Content type
application/json
{
  • "advar": "string",
  • "files": [
    ],
  • "fields": [
    ]
}

Traffic

Get traffic approvals

Get a paginated list of traffic approvals, optionally filtered by a variety of properties. The combination of campaignId, bookingId and creativeId is unique and will yield a single traffic approval (or none). The expiry field is either 3 (default, configurable with mcbTrafficApprovalDueDateIntervalDays) days from last updated or booking start (whichever is sooner)

query Parameters
state
string (TrafficApprovalState)
Enum: "CLEAR" "PENDING" "REJECTED" "APPROVED" "PENDING_PAUSED" "PAUSED"
Example: state=PENDING

State of the traffic objects you want. Can be supplied multiple times.

search
string
Example: search=Danone

Search on booking and creative ids and names.

advertiserCompanyId
string
Example: advertiserCompanyId=15

The id of the advertiser company you want to filter the list on.

campaignOrigin
Array of strings (CampaignOrigin)
Items Enum: "CLASSIC" "SHOP" "SYNC" "OTHER" "MCB"
Example: campaignOrigin=MCB

Filter the list on the origin of the campaign.

campaignType
Array of strings (CampaignType)
Items Enum: "FULL" "PUSH" "GUARANTEED" "AUCTIONED"
Example: campaignType=FULL

Filter the list on the type of the campaign.

campaignId
Array of integers
Example: campaignId=10

The ID(s) of the campaign(s) you want to fetch traffic approvals for.

bookingId
integer
Example: bookingId=10

The ID(s) of the booking(s) you want to fetch traffic approvals for.

creativeId
integer
Example: creativeId=10

The ID(s) of the creative(s) you want to fetch traffic approvals for.

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

sortField
string
Value: "EXPIRY_DATE"
Example: sortField=EXPIRY_DATE

Sort the returned traffic approvals by the given field.

sortDirection
string
Default: "ASC"
Enum: "ASC" "DESC"

Sort direction to be applied

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update / set traffic state of a creative - booking

Update / set traffic state of a creative - booking combination

Request Body schema: application/json
creativeId
integer
bookingId
integer
state
string (TrafficApprovalState)
Enum: "CLEAR" "PENDING" "REJECTED" "APPROVED" "PENDING_PAUSED" "PAUSED"

This optional field has a default of "PENDING" to not break the current implementation. If we can adjust that in frontend we better make this required

message
string

Message is required when state is REJECTED and should never exceed 250 chars

Responses

Request samples

Content type
application/json
{
  • "creativeId": 10,
  • "bookingId": 10,
  • "state": "CLEAR",
  • "message": "The background is grey, not gray"
}

Response samples

Content type
application/json
"OK"

Flat targets

Flat targets

Get a flat list of each target and value.

query Parameters
positionId
integer
Example: positionId=102

Get targets for a specific position.

bookingId
integer
Example: bookingId=101

Get targets for a specific booking.

targetId
integer
Example: targetId=100

Filter the target values on a specific target id.

includeInactive
boolean
Example: includeInactive=true

Include inactive targets in the result.

targetValueType
string (TargetValueType)
Enum: "INCLUSIVE" "EXCLUSIVE"
Example: targetValueType=INCLUSIVE

Get targets for a specific value type.

search
string
Example: search=123

An url-encoded search string to apply to the list of flat targets (ignoring case, on target name, target value id and -name)

limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Resolve targets

Resolves the provided targets and their values and returns a flattened list of target values.

Request Body schema: application/json
bookingId
integer or null
positionId
integer or null
environment
string or null
object

Responses

Request samples

Content type
application/json
{
  • "bookingId": 10,
  • "positionId": 10,
  • "environment": "MCB",
  • "targetValuesByTargetId": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Formats

Format by id

Get available format by id

path Parameters
id
required
integer
Example: 123

The ID of the format

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "width": "string",
  • "height": "string",
  • "subformat": {
    }
}

Publishers

Publishers

Get a list of publishers

query Parameters
limit
integer [ 1 .. 100 ]
Default: 10
Example: limit=10

Pagination property to limit the number of results.

offset
integer >= 0
Default: 0
Example: offset=0

Pagination property to offset the results.

search
string
Example: search=pepsi%20max

An url-encoded search string to apply to the list of publishers

sortField
string (PublisherSortFields)
Enum: "COMPANY_NAME" "CREATION" "LAST_USED" "CONTACT_NAME"
Example: sortField=COMPANY_NAME

Field that results should be sorted on

sortDirection
string (SortDirection)
Enum: "ASC" "DESC"
Example: sortDirection=ASC

Sort direction to be applied

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Publisher

Get a single publisher

path Parameters
id
required
integer
Example: 10

The id of the publisher you want to fetch

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}