Skip to main content
Glama

meta_ads_campaigns_update

Updates fields on an existing Meta Ads campaign while preserving unsupplied fields, then returns the updated campaign for verification.

Instructions

Updates fields on an existing campaign. Partial update — only the supplied fields are changed. Returns the updated campaign. Mutating — not automatically reversible; record before-state with mureo_state_action_log_append if you may need to roll back. For status-only transitions prefer meta_ads_campaigns_pause / meta_ads_campaigns_enable, which are safer and map to a single explicit operator intent.

Input Schema

NameRequiredDescriptionDefault
nameNoNew campaign name.
reasonNoWhy this change is being made: one or two sentences naming the evidence and the expected effect. Stored in the journal and on the action_log entry this call produces, for the operator and the next session.
statusNoNew campaign status. Prefer the dedicated meta_ads_campaigns_pause / enable tools for ACTIVE ↔ PAUSED transitions.
approvalNoExternal approval this change carries out (recorded and shown, never verified)
expectedNoExpected effects [{metric, direction, target?, horizon_days?, primary?}], exactly one primary:true when several; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold.
account_idNoMeta Ads account ID in the format 'act_XXXXXXXXXX' (e.g. 'act_1234567890'). Optional — falls back to META_ADS_ACCOUNT_ID from the configured credentials. The leading 'act_' prefix is required.
campaign_idYesCampaign ID to update.
decision_idNoA proposed decision this change carries out.
bid_strategyNoBid strategy for automatic auction bidding. LOWEST_COST_WITHOUT_CAP is fully automatic (do NOT set bid_amount). LOWEST_COST_WITH_BID_CAP and COST_CAP both require a bid_amount on the ad set (the cap). LOWEST_COST_WITH_MIN_ROAS requires bid_constraints.roas_average_floor on the ad set. When set on the campaign, budgets typically live at the campaign (CBO) level; when set on the ad set, at the ad-set level.
daily_budgetNoNew daily budget in account currency minor units (cents for USD, yen for JPY). Only settable when the campaign is configured for CBO; ad-set-level budgets must be edited via meta_ads_ad_sets_update.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.33.0
    • changedInput schema / properties / expected / description
      Previous value: -"Expected effects [{metric, direction, target?, horizon_days?}]; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold."New value: +"Expected effects [{metric, direction, target?, horizon_days?, primary?}], exactly one primary:true when several; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold."
  2. Changed1 schema field changedv0.28.0
    • addedInput schema / properties / approval
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "External approval this change carries out (recorded and shown, never verified)",
      +  "properties": {
      +    "approved_at": {
      +      "maxLength": 64,
      +      "type": "string"
      +    },
      +    "approved_by": {
      +      "maxLength": 80,
      +      "type": "string"
      +    },
      +    "reference": {
      +      "maxLength": 128,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "reference",
      +    "approved_by",
      +    "approved_at"
      +  ],
      +  "type": "object"
      +}
  3. Changed2 schema fields changedv0.26.0
    • addedInput schema / properties / decision_id
      Added value: +{
      +  "description": "A proposed decision this change carries out.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / expected
      Added value: +{
      +  "description": "Expected effects [{metric, direction, target?, horizon_days?}]; metric cpa/cpc/cpl/cpm/conversions/cvr/ctr/roas/cost/spend/clicks/impressions; direction up/down/hold.",
      +  "maxItems": 12,
      +  "type": "array"
      +}
  4. Changed1 schema field changedv0.20.0
    • addedInput schema / properties / reason
      Added value: +{
      +  "description": "Why this change is being made: one or two sentences naming the evidence and the expected effect. Stored in the journal and on the action_log entry this call produces, for the operator and the next session.",
      +  "maxLength": 500,
      +  "type": "string"
      +}
  5. Changed2 schema fields changedv0.10.37
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / bid_strategy
      Added value: +{
      +  "description": "Bid strategy for automatic auction bidding. LOWEST_COST_WITHOUT_CAP is fully automatic (do NOT set bid_amount). LOWEST_COST_WITH_BID_CAP and COST_CAP both require a bid_amount on the ad set (the cap). LOWEST_COST_WITH_MIN_ROAS requires bid_constraints.roas_average_floor on the ad set. When set on the campaign, budgets typically live at the campaign (CBO) level; when set on the ad set, at the ad-set level.",
      +  "enum": [
      +    "LOWEST_COST_WITHOUT_CAP",
      +    "LOWEST_COST_WITH_BID_CAP",
      +    "COST_CAP",
      +    "LOWEST_COST_WITH_MIN_ROAS"
      +  ],
      +  "type": "string"
      +}
  6. Addedv0.9.12
  7. Removedv0.9.6
  8. Addedv0.9.2
  9. Removedv0.9.1
  10. Addedv1.0.5

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden well: it discloses that the operation is mutating, only changes supplied fields, returns the updated campaign, and is not automatically reversible. It further names mureo_state_action_log_append for capturing before-state when rollback may be needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and partial-update behavior, then moves to irreversibility, rollback guidance, and the safer alternative. Every sentence adds operational value with no wasted framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation with no annotations and no output schema, the description covers the essential behavioral context: partial update scope, mutation risk, reversibility, return behavior, and the preferred alternative for status changes. The schema supplies the remaining parameter-level detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents the parameters thoroughly. The description adds useful partial-update semantics and status-only routing, but does not add per-parameter meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: updating fields on an existing campaign. It also distinguishes the tool from status-transition siblings by explicitly routing status-only changes to meta_ads_campaigns_pause / meta_ads_campaigns_enable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains when to use this tool for partial field updates and when to prefer the safer pause/enable tools for status-only transitions. It also gives operational guidance to record before-state when rollback may be needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools