Create Meta Carousel Campaign
User wants to create a Meta (Facebook/Instagram) carousel ad campaign with multiple images.
REQUIRED: You MUST call select_meta_campaign_type first and complete ALL phases it describes (audience targeting research via search_meta_targeting/browse_meta_targeting, asset discovery via discover_meta_assets, and user approval) BEFORE calling this tool.
IMPORTANT: This tool creates REAL campaigns that will spend money once activated. Campaign is created in PAUSED status for review.
DO NOT USE for single image - use create_meta_image_campaign instead.
DO NOT USE for video - use create_meta_video_campaign instead.
This tool creates a complete Meta carousel campaign with:
- Campaign (objective, budget)
- Ad Set (targeting, placements, schedule)
- Multiple Image Uploads (one per card)
- Ad Creative (carousel with child_attachments)
- Ad (linking creative to ad set)
When to use this tool:
- “Create a Facebook carousel ad”
- “Launch an Instagram carousel campaign”
- “Create a multi-product ad”
- “Set up an ad with multiple images”
Required Parameters:
- campaign_name: Name for the campaign
- budget_daily: Daily budget in USD (min 5-20 for testing)
- primary_text: Main ad text (recommended 125 chars for optimal display, longer text shows with “See More”)
- cards: Array of 2-10 cards (see card structure below)
Card Structure (each card requires):
- image_url OR image_hash: Image source (one required)
- landing_page_url: Where users go when clicking this card
- headline: Card headline (max 45 chars)
- description: Optional card description (max 20 chars)
- call_to_action: Optional per-card CTA override
Optional Parameters:
- facebook_page_id: Auto-detected from connected account
- instagram_account_id: Enable Instagram placements
- call_to_action: Default CTA for all cards (LEARN_MORE by default)
- objective: OUTCOME_TRAFFIC (default), OUTCOME_SALES, OUTCOME_LEADS
- locations: Country codes (default: [‘US’])
- age_min/age_max: Age targeting (18-65)
- genders: [‘male’], [‘female’], or null for all
- multi_share_optimized: Let Meta optimize card order (default: true)
- pixel_id: Meta Pixel ID for conversion tracking (required for OUTCOME_SALES)
- pixel_event_name: Conversion event (PURCHASE, LEAD, etc.)
After Creation — IMPORTANT:
- This tool created 1 campaign + 1 ad set + 1 ad.
- To add MORE ad sets (different targeting, audiences, or formats), use
add_meta_ad_setwith the returned campaign_id - To add MORE ads to the same ad set (A/B test copy/creative), use
add_meta_adwith the returned ad_set_id - NEVER call this create tool again for the same campaign — that creates a SEPARATE campaign
Authorizations
API key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
Headers
Client-generated UUID to make writes idempotent. Strongly recommended for write tools. A repeat call with the same key returns the cached result instead of re-executing. Example: 550e8400-e29b-41d4-a716-446655440000
Body
All tool arguments are wrapped in an arguments object. The fields accepted inside arguments are listed below — required fields are marked with a red asterisk.
Input schema for creating Meta carousel ad campaigns
Response
Tool executed successfully. data.text carries the human-readable result (markdown-friendly). data.quota shows your current usage against the plan limit. data.structured appears when the tool emits machine-parseable structured content. data.content appears for tools that return non-text blocks (images, resources).
Returned on HTTP 200. data.text is the primary human-readable output. data.quota is always present for billable calls. data.structured is set only when the tool emits machine-parseable structured content. data.content is set only when the tool emits non-text content blocks.

