Create Ad Set
meta_create_adsetCreate a targeted ad set in an existing campaign by defining budget, billing event, optimization goal, and audience targeting.
Instructions
Creates a new ad set within a campaign.
Args:
ad_account_id (string): Ad account ID (e.g., act_123456789)
campaign_id (string): Parent campaign ID
name (string): Ad set name
daily_budget (number, optional): Daily budget in cents
lifetime_budget (number, optional): Lifetime budget in cents (requires end_time)
billing_event (string): How you're charged: IMPRESSIONS, LINK_CLICKS, etc.
optimization_goal (string): What to optimize for: REACH, LINK_CLICKS, CONVERSIONS, etc.
targeting (object): Targeting spec JSON. Example: {"geo_locations": {"countries": ["US"]}, "age_min": 18, "age_max": 65}
start_time (string, optional): ISO 8601 start time
end_time (string, optional): ISO 8601 end time (required with lifetime_budget)
status (string): ACTIVE or PAUSED (default PAUSED)
placement_soft_opt_out (string[], optional): Placements to soft opt-out (up to 5% spend may still go to these). Only for Sales/Leads objectives.
Returns the new ad set ID.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_account_id | Yes | Ad account ID | |
| campaign_id | Yes | Parent campaign ID | |
| name | Yes | ||
| daily_budget | No | ||
| lifetime_budget | No | ||
| billing_event | Yes | Billing event type | |
| optimization_goal | Yes | Optimization goal | |
| targeting | Yes | Targeting spec object (geo_locations, age, interests, etc.) | |
| start_time | No | ||
| end_time | No | ||
| status | No | PAUSED | |
| placement_soft_opt_out | No | Placements to soft opt-out (up to 5% spend may still go to these for better performance). Only for Sales/Leads objectives. | |
| response_format | No | Output format: 'markdown' for human-readable or 'json' for machine-readable | markdown |