meta_ads_campaigns_create
Create a new Meta Ads campaign with objective and budget. Returns campaign ID; default status PAUSED prevents accidental spend.
Instructions
Creates a new campaign in the specified Meta Ads account. Returns the new campaign id. Mutating — not automatically reversible; record before-state with mureo_state_action_log_append if you may need to roll back. Default initial status is PAUSED — explicitly pass status='ACTIVE' only if the operator has confirmed immediate spend. A campaign acts as a container; ad sets (where budgets and targeting live) and ads must be created separately via meta_ads_ad_sets_create and meta_ads_ads_create.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name. Visible in Ads Manager; Meta allows up to 400 characters. | |
| status | No | Initial status. Default PAUSED. Only set ACTIVE when the operator has signed off on spend. | |
| objective | Yes | Campaign objective using Meta's ODAX taxonomy. Older names (CONVERSIONS, LINK_CLICKS) are rejected by current API versions — use the OUTCOME_* forms. | |
| account_id | No | Meta Ads account ID in the format 'act_XXXXXXXXXX' (e.g. 'act_1234567890'). Optional — falls back to META_ADS_ACCOUNT_ID from the configured credentials. The leading 'act_' prefix is required. | |
| bid_strategy | No | Bid strategy for automatic auction bidding. LOWEST_COST_WITHOUT_CAP is fully automatic (do NOT set bid_amount). LOWEST_COST_WITH_BID_CAP and COST_CAP both require a bid_amount on the ad set (the cap). LOWEST_COST_WITH_MIN_ROAS requires bid_constraints.roas_average_floor on the ad set. When set on the campaign, budgets typically live at the campaign (CBO) level; when set on the ad set, at the ad-set level. | |
| daily_budget | No | Daily budget in account currency minor units (cents for USD, yen for JPY). Mutually exclusive with lifetime_budget. Budgets can live on the campaign (CBO) or the ad set — not both. | |
| lifetime_budget | No | Lifetime budget in account currency minor units. Requires a stop_time on at least one ad set. Mutually exclusive with daily_budget. | |
| is_adset_budget_sharing_enabled | No | Required by Meta when creating a campaign WITHOUT campaign budget optimization (i.e. budgets live on the ad sets). Set false for per-ad-set budgets; set true to let ad sets share a campaign-level budget. |