Skip to main content
Glama
Google Ads MCP Server

Google Ads MCP Server

get_campaign_performance

Read-only

Retrieve Google Ads campaign performance metrics for a chosen date range. Filter by campaign ID or status to analyze specific campaign results.

Instructions

Get campaign performance metrics over a date range.

Args:
    customer_id: Google Ads customer ID.
    date_range: Date range -- use predefined (LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH,
        LAST_MONTH, etc.) or custom 'YYYY-MM-DD,YYYY-MM-DD'.
    campaign_id: Optional -- filter to a single campaign.
    status_filter: Optional -- filter by status (ENABLED, PAUSED, REMOVED).
    limit: Max rows to return (default 50).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "customer_id": "<customer_id>"
    },
    "name": "get_campaign_performance"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
date_rangeNoLAST_30_DAYS
campaign_idNo
customer_idYes
status_filterNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful operational detail — accepted date_range formats, the LAST_30_DAYS default, and the default row limit of 50 — but says nothing about pagination behavior, zero-row campaigns, or whether cost figures are in micros.

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?

The one-line purpose is front-loaded, followed by a compact Args block that maps one-to-one onto the five parameters. No filler, though the Args-list format is slightly verbose relative to the short schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only analytics tool with no output schema, the description should hint at which metrics are returned; 'campaign performance metrics' is unspecified. Parameters are otherwise fully documented, and annotations handle safety, so the definition is callable but not fully self-explanatory.

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?

Schema description coverage is 0%, so the description carries the full burden and does it well: it enumerates predefined date ranges plus the custom 'YYYY-MM-DD,YYYY-MM-DD' format, lists valid status values, and notes campaign_id is optional. Gaps remain on customer_id format expectations and limit semantics (max vs. page size).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: 'Get campaign performance metrics over a date range.' Combined with the tool name, an agent can tell it apart from siblings like get_ad_group_performance or get_account_performance_summary by level of aggregation. It does not, however, explicitly state the distinction from those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the parameter list: filtering by campaign_id or status_filter suggests narrowing a campaign-level report. There is no explicit statement of when to prefer this over get_account_performance_summary, get_ad_group_performance, or execute_gaql, and no prerequisites or exclusions.

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