Skip to main content
Glama
wvuhskr

mcp-microsoft-ads

by wvuhskr

create_conversion_action

Create a Microsoft Ads conversion goal with type Event, Url, or Duration, specifying matching criteria and category. Track conversions like form submissions or calls.

Instructions

Draft a conversion goal. goal_type: Event | Url | Duration (only supported values on the development account). Each goal_type REQUIRES its matching match-criteria arg — without one the goal creates "successfully" but can never record a conversion:

  • Url: url_expression (matched with UrlOperator="Contains")

  • Event: action_expression (matched with ActionOperator="Contains"; category/label expressions are out of scope here)

  • Duration: minimum_duration_seconds goal_category (ConversionGoalCategory enum) is REQUIRED live even though the WSDL marks it optional — omitting it faults "InvalidGoalCategory" (3347). Defaults to "Other", the only value live-verified valid across all three goal types (Task 25e probe); PageView also works on Url/Event but faults InvalidCategoryForGoalType (3349) on Duration. A category already claimed by an ACTIVE MS auto-created goal on the same UET tag faults SameCategoryAndTagNotAllowedForAutoGoalAndManualGoal (5667) — observed on Url goals only; the live acceptance matrix never exercised Event or Duration for this collision. The fault is keyed on category+tag rather than goal type, so it plausibly extends to Event/Duration too, but that's inference, not a tested fact — account state decides, not goal type. Lead-gen-meaningful values: SubmitLeadForm, BookAppointment, RequestQuote, Contact. NOTE: OfflineConversion goals are deliberately not created by this tool — create them in the MS Ads UI instead — because accounts that feed offline conversions from an external upload pipeline risk double-counting. ONE-WAY DOOR (Task 25f): there is no DeleteConversionGoals operation on this API (verified against the WSDL — every other entity family has a Delete*, this one doesn't) and UpdateConversionGoals(Status="Deleted") silently no-ops (partial_errors=[], goal reads back Active still) — so a created goal cannot be deleted. The only real levers are Status="Paused" and ExcludeFromBidding=True (both verified by read-back); full removal requires the MS Ads UI.

Live-verified 2026-07-30.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
valueNo
goal_typeNoEvent
goal_categoryNoOther
url_expressionNo
action_expressionNo
minimum_duration_secondsNo
Behavior5/5

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

With no annotations present, the description carries the full burden and delivers exceptionally. It discloses the silent-failure mode (matches-criteria omitted → goal 'creates successfully' but never records), the live-vs-WSDL discrepancy for goal_category (fault 3347), the category-collision fault (5667) with its tested-vs-inferred caveat, and the one-way-door reality (no DeleteConversionGoals; update no-ops; only Paused/ExcludeFromBidding as levers). This is far beyond what is typical and gives the agent honest model of side effects and failure modes.

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?

Well front-loaded (purpose first, then goal_type bullet list) and logically organized with clear warn-blocks. However, it is a dense wall of text with internal project references ('Task 25e probe', 'Task 25f') and deep fault-code archaeology that a general agent doesn't need verbatim. The information is valuable but could be trimmed to be more efficient without losing meaning.

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 high-complexity tool (7 params, 0% schema coverage, no annotations, no output schema), this is near-complete: it specifies supported goal types, per-type required arguments, category constraints and defaults, the offline-conversion exclusion, the irreversible-creation warning, and documented backout levers. The only residual gaps are the undocumented 'value' parameter and the absence of a note on the expected success/confirmation response, both minor against the depth provided.

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?

At 0% schema coverage the description must compensate, and it does for 5 of 7 params: goal_type (three values, dev-account constraint), url_expression (UrlOperator=Contains), action_expression (ActionOperator=Contains), minimum_duration_seconds (required for Duration), and goal_category (enum values, default, live-verified validity across goal types). The only gap is the 'value' parameter, which receives no explanation at all — a minor omission for an otherwise thorough mapping.

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 states a specific action on a specific resource ('Draft a conversion goal') and immediately differentiates itself by spelling out the three supported goal_types and, crucially, what it deliberately does not do (OfflineConversion goals — 'create them in the MS Ads UI instead'). It is clearly distinct from siblings such as get_conversion_actions (read) and set_conversion_action_primary_status (post-creation status control).

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?

Gives explicit when-to-use context: the three goal_type values and their required matching args, plus the lead-gen-meaningful category values. It explicitly states when NOT to use ('OfflineConversion goals are deliberately not created by this tool — create them in the MS Ads UI' with the double-counting rationale) and the one-way-door warning effectively tells the agent to use this only when a permanent, undeletable goal is acceptable. It doesn't name an in-toolset alternative for the offline path, but steers to the external UI, which is clear enough.

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/wvuhskr/mcp-microsoft-ads'

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