create_adset
Create a new ad set under a campaign. Define targeting, optimization goal, billing event, and budget. Ad set is paused by default. Enable dynamic creative for multi-text formats.
Instructions
WRITE: Create an ad set under a campaign. Default status is PAUSED. targeting is a Meta targeting spec object (geo_locations, age_min, age_max, interests, etc.). bid_amount is in account currency minor units (cents). For multi-text / dynamic creative ads you MUST set is_dynamic_creative=true — otherwise asset_feed_spec ads will be rejected.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_account_id | Yes | 'act_123' or '123' | |
| campaign_id | Yes | ||
| name | Yes | ||
| targeting | Yes | Meta targeting spec object (JSON) | |
| optimization_goal | Yes | e.g. OFFSITE_CONVERSIONS | |
| billing_event | Yes | ||
| bid_amount | No | Bid in minor currency units (cents). Always set at adset level. | |
| daily_budget | No | For ABO; omit under CBO | |
| lifetime_budget | No | ||
| start_time | No | ISO 8601, e.g. '2026-01-15T00:00:00+0000' | |
| end_time | No | ||
| status | No | ||
| is_dynamic_creative | No | Must be true for asset_feed_spec / multi-text creatives | |
| promoted_object | No | e.g. {pixel_id: 'XXX', custom_event_type: 'PURCHASE'} for conversion optimization | |
| pacing_type | No | e.g. ['standard'] or ['no_pacing'] |