---
title: "Change a conversion action"
method: POST
path: "/api/v1/tools/google_update_conversion_action/execute"
tags: ["Google Ads"]
---

# Change a conversion action

`POST /api/v1/tools/google_update_conversion_action/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/google_update_conversion_action/execute`
- Auth: HTTP bearer

Changes one conversion action: its status, category, counting type, default value, click-through window, or whether it counts towards the Conversions column.
Use when: the user knows what the setting should be and why. Marking an action secondary, for example, is the correct fix when a low-value goal is dragging Smart Bidding around.
Do not use when: you are not sure what the action currently tracks. Read google_get_conversion_action_performance first and show the user the current settings.
Every conversion-based campaign in the account bids against the primary actions, so a change here reaches far beyond one campaign. Counting-type and category changes are not retroactive: historical conversions keep their old shape, which makes before/after comparisons misleading for the following weeks.
The preview shows each field before and after; read-back confirms what Google stored.
If you are unsure which account, campaign or period the user means, ask them — do not guess ids or dates.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `customer_id` string: Google Ads customer id (10 digits, dashes optional). Omit to use the primary account; list_connected_accounts shows the valid ids.
    - `conversion_action_id` string, required: From google_list_conversion_actions.
    - `status` 'ENABLED' | 'PAUSED': Pausing a conversion action stops it recording anything new.
    - `category` 'DEFAULT' | 'PURCHASE' | 'LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'SIGNUP' | 'CONTACT' | 'PHONE_CALL_LEAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'DOWNLOAD' | 'PAGE_VIEW' | 'ENGAGEMENT' | 'OUTBOUND_CLICK' | 'QUALIFIED_LEAD': What kind of conversion this is.
    - `counting_type` 'ONE_PER_CLICK' | 'MANY_PER_CLICK': ONE_PER_CLICK counts one conversion per ad click (leads); MANY_PER_CLICK counts every one (sales).
    - `default_value` number: Default value per conversion, a decimal in the conversion action's own default currency (google_get_conversion_action_performance shows it; usually the account currency).
    - `always_use_default_value` boolean: Use the default value even when the tag sends its own value.
    - `click_lookback_days` integer: Click-through conversion window in days (1–90).
    - `counts_towards_conversions` boolean: Whether this action feeds the Conversions column Smart Bidding optimises against (primary) or is observation only (secondary).
    - `idempotency_key` string: Optional caller-supplied key; identical keys never execute twice.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
