Skip to main content
Glama

Google Ads: Create campaign

ads_create_campaign

Create a Google Ads campaign and its daily budget (for a Demand Gen campaign use ads_create_demand_gen_campaign, which builds the ad too). ALWAYS created paused — it cannot spend until someone enables it. Give the budget in real currency (50 means $50.00/day). Call without confirm first and show the human the budget and its monthly equivalent. The preview offers where the campaign could land (landing_page_question: the client's pages with their paid conversion numbers, and how to build a dedicated page): ask the person, offer to build the page if there isn't one, and pass their answer as landing_page if they have one. A campaign can be created without one; ads_set_campaign_status shows every landing page before it goes live.

Input Schema

NameRequiredDescriptionDefault
nameYes
typeNoSEARCH
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.
customer_idYes
landing_pageNoWhere this campaign's ads will send people, the person's answer to the preview's landing_page_question, if they have one yet.
geo_target_idsNoFrom ads_find_locations
target_cpa_majorNo
daily_budget_majorYesReal currency per day, e.g. 40 for $40.00

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / acknowledge_landing
      Removed value: -{
      -  "default": false,
      -  "description": "Only after the preview's landing_check warned about landing_page AND the person still wants that page.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / landing_page / description
      Previous value: -"Where this campaign's ads will send people, the person's answer to the preview's landing_page_question. Required to create it."New value: +"Where this campaign's ads will send people, the person's answer to the preview's landing_page_question, if they have one yet."
  2. Changed2 schema fields changed
    • addedInput schema / properties / acknowledge_landing
      Added value: +{
      +  "default": false,
      +  "description": "Only after the preview's landing_check warned about landing_page AND the person still wants that page.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / landing_page
      Added value: +{
      +  "description": "Where this campaign's ads will send people, the person's answer to the preview's landing_page_question. Required to create it.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / confirm / default
      Added value: +false
    • 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."
  4. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say it is a non-read-only, non-destructive, non-idempotent open-world write; the description adds the material traits: the campaign is ALWAYS created paused and cannot spend until enabled, and a preview-only path exists when confirm is false. It also discloses that a landing page is optional and that ads_set_campaign_status surfaces every landing page before launch.

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 safety-critical fact (always paused, confirm-to-preview) is front-loaded and every sentence carries operational content. The nested parentheticals around landing_page_question make the back half denser than it needs to be, costing a point on readability.

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?

No output schema exists, and the description covers the workflow end to end: preview, human approval, budget currency, landing page decision, and the downstream status tool. Remaining gaps are minor: what the type enum values change and how target_cpa_major is used are left entirely to the 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?

With only 50% schema coverage the description compensates well on the two highest-risk parameters: daily_budget_major is stated as real currency (50 = $50.00/day) and landing_page is defined as the human's answer to the preview question, plus confirm's preview-vs-apply contract. It says nothing about type's enum choices or target_cpa_major, leaving part of the gap to the schema.

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?

Opens with a specific verb+resource ("Create a Google Ads campaign and its daily budget") and immediately distinguishes the sibling it is not ("for a Demand Gen campaign use ads_create_demand_gen_campaign, which builds the ad too"). An agent can route between the two creation tools without opening either schema.

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?

Gives explicit sequencing and exclusions: call without confirm first, show the human the budget and its monthly equivalent, ask the landing_page_question and pass the answer, and use ads_set_campaign_status before going live. It also names the alternative tool and the condition that selects it.

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.