Update ad order

Modifies an Ad Order.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Campaign Budget Types

Ad Orders inherit their budget type from the Campaign they belong to. The Campaign's budget type determines which budget fields apply.

MONETARY Campaigns

  • Applicable: lifetimeBudget (in USD), dailyBudget (in USD)
  • Not applicable: lifetimeImpressions, dailyImpressions (these fields will be ignored)

IMPRESSIONS Campaigns

  • Applicable: lifetimeImpressions, dailyImpressions
  • Not applicable: lifetimeBudget, dailyBudget (these fields will be ignored)

After creation, the flight endpoint must be used to update startDate, endDate, lifetimeBudget, and lifetimeImpressions.

Note

io_number and externalAdOrderId both serve the same purpose and refer to the same value: an external ID for use by clients. These fields point to the same value; on input, a caller should use one field or the other, not both; on output, both fields are provided (currently), and will have the same value.

Submitting a record with both fields is an error condition, and will result in a 400 response.

Optimization Goals

The optimizationGoal field accepts the following values:

optimizationGoalGoal fieldOther goal fields
CPMnonenulled
CPCctr_goalnulled
CPAcpa_goalnulled
VIDEO_COMPLETION_RATEcompletion_rate_goalnulled

VCR is accepted as a case-insensitive alias for VIDEO_COMPLETION_RATE on input and is normalized to VIDEO_COMPLETION_RATE in the response.

Partial Update Behavior

When updating an existing Ad Order, the following fields preserve their stored values if omitted from the request body:

  • minBidMultiplier
  • maxBidMultiplier
  • completion_rate_goal (when optimizationGoal = VIDEO_COMPLETION_RATE)

To explicitly clear any of these values, pass null.

Request Body

NameTypeDescriptionRequired
idNumberAd order ID.Yes
nameStringAd order name.Yes
campaignIdNumberCampaign ID associated with the ad order.Yes
optimizationGoalStringOptimization goal for the ad order. One of: CPM, CPC, CPA, VIDEO_COMPLETION_RATE (alias: VCR).Yes
startDateNumberStart date of the ad order, passed as Unix time in milliseconds. Use the flight endpoint for changes after creation.No
endDateNumberEnd date of the ad order, passed as Unix time in milliseconds. Use the flight endpoint for changes after creation.No
lifetimeBudgetNumberThe total lifetime budget for the ad order in USD. Use the flight endpoint for changes after creation.No
dailyBudgetNumberThe daily budget limit in USD.Optional. Only applicable for MONETARY campaigns.
lifetimeImpressionsNumberThe total lifetime impressions budget for the ad order. Use the flight endpoint for changes after creation.No
dailyImpressionsNumberThe daily impressions budget limit.Optional. Only applicable for IMPRESSIONS campaigns.
frequencyCapObjectHolds all frequency cap settings. If not present, defaults to null.No
frequencyCap.limitNumberThe maximum number of impressions a user is exposed to per frequency cap time period duration. See frequencyCap.duration and frequencyCap.timePeriod.Yes (if parent object present)
frequencyCap.durationNumberThe number of given frequencyCap.timePeriod.Yes (if parent object present)
frequencyCap.timePeriodStringOne of: MINUTE, HOUR, DAY.Yes (if parent object present)
channelsV2String Array/NullChannels the Ad Order will be capable of serving on: Display, Video, Native, Audio, DOOH, CTV, LTV, LTV Wide Orbit.No
max_bidNumberThe maximum bid. Default values apply when no values are present.No
audienceWeightsEnabledBooleanControls whether audience weights are enabled. If absent on update, the existing value is left untouched.No
ctr_goalNumberCTR goal (e.g. 0.002).Required when optimizationGoal=CPC.
cpa_goalNumberCPA goal value.Required when optimizationGoal=CPA.
completion_rate_goalNumberVideo completion rate goal (0.0–1.0). If omitted on update, the existing stored value is preserved.No (preserved if omitted)
minBidMultiplierNumberMinimum bid multiplier for bid matrix entries. If omitted on update, the existing stored value is preserved.No (preserved if omitted)
maxBidMultiplierNumberMaximum bid multiplier for bid matrix entries. If omitted on update, the existing stored value is preserved.No (preserved if omitted)
goalModeStringOne of: PERFORMANCE, SPEND.No

Examples

Updating only max_bid on a VCR-optimized Ad Order (completion_rate_goal preserved)

{
  "id": 12345,
  "name": "Q1 VCR Campaign",
  "campaignId": 549552,
  "optimizationGoal": "VIDEO_COMPLETION_RATE",
  "max_bid": 3.0,
  "goalMode": "SPEND",
  "audiences": [
    {"id": 7288043, "name": "Default Line", "status": "enabled", "lifetimeFrequencyCap": 0}
  ]
}

Updating only max_bid on a CPM Ad Order (bid multipliers preserved)

{
  "id": 67890,
  "name": "Q1 CPM Campaign",
  "campaignId": 552546,
  "optimizationGoal": "CPM",
  "max_bid": 1.5,
  "goalMode": "SPEND",
  "audiences": [
    {"id": 7286969, "name": "Default Line", "status": "enabled", "lifetimeFrequencyCap": 0}
  ]
}

Error response — Invalid Optimization Goal

When optimizationGoal is set to a value outside the allowed enum, the API returns a structured error in the response body instead of a 500.

{
  "messages": [
    {"message": "Invalid Optimization Goal: INVALID_GOAL", "level": "ERROR", "code": ""},
    {"message": "Optimization Goal is required", "level": "ERROR", "code": ""}
  ],
  "entity": null
}
Path Params
integer
required

Ad Order ID

Body Params
integer
required
string
required
int32
required
string
enum
required

Optimization goal for the ad order.
VCR is accepted as a case-insensitive alias for VIDEO_COMPLETION_RATE on input
and is normalized to VIDEO_COMPLETION_RATE in the response.

Allowed:
number
number
number
frequencyCap
object
number
boolean
boolean
string
enum
Allowed:
number

CPA goal value. Required when optimizationGoal=CPA.

double

CTR goal (e.g. 0.002). Required when optimizationGoal=CPC.

double

Video completion rate goal (0.0–1.0).
Required when optimizationGoal=VIDEO_COMPLETION_RATE on create.
On update, if omitted, the existing stored value is preserved.

number | null

Minimum bid multiplier for bid matrix entries.
On update, if omitted, the existing stored value is preserved.

number | null

Maximum bid multiplier for bid matrix entries.
On update, if omitted, the existing stored value is preserved.

channels
array of strings
channels
string
dayParts
array of objects
dayParts
audiences
array of objects
audiences
string
string
enum
Allowed:
number
Responses

401

Unauthorized

403

Forbidden

404

Not Found

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json