Skip to main content
Glama

Google Ads Connector

google_ads_connector
Read-onlyIdempotent

Google Ads performance: campaigns, ad groups, keywords, search terms, geographic and device breakdowns, quality scores, impression share, and spend metrics. When the user asks for a visual, trend, comparison, or recap, call chart_render with the numeric values returned by this connector. If the connector result includes a verified chart_provenance token, the same authenticated user may pass it as provenance_token within 15 minutes, on any replica, and map every value to its exact source_path so chart_render preserves verified provenance. Without a valid connector receipt, chart_render labels values as unverified_model_data. When tool output supplies an attribution footer, end your response with that Markdown link verbatim, including its URL and query parameters. Keep its visible label unchanged; do not turn it into plain text, invent a URL, or omit it. Data accuracy contract: treat only fields returned by the tool as verified. Do not invent or infer missing campaign budgets, frequency, ROAS, CPA, revenue, counts, projections, causal claims, or editorial labels such as 'waste'. Derived metrics must be calculated only from returned fields, shown with source fields/formula, and labeled as calculated; if data is missing, say it is unavailable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesget_account_summary: Get high-level Google Ads account performance summary with aggregate metrics | list_campaigns: List Google Ads campaigns with performance metrics (impressions, clicks, cost, conversions, CTR, CPC) | get_keyword_performance: Get keyword performance with quality scores, match types, and search impression share | list_accounts: List all Google Ads accounts accessible to the authenticated user | get_campaign_performance: Get daily performance breakdown for a specific Google Ads campaign | list_ad_groups: List ad groups with performance metrics, optionally filtered by campaign | list_ads: List individual ads with performance metrics, headlines, descriptions, and URLs | get_search_terms: Get search term report showing actual queries that triggered your ads | get_geographic_performance: Get performance breakdown by geographic location | get_device_performance: Get performance breakdown by device type (desktop, mobile, tablet) | get_age_gender_performance: Get performance breakdown by age range and gender demographics | run_query: Run a custom GAQL (Google Ads Query Language) query for advanced analysis. See https://developers.google.com/google-ads/
paramsNoAction-specific parameters. get_account_summary: {customer_id: string, start_date?: string, end_date?: string} | list_campaigns: {customer_id: string, start_date?: string, end_date?: string, status_filter?: string, limit?: integer} | get_keyword_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer} | list_accounts: {login_customer_id?: string} | get_campaign_performance: {customer_id: string, campaign_id: string, start_date?: string, end_date?: string, login_customer_id?: string} | list_ad_groups: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, status_filter?: string, limit?: integer, login_customer_id?: string} | list_ads: {customer_id: string, campaign_id?: string, ad_group_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_search_terms: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_geographic_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_device_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, login_customer_id?: string} | get_age_gender_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, login_customer_id?: string} | run_query: {customer_id: string, query: string, limit?: integer, login_customer_id?: string}

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: the provenance_token mechanics (15-minute window, any replica, exact source_path mapping), the unverified_model_data fallback when no receipt exists, and a data accuracy contract about derived metrics. This is substantive disclosure not present in 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one clear sentence, but roughly half the text is about chart_render provenance, attribution footers, and the accuracy contract rather than about this tool's own invocation. The content arguably earns its place as workflow governance, but it is verbose and dilutes the core signal.

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?

There is no output schema, and for a 12-action connector the description does not describe return shapes per action. It does, however, cover the data accuracy contract and downstream integration, which are the main correctness risks. Given the fully documented schema, an agent has enough to call the tool correctly.

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 description coverage is 100%: the action enum is fully documented with per-action semantics and the params field lists the shape of each action's arguments. The description adds no detail on parameter syntax or format beyond what the schema already provides, so the baseline 3 applies.

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?

The description names specific resources (campaigns, ad groups, keywords, search terms, geographic/device breakdowns) and metric families (quality scores, impression share, spend), so an agent knows what data the tool retrieves. However, it does not distinguish itself from sibling ad connectors like meta_ads_connector, linkedin_ads_connector, or cross_source_ads_connector beyond the implicit 'Google Ads' scope.

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?

The description gives detailed guidance about downstream steps (call chart_render for visuals, pass provenance_token) but says nothing about when this connector should be chosen over the other ads connectors in the sibling list. Usage for the tool itself is only implied by the listed data categories.

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