Skip to main content
Glama
MoonEyes

google-ecommerce-mcp

OpenAI Ads conversions

openai_ads_conversions
Read-onlyIdempotent

Retrieve ChatGPT ads conversion insights to measure click-through and view-through goal conversions and attributed order value by campaign, ad group, ad, or account over a date range.

Instructions

OpenAI Ads (ChatGPT ads) conversion insights (POST /v1/conversions/insights, a read query): goal conversions (click-through and view-through) and attributed order value per campaign, ad group or ad (entity_ids), or for the whole account (group_by_entity false), over whole days in the account timezone. Returns "rows" (null kept), recomputed "totals", "currency" (account_currency), "attribution" and "date_range". No pagination: more than 2000 rows answers too_many_rows (fewer entities, shorter period or fewer event_names). Warning: attributed event details may contain order or user identifiers; only documented aggregate fields are kept.

Input Schema

NameRequiredDescriptionDefault
end_dateYesLast day, YYYY-MM-DD (inclusive)
breakdownNoOptional breakdown: country or device; empty for none
client_idNoClient id from clients_list; empty uses the only client (or the environment variables without a registry)
entity_idsNoIds of the entities of aggregation_level (1 to 100). Required when group_by_entity is true; must be empty when it is false
start_dateYesFirst day, YYYY-MM-DD (whole days, 365 days at most)
event_namesNoOptional exact event names for the event details (requires include_attributed_events; here at most 20 names of 64 characters among letters, digits, _ . : -, stricter than the API)
group_by_entityNoTrue (API default): one row per entity of entity_ids; false: one row for the whole ad account (no entity_ids)
account_timezoneYesIANA timezone of the ad account, e.g. Europe/Paris (the timezone column of openai_ads_insights): the API counts whole days in it
time_granularityNonone: period totals; daily: one row per daynone
aggregation_levelYesRequired row entity: campaign, ad_group or ad
include_zero_rowsNoTrue (API default): keep rows without conversions
attribution_time_basisNoad_event_time (API default) or conversion_time; empty sends nothing
attribution_window_daysNoClick attribution window in days: 7, 14 or 30
include_attributed_eventsNoTrue: add per-event aggregates (event_name, counts, value); may expose order or user identifiers, so only aggregate fields are kept
view_through_attribution_window_daysNoView-through attribution window in days: 0 or 1

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.5.0
    • addedInput schema / properties / client_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Client id from clients_list; empty uses the only client (or the environment variables without a registry)",
      +  "title": "Client Id"
      +}
  2. Addedv0.4.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds real behavioral detail beyond them: no pagination, a hard 2000-row cap that returns too_many_rows, and a data-handling warning that attributed event details may contain order or user identifiers with only documented aggregate fields kept. Auth needs and rate limits are not covered, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Front-loads the purpose and endpoint, then layers scope, return shape, the row-limit failure mode, and the privacy warning in a single dense paragraph. Every clause carries information; nothing is padding despite the tool's 15 parameters.

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?

For a 15-parameter tool with no output schema, the description compensates by naming the return keys ('rows', 'totals', 'currency', 'attribution', 'date_range'), the null-row behavior, the pagination cap and its error, and the identifier exposure warning. An agent has everything needed to call it and interpret the result.

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 schema already documents all 15 parameters and the baseline is 3. The description reinforces the entity_ids/group_by_entity relationship and the timezone whole-day counting, but adds little syntax or meaning beyond what the schema already states.

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 ('conversion insights', POST /v1/conversions/insights, a read query) and enumerates exactly what it returns: goal conversions (click-through/view-through) and attributed order value per campaign, ad group, ad, or whole account. This lets an agent distinguish it from the sibling openai_ads_insights without opening either schema.

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 scope ('conversion insights') implies when to reach for it versus a general insights tool, and the too_many_rows remedy ('fewer entities, shorter period or fewer event_names') is useful operational guidance. However, no sibling is named and no explicit when-to-use/when-not routing is given, so usage is inferred rather than stated.

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

Deploy Server

Other Tools