Skip to main content
Glama
kLOsk

AdLoop: Google Ads, Reddit Ads & GA4

Draft conversion action changes

draft_update_conversion_action

Draft a partial update to an existing Google Ads conversion action and return a preview plan; nothing changes until you confirm and apply it.

Instructions

Draft a partial UPDATE of an existing ConversionAction — returns PREVIEW.

Only parameters passed non-empty/non-default are sent to the API. Covers renaming, demoting a Primary to Secondary, changing value, adjusting the call-duration threshold, or changing attribution. SMART_CAMPAIGN_* and GOOGLE_HOSTED types reject mutations with MUTATE_NOT_ALLOWED at apply time. Returns a preview with a plan_id (plus warnings where relevant); nothing changes until confirm_and_apply applies it.

Google Ads API: https://developers.google.com/google-ads/api/docs/start

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNew name. Empty keeps the current name.
customer_idNoGoogle Ads customer ID (digits, dashes allowed). Defaults to the configured account.
counting_typeNoONE_PER_CLICK or MANY_PER_CLICK. Empty leaves it unchanged.
currency_codeNoNew 3-letter ISO 4217 currency code. Empty leaves it unchanged.
default_valueNoNew default value in the action's currency (not micros), >= 0. 0 leaves it unchanged.
primary_for_goalNoTrue makes it Primary (Smart Bidding optimizes toward it); False demotes it to Secondary. Omit to leave unchanged.
attribution_modelNoAttributionModel enum value, e.g. GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. Empty leaves it unchanged.
conversion_action_idYesNumeric ConversionAction ID. It comes from: SELECT conversion_action.id, conversion_action.name FROM conversion_action.
always_use_default_valueNoTrue always uses default_value; False uses it only as a fallback when the tag/import supplies no value (the preview warns when combined with a positive default_value). Omit to leave unchanged.
view_through_window_daysNoView-through attribution window in days, 1-30. 0 leaves it unchanged.
click_through_window_daysNoClick-through attribution window in days, 1-90. 0 leaves it unchanged.
phone_call_duration_secondsNoMinimum call length in seconds for a call to count. 0 leaves it unchanged.
include_in_conversions_metricNoTrue shows the action in the "Conversions" column; False in "All conversions" only. Mutable here (unlike on create). Omit to leave unchanged.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.27.1
    • addedInput schema / properties / always_use_default_value / description
      Added value: +"True always uses default_value; False uses\nit only as a fallback when the tag/import supplies no value (the\npreview warns when combined with a positive default_value). Omit to\nleave unchanged."
    • addedInput schema / properties / attribution_model / description
      Added value: +"AttributionModel enum value, e.g.\nGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. Empty leaves it unchanged."
    • addedInput schema / properties / click_through_window_days / description
      Added value: +"Click-through attribution window in days,\n1-90. 0 leaves it unchanged."
    • addedInput schema / properties / conversion_action_id / description
      Added value: +"Numeric ConversionAction ID. It comes from:\nSELECT conversion_action.id, conversion_action.name FROM\nconversion_action."
    • addedInput schema / properties / counting_type / description
      Added value: +"ONE_PER_CLICK or MANY_PER_CLICK. Empty leaves it\nunchanged."
    • addedInput schema / properties / currency_code / description
      Added value: +"New 3-letter ISO 4217 currency code. Empty leaves it\nunchanged."
    • addedInput schema / properties / customer_id / description
      Added value: +"Google Ads customer ID (digits, dashes allowed). Defaults\nto the configured account."
    • addedInput schema / properties / default_value / description
      Added value: +"New default value in the action's currency (not micros),\n>= 0. 0 leaves it unchanged."
    • addedInput schema / properties / include_in_conversions_metric / description
      Added value: +"True shows the action in the\n\"Conversions\" column; False in \"All conversions\" only. Mutable here\n(unlike on create). Omit to leave unchanged."
    • addedInput schema / properties / name / description
      Added value: +"New name. Empty keeps the current name."
    • addedInput schema / properties / phone_call_duration_seconds / description
      Added value: +"Minimum call length in seconds for a call\nto count. 0 leaves it unchanged."
    • addedInput schema / properties / primary_for_goal / description
      Added value: +"True makes it Primary (Smart Bidding optimizes toward\nit); False demotes it to Secondary. Omit to leave unchanged."
    • addedInput schema / properties / view_through_window_days / description
      Added value: +"View-through attribution window in days,\n1-30. 0 leaves it unchanged."
  2. Addedv0.13.3

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, leaving the description to carry real behavioral weight. It does so: partial-update semantics ('only parameters passed non-empty/non-default are sent'), a hard failure mode (SMART_CAMPAIGN_* and GOOGLE_HOSTED reject with MUTATE_NOT_ALLOWED at apply time), and the non-mutating guarantee (nothing changes until confirm_and_apply). This is exactly the kind of context annotations cannot supply.

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?

Every sentence is load-bearing: purpose, partial-update rule, mutation coverage, failure mode, and return/apply contract. The preview semantics and the destructive-free guarantee are front-loaded before the API doc link, so an agent gets the essentials in the first two lines.

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?

With an output schema present, return-value detail is not needed, and annotations cover the safety profile. The description fills the remaining gaps — workflow sequencing to confirm_and_apply, partial-update behavior, and type-based rejection — so an agent can call this correctly without further inference.

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?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents each field. The description adds a valuable cross-parameter rule — that only non-empty/non-default values are transmitted — which explains the default-suppression pattern shared by all 13 params and cannot be inferred from any single field description. The enumerated change categories add minor confirmation but little new syntax.

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 ('Draft a partial UPDATE of an existing ConversionAction') and immediately qualifies scope with 'partial' and 'existing', which cleanly separates it from the sibling draft_create_conversion_action and draft_remove_conversion_action. The preview-only nature is front-loaded in the first line.

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?

The description establishes the draft-then-apply workflow and names confirm_and_apply as the terminal step, which effectively routes the agent to the correct follow-up tool. It also enumerates the mutation categories it handles (rename, demote Primary, value, call-duration, attribution), giving clear usage context. It stops short of explicit when-not-to-use guidance versus the create/remove siblings, so not a full 5.

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