Skip to main content
Glama

Ad group performance

get_adgroup_performance
Read-only

Use to drill Sponsored Products performance from campaign to ad group: spend, sales, ACOS, ROAS, CTR, CPC, CVR. Grain: campaign + ad group; recent ~3 days may be incomplete. Do not use for bidded keyword/target or customer search-term analysis; use get_keyword_performance or get_search_terms. Each row's refresh_window_open is true when at least one included reporting date is on or after settling_from_date and on or before reporting-local today. settling_from_date is the start of that profile/table's latest completed scheduled re-pull window (normally 16 calendar days ending the day before refresh). It means we still re-pull the day, not that its value will change; false is not a guarantee of finality. Missing completed-window evidence returns null.

Input Schema

NameRequiredDescriptionDefault
limitNoMax rows (1-1000, default 20).
offsetNoPagination offset (0-100000, default 0). Use the returned pagination.next_offset to continue.
sort_byNoColumn to sort byspend
end_dateNoOptional. YYYY-MM-DD. Defaults to today if omitted.
profile_idNoFilter by profile ID
sort_orderNoSort orderdesc
start_dateNoOptional. YYYY-MM-DD. Defaults to 30 days ago if omitted.
ad_group_nameNoFilter by ad group name (LIKE match)
campaign_nameNoFilter by campaign name (LIKE match, use % for wildcards)
include_raw_rowsNoFor tabular results, false returns compact rows capped at MCP_TEXT_ROW_PREVIEW_LIMIT (default 10), regardless of limit. Complete-page and custom non-tabular responses may ignore this option; see tool-specific notes. Default true; large full-row responses are capped separately. Freshness fields require include_diagnostics=true in either row mode, where supported.
include_diagnosticsNoTrue enables expanded freshness diagnostics. Where supported, snapshot_capture_at and snapshot_data_through_date are populated only when include_diagnostics=true, in both compact and full-row modes; values may still be null if source data is unavailable. Default false. Basic empty-result data-window diagnostics are included by default when available.

Output Schema

NameRequiredDescriptionDefault
evidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / evidence / properties / effective_scope / $ref
      Removed value: -"#/properties/evidence/properties/requested_scope"
    • addedOutput schema / properties / evidence / properties / effective_scope / additionalProperties
      Added value: +false
    • addedOutput schema / properties / evidence / properties / effective_scope / properties
      Added value: +{
      +  "end_date": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "filters": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "group_by": {
      +    "items": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "marketplace_id": {
      +    "anyOf": [
      +      {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "reporting_time_zone": {
      +    "anyOf": [
      +      {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "sort": {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "direction": {
      +          "enum": [
      +            "asc",
      +            "desc"
      +          ],
      +          "type": "string"
      +        },
      +        "field": {
      +          "maxLength": 128,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "field",
      +        "direction"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "start_date": {
      +    "anyOf": [
      +      {
      +        "format": "date",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +        "type": "string"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  }
      +}
    • addedOutput schema / properties / evidence / properties / effective_scope / required
      Added value: +[
      +  "marketplace_id",
      +  "start_date",
      +  "end_date",
      +  "reporting_time_zone",
      +  "group_by",
      +  "sort",
      +  "filters"
      +]
    • addedOutput schema / properties / evidence / properties / effective_scope / type
      Added value: +"object"
    • removedOutput schema / properties / evidence / properties / grain / items / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / grain / items / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / grain / items / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / grain / items / type
      Added value: +"string"
    • removedOutput schema / properties / evidence / properties / join_keys / items / properties / field / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / join_keys / items / properties / field / type
      Added value: +"string"
    • changedOutput schema / properties / evidence / properties / observed / properties / data_start / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / evidence / properties / observed / properties / data_through / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / evidence / properties / requested_scope / properties / end_date / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / filters / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / group_by / items / type
      Added value: +"string"
    • removedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / $ref
      Removed value: -"#/properties/evidence/properties/tool"
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / maxLength
      Added value: +128
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / minLength
      Added value: +1
    • addedOutput schema / properties / evidence / properties / requested_scope / properties / sort / items / properties / field / type
      Added value: +"string"
    • changedOutput schema / properties / evidence / properties / requested_scope / properties / start_date / anyOf
      Previous value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "format": "date",
      +    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / include_diagnostics / description
      Previous value: -"True may add expanded freshness diagnostics. Basic empty-result data-window diagnostics are included by default when available."New value: +"True enables expanded freshness diagnostics. Where supported, snapshot_capture_at and snapshot_data_through_date are populated only when include_diagnostics=true, in both compact and full-row modes; values may still be null if source data is unavailable. Default false. Basic empty-result data-window diagnostics are included by default when available."
    • changedInput schema / properties / include_raw_rows / description
      Previous value: -"False returns compact rows. Default true."New value: +"For tabular results, false returns compact rows capped at MCP_TEXT_ROW_PREVIEW_LIMIT (default 10), regardless of limit. Complete-page and custom non-tabular responses may ignore this option; see tool-specific notes. Default true; large full-row responses are capped separately. Freshness fields require include_diagnostics=true in either row mode, where supported."
  3. Changed5 schema fields changed
    • changedOutput schema / properties / evidence / properties / basis / properties / date / items / enum
      Previous value: -[
      -  "order_date",
      -  "reporting_date",
      -  "click_attribution_date",
      -  "posted_date",
      -  "settlement_date",
      -  "snapshot_date",
      -  "live_observation_time",
      -  "event_time",
      -  "effective_date",
      -  "not_applicable",
      -  "not_reported"
      -]New value: +[
      +  "order_date",
      +  "reporting_date",
      +  "click_attribution_date",
      +  "posted_date",
      +  "financial_event_group_start",
      +  "settlement_date",
      +  "snapshot_date",
      +  "live_observation_time",
      +  "event_time",
      +  "effective_date",
      +  "not_applicable",
      +  "not_reported"
      +]
    • changedOutput schema / properties / evidence / properties / entity_types / items / enum
      Previous value: -[
      -  "account",
      -  "marketplace",
      -  "product",
      -  "variation_family",
      -  "listing",
      -  "offer",
      -  "inventory_item",
      -  "fulfillment_center",
      -  "order",
      -  "order_item",
      -  "campaign",
      -  "ad_group",
      -  "ad",
      -  "target",
      -  "keyword",
      -  "search_query",
      -  "portfolio",
      -  "store",
      -  "audience_segment",
      -  "dsp_advertiser",
      -  "shipment",
      -  "inbound_plan",
      -  "fulfillment_operation",
      -  "transaction",
      -  "settlement",
      -  "financial_event",
      -  "return",
      -  "reimbursement",
      -  "promotion",
      -  "review",
      -  "catalog_definition",
      -  "audit_event",
      -  "not_applicable"
      -]New value: +[
      +  "account",
      +  "marketplace",
      +  "product",
      +  "variation_family",
      +  "listing",
      +  "offer",
      +  "inventory_item",
      +  "fulfillment_center",
      +  "order",
      +  "order_item",
      +  "campaign",
      +  "ad_group",
      +  "ad",
      +  "target",
      +  "keyword",
      +  "search_query",
      +  "portfolio",
      +  "store",
      +  "audience_segment",
      +  "dsp_advertiser",
      +  "shipment",
      +  "inbound_plan",
      +  "fulfillment_operation",
      +  "transaction",
      +  "settlement",
      +  "financial_event",
      +  "financial_event_group",
      +  "return",
      +  "reimbursement",
      +  "promotion",
      +  "review",
      +  "catalog_definition",
      +  "audit_event",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / join_keys / items / properties / entity_type / enum
      Previous value: -[
      -  "account",
      -  "marketplace",
      -  "product",
      -  "variation_family",
      -  "listing",
      -  "offer",
      -  "inventory_item",
      -  "fulfillment_center",
      -  "order",
      -  "order_item",
      -  "campaign",
      -  "ad_group",
      -  "ad",
      -  "target",
      -  "keyword",
      -  "search_query",
      -  "portfolio",
      -  "store",
      -  "audience_segment",
      -  "dsp_advertiser",
      -  "shipment",
      -  "inbound_plan",
      -  "fulfillment_operation",
      -  "transaction",
      -  "settlement",
      -  "financial_event",
      -  "return",
      -  "reimbursement",
      -  "promotion",
      -  "review",
      -  "catalog_definition",
      -  "audit_event",
      -  "not_applicable"
      -]New value: +[
      +  "account",
      +  "marketplace",
      +  "product",
      +  "variation_family",
      +  "listing",
      +  "offer",
      +  "inventory_item",
      +  "fulfillment_center",
      +  "order",
      +  "order_item",
      +  "campaign",
      +  "ad_group",
      +  "ad",
      +  "target",
      +  "keyword",
      +  "search_query",
      +  "portfolio",
      +  "store",
      +  "audience_segment",
      +  "dsp_advertiser",
      +  "shipment",
      +  "inbound_plan",
      +  "fulfillment_operation",
      +  "transaction",
      +  "settlement",
      +  "financial_event",
      +  "financial_event_group",
      +  "return",
      +  "reimbursement",
      +  "promotion",
      +  "review",
      +  "catalog_definition",
      +  "audit_event",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / join_keys / items / properties / role / enum
      Previous value: -[
      -  "account_id",
      -  "marketplace_id",
      -  "asin",
      -  "advertised_asin",
      -  "purchased_asin",
      -  "child_asin",
      -  "parent_asin",
      -  "seller_sku",
      -  "fnsku",
      -  "order_id",
      -  "order_item_id",
      -  "campaign_id",
      -  "ad_group_id",
      -  "ad_id",
      -  "target_id",
      -  "keyword_id",
      -  "search_query",
      -  "portfolio_id",
      -  "shipment_id",
      -  "inbound_plan_id",
      -  "operation_id",
      -  "transaction_id",
      -  "settlement_id",
      -  "promotion_id",
      -  "not_applicable"
      -]New value: +[
      +  "account_id",
      +  "marketplace_id",
      +  "asin",
      +  "advertised_asin",
      +  "purchased_asin",
      +  "child_asin",
      +  "parent_asin",
      +  "seller_sku",
      +  "fnsku",
      +  "order_id",
      +  "order_item_id",
      +  "campaign_id",
      +  "ad_group_id",
      +  "ad_id",
      +  "target_id",
      +  "keyword_id",
      +  "search_query",
      +  "portfolio_id",
      +  "shipment_id",
      +  "inbound_plan_id",
      +  "operation_id",
      +  "transaction_id",
      +  "financial_event_group_id",
      +  "settlement_id",
      +  "promotion_id",
      +  "not_applicable"
      +]
    • changedOutput schema / properties / evidence / properties / metric_families / items / enum
      Previous value: -[
      -  "sales",
      -  "traffic",
      -  "advertising",
      -  "inventory",
      -  "returns",
      -  "reimbursements",
      -  "fees",
      -  "profitability",
      -  "catalog",
      -  "rank",
      -  "fulfillment",
      -  "pricing",
      -  "promotions",
      -  "reviews",
      -  "audit",
      -  "availability",
      -  "not_applicable"
      -]New value: +[
      +  "sales",
      +  "traffic",
      +  "advertising",
      +  "inventory",
      +  "returns",
      +  "reimbursements",
      +  "payouts",
      +  "fees",
      +  "profitability",
      +  "catalog",
      +  "rank",
      +  "fulfillment",
      +  "pricing",
      +  "promotions",
      +  "reviews",
      +  "audit",
      +  "availability",
      +  "not_applicable"
      +]
  4. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only cover read-only safety; the description adds substantial unstated behavior: recent ~3 days may be incomplete, and a precise definition of refresh_window_open including the caveat that false is not a guarantee of finality and that missing evidence yields null. These are exactly the misinterpretation traps an agent would otherwise fall into.

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-loaded with purpose, grain, and exclusions before the freshness nuance, which is the right order. The closing block spends four sentences explaining a single output field (refresh_window_open/settling_from_date), which is justified by its non-obvious semantics but is denser than the rest of the description.

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?

An output schema exists so return values need not be described, yet the description still covers the freshness semantics an agent must have to interpret results correctly. For an 11-parameter reporting tool with sibling overlap, nothing needed for correct invocation or interpretation is missing.

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 100%, so limit/offset/sort/filters are already fully documented; the description adds no parameter-level meaning beyond mentioning the date-range grain. Baseline 3 applies when the schema does the heavy lifting.

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 ('drill Sponsored Products performance from campaign to ad group') and names the exact metrics returned plus the row grain. This separates it cleanly from get_campaign_performance (coarser grain) and the keyword/search-term siblings.

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?

Explicit routing: 'Do not use for bidded keyword/target or customer search-term analysis; use get_keyword_performance or get_search_terms.' The positive case ('Use to drill ... from campaign to ad group') is clear. It does not explicitly name get_campaign_performance as the coarser alternative, which is the most likely confusion given the shared metric set.

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.