Skip to main content
Glama
lucagalvani

google-ads-agent

by lucagalvani

add_shared_negative_keywords

Add negative keywords to a shared list to block account-wide irrelevant traffic when aggregated search-term evidence shows no conversions, applying the suppression across every linked campaign simultaneously.

Instructions

Add negative keywords to a SHARED list — one list of terms attached to many campaigns at once, for junk that applies account-wide rather than to a single campaign. Autonomous when each term's measured search-term evidence, aggregated across every campaign the list reaches, clears the policy threshold with no conversions — the same evidence rule as add_negative_keywords, since suppressing a term account-wide needs at least the same bar as suppressing it in one campaign. The list must already exist and be attached to at least one campaign: create and attach it via mutate first (shared_set create, then campaign_shared_set create) — list_shared_negative_lists shows what exists.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
termsYes
run_idNo
dry_runNo
rationaleNo
match_typeNoPHRASE
customer_idYes
shared_set_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations establish readOnly=false, openWorld=true, destructive=false; the description builds on them by specifying the autonomy trigger — 'measured search-term evidence... clears the policy threshold with no conversions' — the cross-campaign aggregation scope, and the hard prerequisite that the list 'must already exist and be attached to at least one campaign.' It does not address partial-failure behavior or the dry_run escape hatch, so it stops short of a 5.

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?

Purpose is front-loaded in sentence one, behavior in sentence two, prerequisites/workflow in sentence three — a logical order where each sentence earns its place. The middle sentence is dense but carries unique information (autonomy rule, aggregation, sibling comparison); it could be tightened but is not padded.

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?

Covers purpose, scope, autonomy criteria, prerequisite, creation workflow via mutate, and sibling routing; output schema exists so return values are covered. The notable gaps are match_type semantics and the dry_run parameter at 0% schema coverage — for an autonomous write tool those are meaningful omissions, so a 4 rather than a 5.

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 has 0% description coverage, so the description must compensate. It adds real meaning for shared_set_id (must be an existing, attached list) and terms (each needs measured search-term evidence), but leaves match_type (default PHRASE), dry_run, run_id, and rationale undocumented in both schema and description. Partial compensation only.

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+resource: 'Add negative keywords to a SHARED list' and immediately distinguishes the scope from the sibling — 'applies account-wide rather than to a single campaign.' It explicitly names add_negative_keywords as the single-campaign counterpart, so an agent can tell them apart without opening schemas.

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-to-use ('junk that applies account-wide'), names the alternative (add_negative_keywords) with the same evidence bar, and spells out prerequisites and ordering: 'create and attach it via mutate first (shared_set create, then campaign_shared_set create)' plus a pointer to list_shared_negative_lists for discovery. This is concrete routing guidance, not hand-waving.

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