Skip to main content
Glama

Update Google Ads Entity

adsap_google_update_entity

Edit an existing Google Ads campaign, ad group, ad, or keyword: change status (PAUSED/ACTIVE), rename (campaign/ad group), set a campaign's daily budget (in account currency, e.g. 12.50), change a campaign's BIDDING scheme/targets (updates.bidding — swap scheme or edit tCPA/tROAS/ceiling; portfolio strategies rejected), edit ASSET AUTOMATION opt-ins (updates.asset_automation — campaign level on PMax/Search, ad level on Demand Gen ads), or set a keyword's max CPC (updates.cpc_bid — Manual CPC campaigns only, ignored under automated bidding). Keyword TEXT is immutable — use adsap_google_manage_keywords op 'replace' to change it; keyword entity_id is ":" from adsap_google_get_insights level keyword. Put ONLY the fields you want to change in updates. Use dry_run: true to preview the diff (current vs new, validated by Google without applying). ad_account_id is the bare 10-digit Google Ads customer ID. For Meta entities use adsap_update_entity instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNo
updatesYesOnly the fields you want to change. At least one is required.
entity_idYes
entity_typeYesGoogle Ads vocabulary: the middle level is ad_group (not adset). keyword targets one ad-group criterion.
ad_account_idYesBare 10-digit Google Ads customer ID (from adsap_google_list_ad_accounts). No dashes, no act_ prefix.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden — and it delivers. It discloses rejection behaviors (portfolio strategies, asset-automation conflicts, ROAS eligibility gates), silent ignores (cpc_bid under automated bidding), side effects (shared budget affects every campaign using it), and semantic mappings (ACTIVE → ENABLED, dry_run validated by Google without applying). Far beyond what any schema could convey.

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?

Dense and front-loaded: the opening sentence states scope and capabilities, followed by immutability constraints, usage pattern, dry_run tip, id format, and sibling routing. The opening sentence is a long parenthetical-heavy run-on, but every clause carries operational weight (channel whitelists, rejections, currency formats), making the length proportionate to a tool with 4 entity types and 6 nested update fields.

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?

Remarkably complete for a complex tool with zero annotations and no output schema: covers all entity types, all update sub-fields with constraints, dry_run semantics, composite id formats, and routing to alternatives. Minor gap: it doesn't describe what a non-dry_run invocation returns, which would help an agent set expectations after the update.

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?

At 60% schema coverage, the description picks up the slack. It adds critical meaning: daily_budget is 'NOT micros, NOT cents', cpc_bid is 'only used on Manual CPC... silently ignored under automated bidding... rejected on negative keywords', and entity_id gets a format spec ('<ad_group_id>:<criterion_id>' from adsap_google_get_insights) that the schema's regex alone does not provide.

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 ('Edit') + resource ('existing Google Ads campaign, ad group, ad, or keyword') and enumerates the editable attributes (status, name, budget, bidding, asset automation, cpc bid). Explicitly distingushes itself from siblings: keyword TEXT is immutable and routes to adsap_google_manage_keywords, and Meta entities route to adsap_update_entity.

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 when-not guidance: keyword text cannot be changed here, portfolio-strategy campaigns are rejected, cpc_bid only applies to Manual CPC campaigns. Names alternatives with conditions (adsap_google_manage_keywords for replace, adsap_update_entity for Meta) and prescribes the usage pattern: put only changed fields in updates and use dry_run to preview Google's validation.

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