Skip to Content
Tool referenceUpdate entity

Update entity (adsap_update_entity)

Platform: Meta · Read or write: Write · Plan: All plans · Consumes a task: Yes · Preview supported: Yes

What it does

Edits an existing Meta campaign, ad set or ad. You can change the name, the status, the budget, the schedule, or the targeting of an ad set. Only the fields you mention change. Ask for a preview to see the current value next to the new one before it applies.

When to use it

  • Use it to edit one existing campaign, ad set or ad: name, status, daily_budget, lifetime_budget, start_time, end_time, stop_time or targeting.
  • Put only the fields you want to change in updates. At least one is required, and daily_budget and lifetime_budget cannot go in the same call.
  • Budgets are integers in cents and belong on a campaign or an ad set, never on an ad. targeting is accepted on ad sets only.
  • It supports a preview call. With dry_run set to true, Adsap reads the current values from Meta and returns a field by field diff.
  • It does not edit ad content such as text, links or media. For that, use adsap_replace_ad_creative. To pause many entities at once, use adsap_set_entity_status.

Worked example

You ask

“Raise the daily budget on the Prospecting US ad set to $80 and rename it. Show me the change before you apply it.”

The assistant calls adsap_update_entity

{ "entity_type": "adset", "entity_id": "120210000000001", "ad_account_id": "act_1234567890", "updates": { "name": "Prospecting US, broad", "daily_budget": 8000 }, "dry_run": true }

Adsap returns

The field names are the ones Adsap returns. The values are examples.

{ "ok": true, "dry_run": true, "entity_type": "adset", "entity_id": "120210000000001", "name": "Prospecting US", "current_status": "ACTIVE", "effective_status": "ACTIVE", "changes": [ { "field": "name", "current_value": "Prospecting US", "new_value": "Prospecting US, broad", "will_change": true }, { "field": "daily_budget", "current_value": "5000", "new_value": 8000, "will_change": true } ], "total_would_change": 2 }

How to read it

changes has one entry per field you sent. current_value is what Meta holds now and new_value is what you asked for. Budgets are in cents, so 8000 is 80.00 in the account currency. will_change is false when the two already match, and total_would_change counts the entries that differ.

The response also carries a human_readable_summary sentence, left out here. Nothing has been applied. When the diff looks right, the assistant repeats the call with dry_run set to false.

Parameters

Descriptions are shortened from the tool schema. Your assistant sees the full text.

NameTypeRequiredDescription
entity_typeone of campaign, adset, adYes
entity_idstringYes
ad_account_idstringYes
updatesobjectYesOnly the fields you want to change. At least one is required.
updates.namestringNo
updates.statusone of PAUSED, ACTIVENo
updates.daily_budgetintegerNoIn cents (minor units). campaign (CBO) or ad set (ABO) only: never on an ad. Mutually exclusive with lifetime_budget.
updates.lifetime_budgetintegerNoIn cents (minor units). campaign (CBO) or ad set (ABO) only. Mutually exclusive with daily_budget.
updates.start_timestringNoISO 8601 start time.
updates.end_timestringNoISO 8601 end time (ad set schedule).
updates.stop_timestringNoISO 8601 stop time (campaign lifetime).
updates.targetingobjectNoAD SET ONLY. Full Meta targeting spec, passed through to Meta as-is. Use adsap_search_detailed_targeting / adsap_search_interests / adsap_search_behaviors / adsap_search_geo_locations to obtain valid IDs first (detailed targeting groups go in flexible_spec: OR inside a group, AND between groups).
updates.daily_min_spend_targetintegerNoAD SET ONLY. Minimum daily spend in cents (minor units); 0 removes the limit. Requires the campaign to have a daily budget (Advantage campaign budget).
updates.daily_spend_capintegerNoAD SET ONLY. Daily spend cap in cents; 0 removes the limit. Requires a campaign daily budget.
updates.lifetime_min_spend_targetintegerNoAD SET ONLY. Lifetime minimum spend in cents; 0 removes it. Requires a campaign lifetime budget.
updates.lifetime_spend_capintegerNoAD SET ONLY. Lifetime spend cap in cents; 0 removes it. Requires a campaign lifetime budget.
updates.min_spend_percentageintegerNoAD SET ONLY. Minimum daily spend as a % of the CAMPAIGN daily budget (Advantage campaign budget campaigns), like Ads Manager’s percentage option… 0 removes it.
updates.max_spend_percentageintegerNoAD SET ONLY. Daily spend cap as a % of the campaign daily budget. Same mechanics as min_spend_percentage.
dry_runbooleanNoPreview only: the request is validated and the resolved payload returned, nothing is created or changed.

Example prompts

  • “Raise the daily budget on the Prospecting ad set to $80.”
  • “Rename the campaign ‘Test 1’ to ‘Spring Launch, US’ and end it on May 31.”
  • “Show me the diff if I widen the age range on the Retargeting ad set to 18 to 65.”

Notes

Budgets apply at the campaign level for CBO and at the ad set level for ABO. Targeting changes apply to ad sets only.

Guide

Read Managing campaigns for the workflow around this tool, and the Tool reference for every tool.

The Meta Ads MCP server  page shows how to connect Meta Ads to Claude, ChatGPT or Perplexity.

Last updated on