Skip to main content
Glama

Google Ads: update ad group

update_ad_group
DestructiveIdempotent

Updates an existing ad group's settings.

ENABLED switches the ad group's ads and keywords on at once, and a
higher bid can raise what it spends.

Args:
    customer_id: The Google Ads customer ID (numbers only, no hyphens).
    ad_group_id: The ID of the ad group to update.
    name: New ad group name. Optional.
    status: New status. One of: ENABLED, PAUSED. REMOVED is refused:
        an ad group is never deleted here, pause instead. Optional.
    cpc_bid_micros: New default max CPC bid in micros of the account's currency. Optional.

Returns:
    Dictionary with the updated resource name and confirmation message.

Tools revision: d80f65c0.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "customer_id": "<customer_id>",
      "ad_group_id": "<ad_group_id>"
    },
    "name": "update_ad_group"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
statusNo
ad_group_idYes
customer_idYes
cpc_bid_microsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: ENABLED 'switches the ad group's ads and keywords on at once' (cascading effect) and a bid change 'can raise what it spends' (cost impact), plus the refusal to delete. It does not say whether unmentioned fields are left untouched, but the partial-update semantics are strongly implied by 'Optional' on every mutating field.

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

Conciseness4/5

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

Front-loaded with the action and scope, then a compact per-argument breakdown; no sentence is filler. The docstring Args/Returns scaffolding and the Returns block are somewhat redundant given an output schema exists, which keeps it from a 5.

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

Completeness4/5

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

For a 5-parameter mutation tool it covers required vs optional, valid values, units, and the one dangerous case (deletion). Return shape is already covered by the output schema, so restating it is harmless. It does not state what happens when status and cpc_bid_micros are both supplied, or what authorization the caller needs.

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

Parameters5/5

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

Schema description coverage is 0% and there are no schema enums, so the description carries the full burden and does so: customer_id format ('numbers only, no hyphens'), ad_group_id, name, status with its allowed values (ENABLED/PAUSED) and the REMOVED refusal, and cpc_bid_micros units ('micros of the account's currency') plus its role as the default max CPC. Every one of the 5 parameters gains meaning not present in 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 first sentence gives a specific verb and resource ('Updates an existing ad group's settings') and the body enumerates exactly which settings (name, status, bid), so it is distinguishable from create_ad_group and set_ad_group_asset_status. It stops short of explicitly naming the sibling tools it is not, which keeps it off a 5.

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

Usage Guidelines3/5

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

There is one explicit exclusion, 'REMOVED is refused: an ad group is never deleted here, pause instead', which is real when-not guidance. However, it is parameter-level rather than tool-level: nothing tells the agent when to reach for update_ad_group versus update_campaign, update_ad_status, or set_ad_group_asset_status, and no preconditions (permissions, whether the ad group must be ENABLED first) are stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources