Skip to main content
Glama

Google Ads: Report

ads_report
Read-onlyIdempotent

Run a GAQL query against one Google Ads account. Use for spend, clicks, conversions, cost per conversion, search terms and keyword performance. The result's date_range is the period the query covers. Auction insights metrics (auction_insight_*) are restricted by Google to allowlisted developers and not available here; use impression share instead. GAQL rules that most refusals come from: campaign dates are campaign.start_date_time / campaign.end_date_time (campaign.start_date does not exist); any field in WHERE or ORDER BY must also be in SELECT; DURING takes only LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH and similar (no LAST_90_DAYS; use segments.date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD').

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYesA GAQL query, e.g. "SELECT campaign.name, metrics.cost_micros, metrics.conversions FROM campaign WHERE segments.date DURING LAST_30_DAYS"
customer_idYesAccount ID from ads_list_accounts

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only/idempotent/non-destructive, and the description goes well beyond them: it discloses Google's allowlist restriction on auction_insight_* fields and pre-empts the most common refusal causes (nonexistent campaign.start_date, WHERE/ORDER BY fields must be in SELECT, DURING lacks LAST_90_DAYS). That is exactly the kind of operational context an agent cannot infer from structured fields.

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-loads purpose and use cases in the first sentence, then spends the remainder on high-value refusal-avoidance rules. The GAQL rules sentence is long and dense but each clause prevents a real failure mode; only slight trimming would be possible without losing information.

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?

With no output schema, the description usefully explains the date_range field in results and the platform restrictions, and it warns about the query grammar. It leaves the limit/pagination behavior unexplained, which is the main remaining gap for a query tool that can return up to 2000 rows.

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 coverage is 67% and the undocumented 'limit' parameter (default 200, max 2000) is never mentioned in the description, so the description does not compensate for that gap. It does add GAQL semantics that the schema's one-line example only hints at, and clarifies that the result's date_range reflects the query period, which justifies the baseline rather than a lower score.

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 ('Run a GAQL query against one Google Ads account') and enumerates concrete use cases (spend, clicks, conversions, search terms, keyword performance). An agent can distinguish this from ga4_report, gsc_query, or meta_insights without opening any 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 clear context for when to use it and even routes the agent away from an unavailable capability ('auction insights ... not available here; use impression share instead'), plus notes customer_id comes from ads_list_accounts. It stops short of naming sibling reporting tools (ga4_report, gsc_query) as alternatives when the platform is not Google Ads.

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.