User wants to create a Meta (Facebook/Instagram) single-image 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 video ads - use create_meta_video_campaign instead.
DO NOT USE for carousel/multi-image - use create_meta_carousel_campaign instead.
This tool creates a complete Meta campaign with:
When to use this tool:
Required Parameters:
Image Source (choose ONE):
validate_and_prepare_meta_assets (recommended for new images)discover_meta_assets (for reusing existing images)Optional Parameters:
Multi-Placement Creatives: If the user wants different images for different placements (Feed, Stories, Right Column), provide story_image_url and/or right_column_image_url. The main image will be used for Feed. This uses Meta’s asset_feed_spec with asset_customization_rules instead of object_story_spec.
After Creation — IMPORTANT:
add_meta_ad_set with the returned campaign_idadd_meta_ad with the returned ad_set_idAPI key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
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
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 single-image ad campaigns
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.