Skip to main content
Glama
block-town

google-ads-transparency-mcp

by block-town

compare_advertisers

Compare active Google ad counts across multiple domains to identify which advertisers are running ads and their volume. Each row includes status flags for reliable interpretation.

Instructions

Compare active Google ad counts across a set of domains, one row each.

The competitor paid-surface question in one call: who is running ads, and how many. Rows come back in input order; sort by ad_count yourself.

Every row has a status. "ok" means an advertiser was found; "absent" means no advertiser is registered for that domain and IS a genuine zero; "blocked" means Google rate-limited the lookup and is NOT a zero; "error" is anything else. Rows flagged parent_entity resolved to a differently named advertiser (a parent company, a reseller, or a stranger whose ads mention the domain) — never cite those counts as the domain's own.

Args: domains: Up to 50 domains or URLs (e.g. ["nike.com", "adidas.com"]).

Returns: [{domain, status, advertiser_id, advertiser_name, ad_count, parent_entity, note}, ...]

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations present, the description shoulders the full burden and does it thoroughly. It explains exact status semantics, especially the subtle trap that "blocked" is a Google rate-limit and is NOT a zero, while "absent" IS a genuine zero. It also discloses row ordering and parent_entity caveats, materially helping an agent interpret results correctly.

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?

Every section earns its place: a one-line core purpose, a short positioning sentence, then a compact but vital status legend, and shorthand input/output contracts. The front-loaded purpose lets an agent quickly identify the tool, and deeper detail is deferred until after the first paragraph.

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?

The description fully covers the only input param, the non-obvious status codes, the specific meaning of parent_entity rows, and the ordering guarantees. Since an output schema exists, the Returns listing is a convenience, and the tool description still appears complete for an agent to invoke it correctly.

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?

Since schema description coverage is 0%, the description must compensate for the single `domains` parameter, and it does: it imposes the "Up to 50" limit and states that either domains or URLs are accepted, with an example. It leaves minor edge cases unstated (behavior with more than 50 items or duplicates), but covers enough for normal use.

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?

The description opens with a specific verb-plus-resource statement: "Compare active Google ad counts across a set of domains, one row each." It separates this tool from the sibling search/get/creative tools by emphasizing the cross-domain, batch comparison shape and the single-call competitive question it answers.

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?

The description clearly frames when to use it: "The competitor paid-surface question in one call: who is running ads, and how many." It also gives a meaningful exclusion—"never cite those counts as the domain's own" for parent_entity rows—but it never explicitly names sibling tools or says when to prefer them (e.g., for a single domain or for ad-level detail).

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