Update ad
Patch one or more fields on an ad. Status, budget, targeting, and creative changes are propagated to the platform.
Per-platform support:
- Meta (Facebook + Instagram): all fields supported.
- TikTok: status, budget, targeting (via /v2/adgroup/update/), and creative (via /v2/ad/update/ patch-style — headline is ignored, body becomes ad_text).
- Google: status, budget, and KEYWORD edits via targeting.keywords / targeting.negativeKeywords — each list you send becomes the FULL new set of its kind on the ad group (criteria not in the list are removed); a kind left out is untouched. Any other targeting field returns 400: Google cannot mutate broad targeting post-create without recreating the campaign. creative returns 501.
- Pinterest / X / LinkedIn / OpenAI Ads: status + budget only. Sending targeting or creative returns 501 with code unsupported_platform_operation. OpenAI Ads budget is lifetime-only (see budget.type below).
Path parameters
Request body
Response
Ad updated
Example response
{
"ad": {
"configuredStatus": "ACTIVE",
"creativeType": "video",
"metrics": {
"actions": {
"link_click": 160,
"post_engagement": 300,
"offsite_conversion.fb_pixel_purchase": 42
},
"actionValues": {
"offsite_conversion.fb_pixel_purchase": 2456.78,
"offsite_conversion.fb_pixel_add_to_cart": 980.5
},
"costPerAction": {
"link_click": 0.1052,
"offsite_conversion.fb_pixel_purchase": 4.0114
}
},
"platformObjective": "OUTCOME_SALES",
"optimizationGoal": "OFFSITE_CONVERSIONS",
"costType": "CPC",
"servingStatuses": [
"ACCOUNT_TOTAL_BUDGET_HOLD"
],
"platformAdAccountName": "Zernio - previously Late",
"bidAmount": 5,
"roasAverageFloor": 2,
"promotedObject": {
"custom_event_type": "PURCHASE"
},
"creative": {
"servingHoldReasons": [
"UNDER_REVIEW"
]
}
}
}Changes
Changed in 5 of the 26 revisions of this API.111
- ●
added the new
page_likesenum value to thead/goalresponse property for the response status200response-property-enum-value-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ○
added the non-success response with the status
502response-non-success-status-added
- ○
- ○
added the optional property
ad/creative/creativeIdto the response with the200statusresponse-optional-property-added
- ○
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/costPerActionto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/inlineLinkClickCtrto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/inlineLinkClicksto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/outboundClicksto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/outboundClicksCtrto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/uniqueClicksto the response with the200statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/uniqueCtrto the response with the200statusresponse-optional-property-added
- ○
- ○
added the new optional request property
targeting/keywordsnew-optional-request-property
- ○
added the new optional request property
targeting/negativeKeywordsnew-optional-request-property
- ○