Skip to main content
Glama
MarventoCapital

Marvento Ads MCP

Official

Campaigns Create Campaign

campaigns_create_campaign

Create a paused Google Search campaign with a specified budget, bidding strategy, and dates. Use start, end, location, and partner settings, then enable later via status update.

Instructions

Creates a Search campaign, always PAUSED. Enable it later with set_campaign_status.

Typical order: create_campaign_budget -> create_campaign -> add_campaign_targeting -> ad_groups.create_ad_group -> ad_groups.add_keywords -> ads.create_responsive_search_ad -> review -> set_campaign_status(ENABLED, confirm=true).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesCampaign name, unique within the account.
biddingNoMAXIMIZE_CLICKS (good default for a new account without conversion history), MAXIMIZE_CONVERSIONS (optionally with target_cpa), MAXIMIZE_CONVERSION_VALUE (optionally with target_roas), or MANUAL_CPC.MAXIMIZE_CLICKS
end_dateNoYYYY-MM-DD. Defaults to no end date.
budget_idYesId of a budget created with create_campaign_budget.
start_dateNoYYYY-MM-DD. Defaults to today.
target_cpaNoOptional target cost per acquisition in account currency (MAXIMIZE_CONVERSIONS only).
customer_idYesGoogle Ads customer id.
target_roasNoOptional target return on ad spend as a ratio, e.g. 4.0 = 400% (MAXIMIZE_CONVERSION_VALUE only).
validate_onlyNoDry-run against the API without creating anything.
login_customer_idNoManager account id if applicable.
location_targetingNoPRESENCE targets people in the location. PRESENCE_OR_INTEREST also targets people interested in it. PRESENCE is the safer default for local businesses.PRESENCE
max_cpc_bid_ceilingNoOptional max CPC ceiling in account currency (MAXIMIZE_CLICKS / MAXIMIZE_CONVERSIONS).
include_display_networkNoDisplay expansion. Default off; keep off for Search.
include_search_partnersNoShow on Google search partner sites. Default off.
contains_eu_political_advertisingNoDeclare EU political advertising (required declaration; default false).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.4

TDQS

A4.3/5.0
Behavior4/5

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

Annotations are sparse (readOnly=false, idempotent=false, destructive=false), so the description carries the behavioral burden. It discloses a key non-obvious behavior: the campaign is always created PAUSED and must be enabled later. This adds meaningful context beyond the structured annotations, though it could also mention failure/side-effect behavior.

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?

The core behavior is front-loaded in the first sentence, and the second sentence is a dense, actionable lifecycle list. Every clause earns its place; there is no filler or 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 15-parameter create tool with a full output schema, the description supplies the missing operational context: paused-by-default state, prerequisite budget step, and the full path to activation. Combined with the schema, an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond what the schema already provides; the workflow sequence references budget_id implicitly, but the schema already states budget_id must come from create_campaign_budget.

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: 'Creates a Search campaign, always PAUSED.' It also distinguishes itself from siblings by tying enablement to set_campaign_status, and the lifecycle makes the difference from create_campaign_budget and update_campaign clear.

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?

Provides explicit workflow guidance: create_campaign_budget -> create_campaign -> add_campaign_targeting -> ... -> set_campaign_status(ENABLED, confirm=true). This tells an agent exactly when to call it and what comes next. It doesn't explicitly say 'use campaigns_update_campaign for existing campaigns,' but the create/update distinction is clear enough.

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