Skip to main content
Glama

google_ads_conversions_performance

Report Google Ads conversions by conversion action and date, with optional campaign filter. Includes totals, cost per conversion, daily details, and landing pages for converting rows.

Instructions

Report Google Ads conversions broken down by conversion_action and date, with optional campaign filter. Returns {period, campaign_id, total_conversions, actions:[{campaign_id, campaign_name, conversion_action_name, conversions, conversions_value, first_date, last_date, cost_per_conversion}] (sorted by conversions desc), daily_details:[{date, campaign_id, campaign_name, conversion_action_name, conversions, conversions_value}], landing_pages:[{date, landing_page_url, campaign_id, campaign_name, conversions, conversions_value, clicks}]}. Only rows with conversions > 0 are included. cost_per_conversion is computed via a separate GAQL because GAQL cannot SELECT cost_per_conversion alongside segments.conversion_action_name. Read-only. For campaign-level metrics use google_ads_performance_report.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
periodNoReporting window. Default 'LAST_30_DAYS'. Use LAST_7_DAYS / LAST_14_DAYS for recent diagnosis; LAST_90_DAYS for baseline. Also accepts an explicit range in GAQL spelling — "BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'", both endpoints inclusive, in the account's time zone — for a window no trailing constant can reach (e.g. a single past calendar month). One asymmetry to know about: every constant except LAST_90_DAYS is resolved by Google Ads in the account's reporting time zone, whereas LAST_90_DAYS has no API constant and is expanded by mureo into the 90 days ending yesterday **on the server's date**, so its edges can differ by a day when the server and the account are in different zones. Pass an explicit range when the exact boundary matters.
campaign_idNoOptional campaign ID as a numeric string to restrict the report. Omit for account-wide aggregation.
customer_idNoGoogle Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changedv0.17.1
    • addedInput schema / properties / period / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "TODAY",
      +      "YESTERDAY",
      +      "THIS_WEEK_SUN_TODAY",
      +      "THIS_WEEK_MON_TODAY",
      +      "LAST_BUSINESS_WEEK",
      +      "LAST_WEEK_SUN_SAT",
      +      "LAST_WEEK_MON_SUN",
      +      "LAST_7_DAYS",
      +      "LAST_14_DAYS",
      +      "LAST_30_DAYS",
      +      "LAST_90_DAYS",
      +      "THIS_MONTH",
      +      "LAST_MONTH"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "\\ABETWEEN '([0-9]{4}-[0-9]{2}-[0-9]{2})' AND '([0-9]{4}-[0-9]{2}-[0-9]{2})'\\Z",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / period / description
      Previous value: -"Reporting window. Default 'LAST_30_DAYS'. Use LAST_7_DAYS / LAST_14_DAYS for recent diagnosis; LAST_90_DAYS for baseline."New value: +"Reporting window. Default 'LAST_30_DAYS'. Use LAST_7_DAYS / LAST_14_DAYS for recent diagnosis; LAST_90_DAYS for baseline. Also accepts an explicit range in GAQL spelling — \"BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'\", both endpoints inclusive, in the account's time zone — for a window no trailing constant can reach (e.g. a single past calendar month). One asymmetry to know about: every constant except LAST_90_DAYS is resolved by Google Ads in the account's reporting time zone, whereas LAST_90_DAYS has no API constant and is expanded by mureo into the 90 days ending yesterday **on the server's date**, so its edges can differ by a day when the server and the account are in different zones. Pass an explicit range when the exact boundary matters."
    • removedInput schema / properties / period / enum
      Removed value: -[
      -  "TODAY",
      -  "YESTERDAY",
      -  "LAST_7_DAYS",
      -  "LAST_14_DAYS",
      -  "LAST_30_DAYS",
      -  "LAST_90_DAYS",
      -  "THIS_MONTH",
      -  "LAST_MONTH"
      -]
  2. Changed1 schema field changedv0.10.37
    • addedInput schema / additionalProperties
      Added value: +false
  3. Addedv0.10.11
  4. Removedv0.10.9
  5. Addedv0.9.12
  6. Removedv0.9.6
  7. Addedv0.9.2
  8. Removedv0.9.1
  9. Addedv1.0.5

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does a strong job: it declares 'Read-only,' explains the zero-conversion row filter, and discloses the GAQL limitation that forces a separate query for cost_per_conversion. It does not mention rate limits or data freshness, but the core behavioral traits an agent needs to anticipate are present.

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 description is front-loaded with a one-sentence summary, then the return shape, then behavioral notes and the sibling pointer. It is longer than average but every section adds value, especially because there is no output schema to rely on. The GAQL-background sentence is slightly technical but explains an important behavior.

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 no annotations, so the detailed return structure in the description is essential and well provided. It covers what data is returned, the ordering of actions, the conversion-only filter, read-only status, and the campaign-level alternative. Minor gaps like pagination and error behavior are acceptable for a read-only report tool with zero required parameters.

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%, so the baseline is 3; the schema already documents period, campaign_id, and customer_id in detail. The main description adds no new parameter-level meaning beyond 'optional campaign filter,' which the schema already states. It does not compensate further, but it does not need to.

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 and resource: 'Report Google Ads conversions broken down by conversion_action and date, with optional campaign filter.' It clearly distinguishes itself from the nearest sibling by closing with 'For campaign-level metrics use google_ads_performance_report,' so an agent can tell exactly when this tool applies.

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?

It explicitly names an alternative tool and the condition that selects it: 'For campaign-level metrics use google_ads_performance_report.' It also states the inclusion rule ('Only rows with conversions > 0 are included'), which informs interpretation of results. This is direct, actionable guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/logly/mureo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server