Skip to main content
Glama

google_ads_ads_update

Update headlines or descriptions on an existing Responsive Search Ad; the omitted side is preserved. Replaces the ad and resets learning, so use for creative copy changes only.

Instructions

Updates the creative copy of an existing Responsive Search Ad by replacing headlines and/or descriptions. A supplied side is fully replaced (Google has no per-asset patch); omit a side to leave it unchanged — the omitted side is read from the current ad and preserved, so updating headlines never wipes descriptions. Returns the updated ad. Google Ads does not support in-place edit of RSA creative assets — this call typically replaces the ad with a new one under the same ID, which resets learning and triggers re-review. Mutating — not automatically reversible; record before-state with mureo_state_action_log_append if you may need to roll back. For status-only changes (pause/resume) use google_ads_ads_update_status, which is lighter-weight and does not reset learning.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ad_idYesAd ID to update.
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.
headlinesNoReplacement headlines (3 to 15) — the full new set, since the supplied side is replaced wholesale. Omit to keep the current headlines unchanged. Each max 30 characters display width.
ad_group_idYesParent ad group ID.
customer_idNoGoogle Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted.
descriptionsNoReplacement descriptions (2 to 4) — the full new set, since the supplied side is replaced wholesale. Omit to keep the current descriptions unchanged. Each max 90 characters display width.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +}
  2. Changed1 schema field changedv0.10.37
    • addedInput schema / additionalProperties
      Added value: +false
  3. Addedv0.10.11
  4. Removedv0.10.9
  5. Changed2 schema fields changedv0.10.7
    • changedInput schema / properties / descriptions / description
      Previous value: -"Replacement descriptions (2 to 4). Each max 90 characters display width."New value: +"Replacement descriptions (2 to 4) — the full new set, since the supplied side is replaced wholesale. Omit to keep the current descriptions unchanged. Each max 90 characters display width."
    • changedInput schema / properties / headlines / description
      Previous value: -"Replacement headlines (3 to 15). Each max 30 characters display width."New value: +"Replacement headlines (3 to 15) — the full new set, since the supplied side is replaced wholesale. Omit to keep the current headlines unchanged. Each max 30 characters display width."
  6. Addedv0.9.12
  7. Removedv0.9.6
  8. Addedv0.9.2
  9. Removedv0.9.1
  10. Addedv1.0.5

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, this description carries the full behavioral burden and meets it: it flags the tool as mutating and not automatically reversible, discloses replacement semantics (wholesale side replacement), and warns that Google typically replaces the ad under the same ID, resetting learning and triggering re-review. This goes well beyond a bare 'update' statement.

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?

Every sentence carries information: purpose, replacement semantics, return value, side effects, rollback advice, and sibling routing. The most important scoping and side-effect information is front-loaded, and there is no filler.

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 mutating, no-annotation, no-output-schema tool, this is complete: the schema covers all six parameters, while the description supplies behavior, side effects, preservation semantics, rollback guidance, and the alternative tool. An agent has what it needs to call and reason about this tool correctly.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents that headlines/descriptions are wholesale replacement sets, so the baseline is 3. The description adds meaningful context on top by explaining why (Google has no per-asset patch) and the safety implication that omitting a side preserves it, so updating headlines never wipes descriptions.

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 opens with a specific verb and resource: updates the creative copy of an existing Responsive Search Ad by replacing headlines and/or descriptions. It also distinguishes itself from the sibling google_ads_ads_update_status by noting that status-only changes belong there, so an agent can tell this mutation tool apart without reading schemas.

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?

The description states exactly when to use the tool (creative copy updates), explicitly routes status-only changes to google_ads_ads_update_status as the lighter-weight alternative that avoids resetting learning, and advises recording before-state via mureo_state_action_log_append when rollback may be needed. That is actionable when/when-not guidance.

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