create_meta_campaign
Create a complete Meta ad campaign with campaign, ad set, creatives, and ads in one call. Simulate with dry run first, then deploy paused campaigns with confirmed budget and targeting.
Instructions
Create a complete Meta ad campaign: campaign, ad set, creatives, and ads.
Each item in ads is a dict with:
name (str): ad name
image_path (str): absolute path to image file on disk
primary_text (str): ad body copy
headline (str): ad headline
link (str): destination URL
cta (str, optional): call-to-action button, default "LEARN_MORE"
description (str, optional): ad description text
daily_budget_cents: budget in cents. 1000 = $10/day, 3000 = $30/day.
dry_run: when True (default), simulates all API calls without spending money. Set dry_run=False to actually deploy. All campaigns start as PAUSED regardless. confirm: required when dry_run=False. This is the approval gate.
Valid objectives: OUTCOME_TRAFFIC, OUTCOME_AWARENESS, OUTCOME_ENGAGEMENT, OUTCOME_LEADS, OUTCOME_SALES, OUTCOME_APP_PROMOTION
Valid CTAs: LEARN_MORE, SIGN_UP, DOWNLOAD, SHOP_NOW, BOOK_NOW, GET_OFFER, SUBSCRIBE, CONTACT_US, APPLY_NOW, WATCH_MORE, INSTALL_MOBILE_APP
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ads | No | ||
| age_max | No | ||
| age_min | No | ||
| confirm | No | ||
| dry_run | No | ||
| countries | No | ||
| objective | No | OUTCOME_TRAFFIC | |
| ad_set_name | Yes | ||
| campaign_name | Yes | ||
| optimization_goal | No | LINK_CLICKS | |
| daily_budget_cents | No |