meta_ads_ad_sets_create
Create a new ad set within an existing Meta Ads campaign. Returns the new ad set ID; defaults to PAUSED until spend is confirmed.
Instructions
Creates a new ad set inside an existing campaign. Returns the new ad_set id. Mutating — not automatically reversible; record before-state with mureo_state_action_log_append if you may need to roll back. Targeting is passed as a Meta targeting spec object; at minimum supply geo_locations and age bounds. Default initial status is PAUSED — only ACTIVE when the operator has confirmed spend. After creation, attach ads with meta_ads_ads_create.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Ad set name, up to 400 characters. | |
| status | No | Initial status. Default PAUSED. Only ACTIVE after operator sign-off. | |
| targeting | No | Meta targeting spec. Typical keys: geo_locations (e.g. {'countries': ['JP']}), age_min, age_max, genders, interests, custom_audiences. See Meta Marketing API targeting docs for the full schema. | |
| 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_amount | No | Bid cap in account currency minor units. Required when bid_strategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Omit for LOWEST_COST_WITHOUT_CAP (automatic bidding). | |
| campaign_id | Yes | Parent campaign ID. Must exist and not be DELETED. | |
| 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). Required unless the parent campaign uses CBO; mutually exclusive with lifetime-budget settings on the same ad set. | |
| billing_event | No | What Meta charges for. Default IMPRESSIONS. The valid options depend on the optimization_goal — incompatible pairings are rejected by Meta. | |
| bid_constraints | No | Bid constraints object. Currently carries roas_average_floor for the LOWEST_COST_WITH_MIN_ROAS strategy. | |
| promoted_object | No | Conversion target for conversion optimization, e.g. {"pixel_id": "123", "custom_event_type": "LEAD"}. Required for conversion optimization (e.g. OUTCOME_LEADS + optimization_goal OFFSITE_CONVERSIONS optimizing to a pixel event). | |
| optimization_goal | No | What Meta optimises delivery for (e.g. REACH, LINK_CLICKS, OFFSITE_CONVERSIONS, LANDING_PAGE_VIEWS, THRUPLAY). Default REACH. Must be compatible with the parent campaign's objective. |