Skip to main content
Glama

Google Ads: Add extensions

ads_add_extensions

Add extensions (assets) to one campaign or to the whole account: SITELINK (text ≤25, descriptions ≤35, final URL each), CALLOUT (≤25 chars each), STRUCTURED_SNIPPET (a header such as 'Services' plus 3+ values), or CALL (the client's lead phone number). Assets are validated by Google in the preview and linked on confirm.

Input Schema

NameRequiredDescriptionDefault
kindYes
confirmNoLeave false to preview: nothing changes and the preview shows exactly what would happen. Set true only after the user has agreed to this exact change.
calloutsNo
sitelinksNo
campaign_idNoOmit to attach at account level (every campaign)
customer_idYes
country_codeNoDefault US
phone_numberNo
snippet_headerNoOne of Google's headers: Services, Types, Brands, Amenities, Styles, Models, Courses, Degree programs, Destinations, Featured hotels, Insurance coverage, Neighborhoods, Shows
snippet_valuesNo
acknowledge_landingNoOnly after the preview's landing_check warned AND the person has seen the warnings and still wants this page. Autopilot never sets it: it proposes instead.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / acknowledge_landing
      Added value: +{
      +  "default": false,
      +  "description": "Only after the preview's landing_check warned AND the person has seen the warnings and still wants this page. Autopilot never sets it: it proposes instead.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / confirm / description
      Added value: +"Leave false to preview: nothing changes and the preview shows exactly what would happen. Set true only after the user has agreed to this exact change."
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-idempotent, open-world write; the description adds real value beyond that by disclosing the two-phase preview/validate/link-on-confirm behavior. It omits whether repeated adds create duplicates (relevant given idempotentHint=false) and whether extensions can be removed or rolled back afterward.

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?

Two sentences, scope and the mutation model front-loaded, detail packed into a single parenthetical kind list. Dense but every clause carries usable constraint information; no filler.

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?

With 11 parameters, no output schema, and partial schema coverage, the description covers the essentials: what gets attached, where, the four asset shapes, and the preview/confirm gate. It would be stronger if it described what the preview returns or how account-level vs campaign-level attachments interact.

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 only 45%, and the description compensates with concrete constraints the schema lacks: sitelink text ≤25 with descriptions ≤35 and a final URL each, callouts ≤25 chars, structured snippets needing a header plus 3+ values, and CALL needing the client's lead phone number. A few params (phone_number, the per-kind required/optional interplay) remain undocumented in both places.

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?

States a specific verb and resource ("Add extensions (assets)") plus the exact scope choice: one campaign or the whole account. It then enumerates the four supported kinds (SITELINK, CALLOUT, STRUCTURED_SNIPPET, CALL) with their distinguishing payload shapes, so an agent can tell this apart from ads_list_extensions or ads_remove_extension at a glance.

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

Usage Guidelines4/5

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

The description establishes the preview-then-confirm workflow ("Assets are validated by Google in the preview and linked on confirm"), which is the key usage context for a mutation tool. However, it never explicitly names the sibling alternatives (list/remove extensions) or states when to attach at campaign vs account level beyond the schema's wording.

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.