update_meta_ad_set

Meta Ads Write

User wants to edit an existing Meta ad set's targeting, budget, bid, placements, schedule, or optimization settings

Endpoint

POST https://api.adspirer.ai/api/v1/tools/update_meta_ad_set/execute

Headers

Description

User wants to edit an existing Meta ad set's targeting, budget, bid, placements, schedule, or optimization settings. IMPORTANT: This tool modifies REAL ad sets in Meta Ads Manager. Changes take effect immediately. This is the primary tool for: - Changing audience targeting (age, gender, interests, locations) - Excluding placements (e.g., remove Audience Network) - Adjusting budgets at the ad set level - Changing bid amounts - Pausing/resuming specific ad sets - Modifying optimization goals Returns: - Confirmation of updates applied - Summary of all changes made - Ads Manager URL for the ad set When to use this tool: - "Change the targeting on my ad set" - "Exclude Audience Network from placements" - "Update the budget on this ad set to $50/day" - "Pause this ad set" - "Change the age range to 25-45" - "Add interest targeting for fitness" - "Exclude custom audience from this ad set" - "Change bid to $5" - "Update the optimization goal" Parameters: - ad_set_id: The Meta Ad Set ID to update (required) - status: ACTIVE, PAUSED, DELETED, ARCHIVED (optional) - name: New ad set name (optional) - daily_budget: New daily budget in USD (optional, min $1). DO NOT use for CBO campaigns. - lifetime_budget: New lifetime budget in USD (optional). DO NOT use for CBO campaigns. - daily_min_spend_target: CBO only — minimum daily spend for this ad set (use INSTEAD of daily_budget) - daily_spend_cap: CBO only — maximum daily spend cap for this ad set (use INSTEAD of daily_budget) - lifetime_min_spend_target: CBO only — minimum lifetime spend (for lifetime budget CBO) - lifetime_spend_cap: CBO only — maximum lifetime spend cap (for lifetime budget CBO) - bid_amount: New bid amount in USD (optional) - targeting: New targeting spec as JSON (optional) — for placements, audiences, demographics - start_time: New start time ISO format (optional) - end_time: New end time ISO format (optional) - optimization_goal: REACH, LINK_CLICKS, LANDING_PAGE_VIEWS, OFFSITE_CONVERSIONS, VALUE, etc. (optional) **CBO (Advantage Campaign Budget) campaigns:** For ad sets under CBO campaigns, do NOT set daily_budget or lifetime_budget. Use daily_min_spend_target / daily_spend_cap to control spend distribution. Setting daily_budget on a CBO ad set will cause Meta to reject with an error. At least one update field must be provided. Targeting Spec Examples: *Exclude Audience Network:* ```json { "publisher_platforms": ["facebook", "instagram"], "facebook_positions": ["feed", "stories", "reels"], "instagram_positions": ["stream", "story", "reels"] } ``` *Change age and gender:* ```json { "age_min": 25, "age_max": 45, "genders": [1] } ``` (genders: 1=male, 2=female, omit for all) *Add interest targeting:* ```json { "flexible_spec": [{"interests": [{"id": "6003139266461", "name": "Fitness"}]}] } ``` *Exclude custom audience:* ```json { "excluded_custom_audiences": [{"id": "AUDIENCE_ID"}] } ``` Execution time: 2-5 seconds Modifies: Real ad set in Meta Ads Workflow: 1. Use `list_meta_ad_sets` or `get_meta_campaign_details` to find the ad set ID 2. Use `update_meta_ad_set` with the changes you want to make 3. Verify changes in Ads Manager

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
ad_set_idstring requiredThe Meta Ad Set ID to update (required)
statusstring optionalNew status: 'ACTIVE', 'PAUSED', 'DELETED', 'ARCHIVED'
namestring optionalNew ad set name
daily_budgetnumber optionalNew daily budget in USD (minimum $1). Will be converted to cents for Meta API.
lifetime_budgetnumber optionalNew lifetime budget in USD. Will be converted to cents for Meta API.
bid_amountnumber optionalNew bid amount in USD. Will be converted to cents for Meta API.
targetingobject optionalNew targeting specification as a JSON object. Use this for placement exclusions, audience exclusions, age/gender changes, interest targeting updates, and location targeting changes.
start_timestring optionalNew start time in ISO format YYYY-MM-DDTHH:MM:SS
end_timestring optionalNew end time in ISO format YYYY-MM-DDTHH:MM:SS
optimization_goalstring optionalNew optimization goal: REACH, IMPRESSIONS, LINK_CLICKS, LANDING_PAGE_VIEWS, OFFSITE_CONVERSIONS, VALUE, etc.
daily_min_spend_targetnumber optionalMinimum daily spend target in account currency for CBO campaigns. Use this instead of daily_budget when the campaign uses Advantage Campaign Budget. Set to 0 to remove the minimum.
daily_spend_capnumber optionalMaximum daily spend cap in account currency for CBO campaigns. Use this instead of daily_budget when the campaign uses Advantage Campaign Budget. Set to 0 to remove the cap.
lifetime_min_spend_targetnumber optionalMinimum lifetime spend target in account currency for CBO campaigns with lifetime budget.
lifetime_spend_capnumber optionalMaximum lifetime spend cap in account currency for CBO campaigns with lifetime budget.
ad_account_idstring optionalMeta Ad Account ID. Required for multi-account users. Get from list_connected_accounts.

Example request

{
  "arguments": {
    "ad_set_id": "string",
    "status": "string",
    "name": "string",
    "daily_budget": 1.0,
    "lifetime_budget": 1.0,
    "bid_amount": 0.01,
    "targeting": {
      "age_min": 25,
      "age_max": 55,
      "genders": [
        1,
        2
      ],
      "geo_locations": {
        "countries": [
          "US"
        ]
      },
      "interests": [
        {
          "id": "6003107902433",
          "name": "Fitness and wellness"
        }
      ]
    }
  }
}

Example responses

200 — Success

{
  "success": true,
  "data": {
    "text": "(tool-specific textual output for update_meta_ad_set)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "update_meta_ad_set"
}

400 — Tool-level error (bad arguments / multi-account selection)

{
  "success": false,
  "error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n  - Acme Holdings (ad_account_id=\"act_123456789\")\n  - Acme EU (ad_account_id=\"act_987654321\")",
  "is_error": true,
  "tool": "update_meta_ad_set"
}

402 — Quota exhausted

{
  "success": false,
  "error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
  "is_error": true,
  "tool": "update_meta_ad_set",
  "quota": {
    "used": 150,
    "limit": 150,
    "tier": "plus",
    "period_end": "2026-05-01",
    "upgrade_url": "https://adspirer.ai"
  }
}

Try it live


Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai