v2
latestOpenAPI 3.1.02026-08-075421692.0 MBAd Campaigns
Update a campaign
Campaign-level edits. Send at least one of budget, bidStrategy, name or platformSpecificData. An unsupported field is always an error, never a silent drop.
| Body field | Meta | Others | |
|---|---|---|---|
| bidStrategy | Yes | Yes | 501 |
| bidAmount, roasAverageFloor | 400 — ad-set level | Yes | 400 |
| budget (CBO; ABO returns 409) | Yes | 501 | 501 |
| name | Yes | 501 | 501 |
| platformSpecificData.spendCap | Yes | 400 | 400 |
| accountId (empty campaigns) | Yes | - | - |
Google maps the shared enum onto its own strategies: LOWEST_COST_WITHOUT_CAP to Maximize Clicks, LOWEST_COST_WITH_BID_CAP to Maximize Clicks with a max CPC (bidAmount), COST_CAP to Target CPA (bidAmount), LOWEST_COST_WITH_MIN_ROAS to Target ROAS (roasAverageFloor). A campaign on a PORTFOLIO bidding strategy is rejected: detach it in Google Ads first, since it is shared across campaigns.
accountId forwards the update straight to Meta for a campaign with zero ads, which would otherwise 404; the response then carries updated: 0.
put/v1/ads/campaigns/{campaignId}
Path parameters
campaignIdstring required
Platform campaign ID
Request body
Response
Campaign updated