Skip to main content
Glama

Google Ads: Create demand gen campaign

ads_create_demand_gen_campaign

Build a whole Google Ads Demand Gen campaign (YouTube, Discover, Gmail, Display) in one step: daily budget, campaign, ad group with its locations, and the first image or video ad. ALWAYS created paused. The preview sends the exact request to Google to check (images, text, bid) and creates nothing; show the person the budget, monthly equivalent, locations and the ad verbatim, then call again with confirm true. Videos must already be on YouTube. Use ads_create_demand_gen_ad to add more ads later, ads_set_ad_url to change an existing ad's URL.

Input Schema

NameRequiredDescriptionDefault
nameYesCampaign name
formatYesimages: a multi-image ad (photos and a logo). video: a video ad from YouTube videos already uploaded to YouTube.
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.
channelsNoLimit where ads show; all channels when left out
logo_urlYesSquare logo, JPG/PNG/GIF, at least 128x128
final_urlYesThe page this ad sends people to
headlinesYes1-5 short headlines
image_urlsNoImages ads only: public JPG/PNG/GIF URLs, sorted into slots by shape: landscape 1.91:1 (min 600x314), square 1:1 (min 300x300), portrait 4:5 (min 480x600), tall 9:16 (min 600x1067). At least one landscape or square.
customer_idYes
descriptionsYes1-5 descriptions, max 90 characters each
language_idsNoGoogle language ids; English (1000) when left out
ad_group_nameNo
business_nameYesThe advertiser's name as it shows on the ad, max 25 characters
call_to_actionNoImages ads only: button text such as 'Get quote'. Google picks one when left out.
geo_target_idsYesFrom ads_find_locations. Required: without a location a Demand Gen campaign runs everywhere.
long_headlinesNoVideo ads only: 1-5 long headlines
youtube_videosNoVideo ads only: 1-5 YouTube links or video ids. The video must already be on YouTube (public or unlisted); videos can't be uploaded here.
target_cpa_majorNoOptional target cost per conversion; without it Google maximises conversions
daily_budget_majorYesReal currency per day, e.g. 40 for $40.00
acknowledge_landingNoOnly after the preview's landing_check warned AND the person has seen the warnings and still wants this page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing that the campaign is ALWAYS created paused, that the preview sends the real request to Google while creating nothing, and that videos cannot be uploaded here. These are non-obvious side effects an agent must know before invoking a mutation with destructiveHint=false and idempotentHint=false. It stops short of describing what the preview response contains or what happens on partial failure.

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

Conciseness5/5

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

Front-loaded with the core action and scope, then the paused constraint, then the preview/confirm loop, then prerequisites and sibling routing. Every sentence supplies distinct information with no repetition of schema content.

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 20-parameter, 10-required mutation with no output schema, the description covers the decision-critical gaps: safety (always paused), the confirm gate, landing-page acknowledgement, external prerequisites (YouTube upload), and where to go for follow-up edits. Nothing essential to invoking it correctly is missing.

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 already 90%, so the parameter definitions carry most of the load. The description still adds workflow-level meaning the schema cannot express: the preview validates images, text and bid; the budget should be surfaced alongside a monthly equivalent; and geo_target_ids drive the locations shown to the user. It does not add much for the remaining fields such as channels or long_headlines beyond what the schema states.

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 ('Build a whole Google Ads Demand Gen campaign') and enumerates exactly what gets created in one step: daily budget, campaign, ad group with locations, and the first image or video ad. It also distinguishes itself from siblings by pointing to ads_create_demand_gen_ad for additional ads, so an agent can separate this from the narrower ad-level and campaign-level tools.

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 operating instructions: preview first, show the user the budget, monthly equivalent, locations and ad verbatim, then call again with confirm true. It also names the alternatives (ads_create_demand_gen_ad for more ads, ads_set_ad_url for URL changes) and states the prerequisite that videos must already be on YouTube.

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.