Skip to main content
Common scenarios:
  • Audience testing: Same ad format, different targeting/interests per ad set (e.g., “4 ad sets with different interests”)
  • Multi-format: Different ad types (image + video + carousel) under one campaign
  • Budget split: Same creative, different budgets per audience segment
  • Scaling: Adding new audiences/markets to an existing campaign
  • Geographic split: Same ad, different locations per ad set
  • Dynamic Creative (DCO): Set is_dynamic_creative=true, then use add_meta_ad with image_urls/headlines/primary_texts
CRITICAL: Each create_meta_*_campaign creates a NEW campaign. To add more ad sets to the SAME campaign, you MUST use this tool. NEVER call create_meta_*_campaign again for the same campaign. IMPORTANT: You need a campaign_id from a previously created campaign. Use get_meta_campaign_details first if you don’t have the campaign_id. Supports all 3 ad types:
  • image: Provide image_url, existing_image_hash, or asset_bundle_id
  • video: Provide video_url or existing_video_id
  • carousel: Provide cards array (2-10 cards)
Dynamic Creative Optimization (DCO):
  • Set is_dynamic_creative=true when creating the ad set
  • Then use add_meta_ad with image_urls (2-10), headlines (up to 5), primary_texts (up to 5) to add a DCO ad
  • Meta automatically tests all asset combinations and optimizes delivery
  • DCO ad sets support only 1 ad — one ad with multiple asset variations
Each ad set has INDEPENDENT: targeting, budget, schedule, pixel/conversion tracking. Shared from campaign: objective, campaign name. CBO (Advantage Campaign Budget) campaigns: If the campaign uses CBO (campaign_budget_optimization=true when created), you MUST:
  • Set campaign_budget_optimization: true on this tool call
  • Do NOT set budget_daily (budget is managed at campaign level)
  • Optionally set daily_min_spend_target and daily_spend_cap to control spend distribution If the campaign does NOT use CBO, budget_daily is required as usual.
Workflow:
  1. Create initial campaign with create_meta_*_campaign - get campaign_id
  2. Call this tool with the campaign_id for each additional ad set
  3. Use add_meta_ad to add more ad copies/creatives within any ad set

OpenAPI

/api-reference/openapi.json post /api/v1/tools/add_meta_ad_set/execute