Skip to main content
Glama
Google Ads MCP Server

Google Ads MCP Server

create_demand_gen_ad

Creates Demand Gen ads for YouTube, Gmail, and Discover; enabled ads return a preview first, while paused ads are created immediately.

Instructions

Create a Demand Gen ad (serves on YouTube, Gmail, Discover).

Safety: an ENABLED ad returns a preview first; call again with confirm=True.
A PAUSED ad is created immediately.

Args:
    customer_id: Google Ads customer ID.
    ad_group_id: Ad group ID (must be in a Demand Gen campaign).
    headlines: 1-5 headlines (max 40 chars each).
    descriptions: 1-5 descriptions (max 90 chars each).
    marketing_images: Landscape image asset resource names.
    logo_images: Logo asset resource names.
    final_urls: Landing page URLs.
    business_name: Business name.
    call_to_action_text: Optional CTA text.
    status: Ad status -- 'ENABLED' (default) or 'PAUSED'.

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>",
      "headlines": "<headlines>",
      "descriptions": "<descriptions>",
      "marketing_images": "<marketing_images>",
      "logo_images": "<logo_images>",
      "final_urls": "<final_urls>",
      "business_name": "<business_name>"
    },
    "name": "create_demand_gen_ad"
  }
}

Input Schema

NameRequiredDescriptionDefault
statusNoENABLED
confirmNo
headlinesYes
final_urlsYes
ad_group_idYes
customer_idYes
logo_imagesYes
descriptionsYes
business_nameYes
marketing_imagesYes
call_to_action_textNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say the tool is a non-read-only, open-world, non-idempotent, non-destructive write; the description goes well beyond that by disclosing the two-phase preview/confirm gate for ENABLED ads and the immediate-creation path for PAUSED. That is exactly the behavioral nuance an agent needs before calling a mutation that is not idempotent.

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?

Purpose is front-loaded in one sentence, the safety workflow comes second, and the Args block follows in a scannable key/value layout. The Args list is long but each entry carries a constraint the schema lacks, so the length is earned; only the omission of confirm from that list slightly weakens the structure.

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 an 11-parameter mutation with no output schema and no annotation detail, the definition covers the call flow, all required inputs, and status semantics. It does not say what the preview response contains or whether the image assets must already exist in the account, which would be the remaining useful additions.

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%, so the description carries the full burden, and it does: it documents cardinality and length limits (1-5 headlines at 40 chars, 1-5 descriptions at 90 chars), explains that image params take asset resource names (landscape vs logo), and enumerates the status values ENABLED/PAUSED with the default. The confirm parameter is explained in the Safety note even though it is omitted from the Args list.

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 names a specific verb and resource ("Create a Demand Gen ad") and adds the surface where it serves (YouTube, Gmail, Discover), which distinguishes it from create_responsive_display_ad, create_responsive_search_ad, and create_video_ad. It stops short of explicitly routing between those siblings, so it lands just under 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 Guidelines4/5

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

The Safety block gives a clear use-condition: an ENABLED ad returns a preview and requires a second call with confirm=True, while a PAUSED ad is created immediately. It also states a prerequisite for ad_group_id (must be in a Demand Gen campaign). No exclusion against alternative ad-type tools is offered, so it is clear context without explicit alternatives.

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