Skip to main content
Glama

Google Ads: create Performance Max campaign

create_performance_max_campaign
Destructive

Creates a Performance Max campaign with a budget, business name, and logo.

PMax campaigns require a business name and logo asset linked at the campaign
level (Brand Guidelines). Create these assets first using create_text_asset
(for business name) and create_image_asset (for logo), then pass their
resource names here.

After creating the campaign, create more assets and an asset group using
create_text_asset, create_image_asset, create_youtube_video_asset,
and then create_asset_group.

languages sets the campaign's language setting in the same request as the
campaign. Google uses it on YouTube, Display, Discover and Gmail; on
Google Search, Performance Max ads are matched by the language the ads
are written in. Without languages the campaign has no language setting
and may show to people who use any language on those channels; the
result then says so.

Args:
    customer_id: The Google Ads customer ID (numbers only, no hyphens).
    name: The name for the new campaign.
    budget_amount_micros: Daily budget in micros of the account's currency (10000000 = 10.00: ₹10 on an INR account, $10 on a USD one).
    business_name_asset_resource_name: Resource name of a text asset for the business name.
    logo_asset_resource_name: Resource name of an image asset for the logo (square, 1200x1200).
    status: Initial campaign status: PAUSED, the only status a build takes. Every campaign is built paused, and the user switches it on in Google Ads; ENABLED is refused, and nothing in that call runs. Default: PAUSED.
    bidding_strategy_type: One of: MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE.
        Default: MAXIMIZE_CONVERSIONS.
    target_cpa_micros: Target CPA in micros of the account's currency, optional with MAXIMIZE_CONVERSIONS.
    target_roas: Target ROAS (e.g., 2.0 for 200%), optional with MAXIMIZE_CONVERSION_VALUE.
    final_url_expansion_opt_out: Set True to opt out of final URL expansion. Default: False.
    start_date: Campaign start date in YYYY-MM-DD format. Optional.
    end_date: Campaign end date in YYYY-MM-DD format. Optional.
    languages: Google Ads language codes (e.g. en, hi, es, pt, de, fr,
        ja, zh_CN) the campaign may show to on YouTube, Display, Discover
        and Gmail. Not used on Google Search. Optional.
    over_comfort_ack: The user's own words or reason when they asked for
        a budget above their saved comfort (e.g. "user asked for 6,000/day
        on 2026-09-23"). Recorded with the change by the hosted connector;
        never sent to Google. Optional.

Returns:
    Dictionary with created campaign and budget resource names, and the
    language codes set (an empty list means every language).

Tools revision: 5c9bea8f.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
statusNoPAUSED
end_dateNo
languagesNo
start_dateNo
customer_idYes
target_roasNo
over_comfort_ackNo
target_cpa_microsNo
budget_amount_microsYes
bidding_strategy_typeNoMAXIMIZE_CONVERSIONS
logo_asset_resource_nameYes
final_url_expansion_opt_outNo
business_name_asset_resource_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: only PAUSED is accepted and ENABLED calls are refused entirely, languages changes ad-matching semantics per channel, and over_comfort_ack is recorded locally and never sent to Google. None of that is inferable from destructiveHint/openWorldHint/idempotentHint.

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?

Front-loaded with the action then ordered workflow steps, and the Args block maps to the parameter list; nearly every sentence is load-bearing. The languages paragraph runs long and the Returns note duplicates the output schema.

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 14-parameter mutation with an output schema and prerequisites on other tools, the description covers ordering, defaults, currency units, constraints, and side effects. Nothing an agent needs before invoking it is absent.

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 does: micros-to-currency conversion with an INR/USD example, logo dimension requirement, customer_id format, date formats, bidding-strategy-conditional target_cpa_micros vs target_roas, and language code examples. The one weak spot is bidding_strategy_type lacking a stated pairing rule with target_cpa/roas beyond 'optional with'.

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 Performance Max campaign') plus the mandatory inputs, which separates it cleanly from the sibling create_campaign and create_asset_group tools. An agent can pick this tool without opening the schema.

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?

Gives an explicit prerequisite chain (create_text_asset / create_image_asset first, then pass resource names) and a follow-up chain (more assets, then create_asset_group). What's missing is an explicit statement of when NOT to use it — e.g. that non-PMax campaigns go to create_campaign.

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.

Resources