Skip to main content
Glama

Draft structured snippets

draft_structured_snippets

Draft structured snippet assets for an ad group, a campaign or the account — returns a PREVIEW.

Creates structured snippet assets and links them where the id points: ad_group_id links to that ad group, campaign_id to that campaign. Account-wide linking needs scope="account" and no id. Returns a preview with a plan_id; nothing changes until confirm_and_apply applies it.

Google Ads API: https://developers.google.com/google-ads/api/docs/start

Input Schema

NameRequiredDescriptionDefault
scopeNoEmpty (follows the id), "campaign", "ad_group" or "account".
snippetsYesAt least one dict with "header" and "values". header is one of Google's snippet headers, in the language of the values: Amenities, Brands, Courses, Degree programs, Destinations, Featured Hotels, Insurance coverage, Models, Neighborhoods, Services, Shows, Styles, Types, or Google's translation of one (German: Typen, Marken, Dienstleistungen, Modelle, Kurse, ...; case does not matter). values is a list of 3-10 non-empty strings, each at most 25 characters.
ad_group_idNoNumeric ID of the ad group to link them to, instead of a campaign.
campaign_idNoNumeric ID of the campaign to link the snippets to.
customer_idNoGoogle Ads customer ID (digits, dashes optional). Defaults to the configured account.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / snippets / description
      Previous value: -"At least one dict with \"header\" and \"values\". header is one of\nAmenities, Brands, Courses, Degree programs, Destinations, Featured\nHotels, Insurance coverage, Models, Neighborhoods, Services, Shows,\nStyles, Types (exact spelling). values is a list of 3-10 non-empty\nstrings, each at most 25 characters."New value: +"At least one dict with \"header\" and \"values\". header is one of\nGoogle's snippet headers, in the language of the values: Amenities,\nBrands, Courses, Degree programs, Destinations, Featured Hotels,\nInsurance coverage, Models, Neighborhoods, Services, Shows, Styles,\nTypes, or Google's translation of one (German: Typen, Marken,\nDienstleistungen, Modelle, Kurse, ...; case does not matter).\nvalues is a list of 3-10 non-empty strings, each at most 25\ncharacters."
  2. Changed5 schema fields changed
    • addedInput schema / properties / ad_group_id
      Added value: +{
      +  "default": "",
      +  "description": "Numeric ID of the ad group to link them to, instead of a\ncampaign.",
      +  "type": "string"
      +}
    • addedInput schema / properties / campaign_id / default
      Added value: +""
    • changedInput schema / properties / campaign_id / description
      Previous value: -"Numeric ID of the campaign to attach the snippets to."New value: +"Numeric ID of the campaign to link the snippets to."
    • addedInput schema / properties / scope
      Added value: +{
      +  "default": "",
      +  "description": "Empty (follows the id), \"campaign\", \"ad_group\" or \"account\".",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "campaign_id",
      -  "snippets"
      -]New value: +[
      +  "snippets"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / campaign_id / description
      Added value: +"Numeric ID of the campaign to attach the snippets to."
    • addedInput schema / properties / customer_id / description
      Added value: +"Google Ads customer ID (digits, dashes optional). Defaults to\nthe configured account."
    • addedInput schema / properties / snippets / description
      Added value: +"At least one dict with \"header\" and \"values\". header is one of\nAmenities, Brands, Courses, Degree programs, Destinations, Featured\nHotels, Insurance coverage, Models, Neighborhoods, Services, Shows,\nStyles, Types (exact spelling). values is a list of 3-10 non-empty\nstrings, each at most 25 characters."
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, but they don't say the operation is inert. The description adds the key behavior: it creates only a preview with a plan_id and 'nothing changes until confirm_and_apply applies it' — exactly the context an agent needs to avoid believing the change already landed.

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?

The preview/plan_id caveat is front-loaded in the first line, and the paragraph is compact. There is some mild repetition between 'creates structured snippet assets and links them where the id points' and the following sentences, and the trailing API docs URL is padding for an agent.

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 5-parameter drafting tool with an output schema and full annotation coverage, everything an agent needs is present: scope routing, account-wide special case, preview-only behavior, and the apply step. Return-value detail is deferred appropriately to the output schema.

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%, so baseline is 3; the description goes further by explaining the interplay among scope, ad_group_id and campaign_id (the id determines the linking target; account scope requires no id). It adds relationship semantics the schema documents only in isolation.

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 ('draft structured snippet assets') plus a clear scope (ad group, campaign, or account) and the crucial fact that it returns a PREVIEW rather than applying changes. The 'draft_* then confirm_and_apply' pattern distinguishes it from mutating siblings and from update_structured_snippet.

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?

Explains how to route output: ad_group_id links to an ad group 'instead of a campaign', campaign_id to a campaign, and account-wide linking requires scope="account" with no id. It also names the required follow-up (confirm_and_apply) before anything takes effect, though it doesn't discuss when to prefer account-level vs campaign-level snippets.

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.