create_campaign
Create a Meta ad campaign with a required name and objective; campaigns start paused by default, and budgets can be set at campaign or ad set level.
Instructions
Create a new ad campaign. Defaults to PAUSED status. Requires name and objective. Budget can be set at campaign or ad set level.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name | |
| status | No | Campaign status (default PAUSED) | PAUSED |
| objective | Yes | Campaign objective | |
| spend_cap | No | Lifetime spend cap for the campaign, in account currency cents. Once set it cannot be removed, only raised or reset — pass '0' to reset/clear it. | |
| stop_time | No | Campaign stop time (ISO 8601 format) | |
| account_id | No | Ad account ID to create the campaign in (e.g. 'act_123' or '123'). Falls back to META_AD_ACCOUNT_ID env var if omitted. | |
| start_time | No | Campaign start time (ISO 8601 format) | |
| bid_strategy | No | Bid strategy: LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, COST_CAP, LOWEST_COST_WITH_MIN_ROAS. Meta defaults new campaigns to LOWEST_COST_WITH_BID_CAP, which requires a bid_amount on every ad set — pass LOWEST_COST_WITHOUT_CAP to avoid that. | |
| daily_budget | No | Daily budget in account currency cents (e.g. '5000' = $50.00) | |
| lifetime_budget | No | Lifetime budget in account currency cents | |
| special_ad_categories | No | JSON array of special ad categories: HOUSING, EMPLOYMENT, FINANCIAL_PRODUCTS_SERVICES, ISSUES_ELECTIONS_POLITICS, NONE. This field is required by Meta on every campaign — pass '[]' or '["NONE"]' if none apply. CREDIT was renamed to FINANCIAL_PRODUCTS_SERVICES; the old name is no longer accepted. | |
| special_ad_category_country | No | JSON array of ISO 3166-1 alpha-2 country codes, e.g. '["US"]'. Required for ISSUES_ELECTIONS_POLITICS (which also requires authorization to run ads in those countries). For HOUSING, EMPLOYMENT, and FINANCIAL_PRODUCTS_SERVICES it is optional and defaults to the ad account's listed tax country if omitted. | |
| is_adset_budget_sharing_enabled | No | Whether ad sets under this campaign can share budget with each other. Required on some newer ad accounts — omitting it can cause campaign creation to fail with 'Must specify True or False in is_adset_budget_sharing_enabled'. |