Create Meta Video Campaign
User wants to create a Meta (Facebook/Instagram) video ad campaign.
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 image ads - use create_meta_image_campaign instead.
DO NOT USE for carousel - use create_meta_carousel_campaign instead.
This tool creates a complete Meta video campaign with:
- Campaign (objective, budget)
- Ad Set (targeting, placements, schedule)
- Video Upload (handles large files with chunked upload)
- Ad Creative (video, text, CTA)
- Ad (linking creative to ad set)
When to use this tool:
- “Create a Facebook video ad campaign”
- “Launch an Instagram video ad”
- “Set up a Meta Reels campaign”
- “Create an ad with this video”
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”)
- landing_page_url: Where users go when clicking
Video Source (choose ONE):
- video_url: Public video URL (will be uploaded during creation)
- existing_video_id: Existing Meta video ID (for reusing previously uploaded videos)
Optional Parameters:
- facebook_page_id: Auto-detected from connected account
- instagram_account_id: Enable Instagram placements
- thumbnail_url: Custom thumbnail image (Meta auto-generates if not provided)
- headline: Headline below video (optional for video ads)
- description: Description text (max 255 chars, recommended 30)
- call_to_action: WATCH_MORE (default), LEARN_MORE, SHOP_NOW, etc.
- objective: OUTCOME_TRAFFIC (default), OUTCOME_SALES, OUTCOME_LEADS, OUTCOME_AWARENESS
- locations: Country codes (default: [‘US’])
- age_min/age_max: Age targeting (18-65)
- genders: [‘male’], [‘female’], or null for all
- optimize_for_reels: true for vertical (9:16) videos
- pixel_id: Meta Pixel ID for conversion tracking (required for OUTCOME_SALES)
- pixel_event_name: Conversion event (PURCHASE, LEAD, etc.)
Video Specifications:
- Formats: MP4, MOV (recommended: MP4 H.264)
- Max size: 4GB (recommended under 1GB)
- Duration: 1 sec - 240 min (recommended 15-60 sec)
- Feed: 1:1 or 4:5 aspect ratio
- Stories/Reels: 9:16 aspect ratio
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 video 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.

