update_campaign
Modify campaign name, status, budgets, bid strategy, and migrate from CBO to ABO by providing ad set budgets.
Instructions
Update an existing campaign in a Meta Ads account.
Note: Campaigns do not support start_time for scheduling — set start_time on the ad set instead.
Migrating CBO (Advantage Campaign Budget) → ABO (ad set level budgets):
Pass `adset_budgets` with one entry per ad set in the campaign. Meta atomically
removes the campaign-level budget and assigns budgets at the ad set level in a
single call. This is Meta's documented mechanism — the legacy
`use_adset_level_budgets=true` flag attempts to clear `daily_budget`/`lifetime_budget`
but Meta silently ignores the empty values, so the migration does not persist.
Args:
campaign_id: Meta Ads campaign ID
access_token: Meta API access token (optional - will use cached token if not provided)
name: New campaign name
status: New campaign status (e.g., 'ACTIVE', 'PAUSED')
special_ad_categories: List of special ad categories if applicable
daily_budget: New daily budget in account currency (in cents).
lifetime_budget: New lifetime budget in account currency (in cents).
bid_strategy: New bid strategy
bid_cap: New bid cap in account currency (in cents) as a string
spend_cap: New spending limit for the campaign in account currency (in cents) as a string
campaign_budget_optimization: Enable/disable campaign budget optimization
objective: New campaign objective (Note: May not always be updatable)
use_adset_level_budgets: Deprecated for CBO → ABO migration — use `adset_budgets`
instead. Kept for backwards compatibility; sends empty `daily_budget`/
`lifetime_budget` which Meta silently ignores in most cases.
adset_budgets: List of `{"adset_id": "...", "daily_budget": <cents>}` objects.
Use to migrate from CBO to ABO: Meta removes the campaign-level Advantage
budget and assigns the provided daily budgets at the ad set level in one
atomic call. Example:
[{"adset_id": "1234", "daily_budget": 5000},
{"adset_id": "5678", "daily_budget": 7000}]Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | ||
| access_token | No | ||
| name | No | ||
| status | No | ||
| special_ad_categories | No | ||
| daily_budget | No | ||
| lifetime_budget | No | ||
| bid_strategy | No | ||
| bid_cap | No | ||
| spend_cap | No | ||
| campaign_budget_optimization | No | ||
| objective | No | ||
| use_adset_level_budgets | No | ||
| adset_budgets | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |