ads

Call ads.create_conversion_action

Create the measurement a Google Ads campaign optimises toward — 'set up a conversion action', 'add a conversion goal for Performance Max'. Create a Google Ads conversion action for this brand — the measurement a campaign optimises toward — and report what Google read back afterwards. It spends nothing: it creates no budget and attaches to no campaign. A Performance Max campaign needs one before it can bid. Reuse the same idempotency_key on a retry so a retry cannot create a second one. Not for choosing which Google Analytics conversions the brand reports — that is connections.set_conversion_events. Over the API it answers in two calls: without confirmation_id it proposes — says what would happen, returns a confirmation_id and changes, spends and sends nothing; the same arguments again with that confirmation_id, on a member's own API key, do it.

Every result names the workspace it ran in. Say which workspace the answer is about. When the account has more than one workspace and none is selected, this tool refuses with workspace_ambiguous and lists the choices — offer them, never pick one.

post/api/v1/tools/ads.create_conversion_action

Request

  • Base URL: https://app.goosybear.ai
  • URL: https://app.goosybear.ai/api/v1/tools/ads.create_conversion_action
  • Auth: HTTP bearer

Headers

x-request-idstring

Your own id for this request, echoed back and recorded on the audit trail. 1–128 characters from A–Z a–z 0–9 . _ : -, starting with a letter or digit; anything else is replaced by a generated id.

Idempotency-Keystring required

Your key for this write: send the same key when you retry and the first result comes back instead of a second action. Keys are honoured for at least 24 hours. 1–200 visible ASCII characters. Replaces the idempotency_key body field, which still works until 2026-12-31; this action needs a key on one of the two, and the header is the one to send.

Request body

namestring required

What this conversion is called.

shape'website' | 'website_call' | 'ad_call' required

What is being measured: a website action, a call from the website, or a call placed straight from the ad.

categorystring nullable

Google's conversion category, when the operator names one.

phone_call_duration_secondsinteger nullable

How long a call must last to count. REQUIRED on website_call and ad_call — without it every dialled-and-hung-up call is recorded as a lead. Google rejects it on a website conversion.

default_value_usd_centsinteger nullable

What one conversion is worth, in cents.

primary_for_goalboolean

Whether this counts toward the account's main conversions goal, which is what makes it usable as a bidding target.

idempotency_keystring

Deprecated on REST: send the Idempotency-Key header instead. Still accepted until 2026-12-31; if both are sent they must match.

confirmation_idstring uuid

Omit to propose: the first call says what would happen, returns a confirmation_id and changes nothing. To go ahead, send the same arguments again with that confirmation_id, on a member's own API key; a service account's key can propose but never confirm.

workspacestring

Which workspace to run in — its slug. Omit to use your default. With more than one reachable workspace and no default, the call is refused and the choices are listed.

Response

The call was admitted and dispatched. ok says whether the tool succeeded — a refusal the tool itself produced is still a 200, exactly as it is a successful JSON-RPC result over MCP.

OR

Changes

No recorded changes to this operation across all 4 revisions of this API.