Create Ad Sets (batch)
adsap_create_ad_setsCreate one or more Meta ad sets under an existing campaign. Supports batch creation (max 20). Ad sets are created PAUSED by default. Leads campaigns take three destinations: ON_AD (Instant Forms), WEBSITE, and WEBSITE_AND_LEAD_FORM (Website and Instant Forms: OFFSITE_CONVERSIONS + pixel, ads then carry a link and a lead form). Not supported yet (say so and point the user to Meta Ads Manager, never substitute another destination): messaging ad sets (Messenger, WhatsApp, Instagram Direct), calls, event responses, reminders, shop destinations. ALWAYS call with dry_run: true first: it validates and renders a launch review card where the user confirms, creates (paused) and activates in-card — after it renders, reply with ONE short sentence and stop; do not call the real create from chat unless the user explicitly asks in a new message and the card's activity log shows nothing was created there. Prerequisites: call list_meta_assets for pages/pixels/Instagram accounts, list_pixel_events for conversion events. For App promotion (OUTCOME_APP_PROMOTION) campaigns: each ad set requires promoted_object.application_id + object_store_url, optimization_goal APP_INSTALLS (or OFFSITE_CONVERSIONS with custom_event_type for app-event optimization), and the promoted app must be in Live mode and advertisable by the ad account; OS targeting (user_os) is derived automatically from the store URL.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ad_sets | Yes | Array of ad set definitions. Max 20 per call. | |
| dry_run | No | When true, validates without creating. Default false. | |
| campaign_id | Yes | Parent campaign ID. Call list_campaigns first if needed. | |
| ad_account_id | No | Target ad account. Defaults to user's primary account. | |
| idempotency_key | No | Unique key to prevent duplicate creation from retries. | |
| campaign_objective | No | Parent campaign's objective. Pass it (e.g. from adsap_create_campaign's response) when the campaign was created recently and may not be cached yet. If omitted, resolved from cache; an unresolvable objective fails with guidance. |