Skip to main content
Glama

update_adset

Modify an existing Meta ad set by ID; only provided fields change, letting you adjust status, budget, schedule, targeting, or bids.

Instructions

Update an existing ad set. Only provided fields will be modified.

Input Schema

NameRequiredDescriptionDefault
nameNoNew ad set name
statusNoNew status: ACTIVE, PAUSED, DELETED, ARCHIVED
adset_idYesAd set ID to update
end_timeNoNew end time (ISO 8601)
dsa_payorNoPayer of EU-targeted ads; does not automatically copy the beneficiary
targetingNoNew targeting spec as JSON string. Advantage+ Audience automation flags go inside this object, e.g. targeting_automation: {"advantage_audience":1} — required for HEC-F (Housing/Employment/Financial Products and Services) ad sets with relaxable, non-broad targeting as of v26.0. Note: the Instagram Explore Feed placement was removed in Marketing API v26.0 — requests that explicitly include it now return an error.
bid_amountNoNew bid amount in currency cents
start_timeNoNew start time (ISO 8601)
pacing_typeNoPacing settings. When a schedule is supplied, day_parting is required and is added if omitted.
bid_strategyNoNew bid strategy
daily_budgetNoNew daily budget in currency cents
validate_onlyNoValidate with Meta without creating or updating the ad set (default false)
adset_scheduleNoHourly delivery intervals (Sunday=0). Requires lifetime budgeting. Set timezone_type explicitly; Meta defaults to USER.
dsa_beneficiaryNoBeneficiary of EU-targeted ads
lifetime_budgetNoNew lifetime budget in currency cents
attribution_specNoAttribution windows; Meta validates compatibility with the objective and optimization goal
destination_typeNoConversion destination, e.g. WEBSITE, APP, MESSENGER, INSTAGRAM_DIRECT, WHATSAPP

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv1.6.1
    • addedInput schema / properties / adset_schedule
      Added value: +{
      +  "description": "Hourly delivery intervals (Sunday=0). Requires lifetime budgeting. Set timezone_type explicitly; Meta defaults to USER.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "days": {
      +        "items": {
      +          "maximum": 6,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "maxItems": 7,
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "end_minute": {
      +        "maximum": 1440,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "start_minute": {
      +        "maximum": 1439,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "timezone_type": {
      +        "enum": [
      +          "USER",
      +          "ADVERTISER"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "start_minute",
      +      "end_minute",
      +      "days"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / attribution_spec
      Added value: +{
      +  "description": "Attribution windows; Meta validates compatibility with the objective and optimization goal",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "event_type": {
      +        "enum": [
      +          "CLICK_THROUGH",
      +          "VIEW_THROUGH",
      +          "ENGAGED_VIDEO_VIEW"
      +        ],
      +        "type": "string"
      +      },
      +      "weight": {
      +        "type": "number"
      +      },
      +      "window_days": {
      +        "exclusiveMinimum": 0,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "event_type",
      +      "window_days"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / bid_strategy
      Added value: +{
      +  "description": "New bid strategy",
      +  "type": "string"
      +}
    • addedInput schema / properties / destination_type
      Added value: +{
      +  "description": "Conversion destination, e.g. WEBSITE, APP, MESSENGER, INSTAGRAM_DIRECT, WHATSAPP",
      +  "type": "string"
      +}
    • addedInput schema / properties / dsa_beneficiary
      Added value: +{
      +  "description": "Beneficiary of EU-targeted ads",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / dsa_payor
      Added value: +{
      +  "description": "Payer of EU-targeted ads; does not automatically copy the beneficiary",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / pacing_type
      Added value: +{
      +  "description": "Pacing settings. When a schedule is supplied, day_parting is required and is added if omitted.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / targeting / description
      Previous value: -"New targeting spec as JSON string"New value: +"New targeting spec as JSON string. Advantage+ Audience automation flags go inside this object, e.g. targeting_automation: {\"advantage_audience\":1} — required for HEC-F (Housing/Employment/Financial Products and Services) ad sets with relaxable, non-broad targeting as of v26.0. Note: the Instagram Explore Feed placement was removed in Marketing API v26.0 — requests that explicitly include it now return an error."
    • addedInput schema / properties / validate_only
      Added value: +{
      +  "description": "Validate with Meta without creating or updating the ad set (default false)",
      +  "type": "boolean"
      +}
  2. First observedv1.2.0

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral context. It usefully discloses that unspecified fields are left unchanged, but it omits permissions, validation behavior, reversibility, and implications of status changes such as DELETED or ARCHIVED.

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 two front-loaded sentences with no wasted text. Both sentences are relevant and concise.

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

Completeness3/5

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

The rich input schema covers parameter details, and no output schema needs explanation. However, for a 17-parameter mutation tool with no annotations, the description is thin on usage context and operational caveats.

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 schema already documents all 17 parameters in detail. The description adds only the high-level partial-update rule and no parameter-specific meaning beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: update an existing ad set. It does not explicitly differentiate itself from siblings such as create_adset, delete_adset, or copy_adset, but the update purpose is clear.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, prerequisites, or alternatives. It only notes the partial-update behavior, leaving selection between update_adset and other ad set tools to inference.

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