Skip to main content
POST
Call ads.google_settings

Authorizations

Authorization
string
header
required

An API key minted at Settings › API & MCP. Send it as Authorization: Bearer <key>. A key carries its holder's own permissions, resolved on every call — revoking a membership closes the key's reach immediately. Keep it in an environment variable (GOOSY_API_KEY), never in a committed file.

Headers

x-request-id
string

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.

Maximum string length: 128

Body

application/json
section
enum<string> | null

Which section to SAVE. Omit it to only read what is already set — reading changes nothing.

Available options:
bidding,
smart,
pmax
bidding
object

Required when section is bidding. ⚠️ A Performance Max campaign only runs on maximize_conversions or maximize_conversion_value; target_spend is search-only and is the default every unconfigured brand has.

smart
object

Required when section is smart. These are a REAL business's identity, phone number, landing page and ad copy — never invent any of them; ask the operator. Give the business name OR the Business Profile location, and the landing page URL OR use_ad_optimized_profile — one of each pair, not both.

pmax
object

Required when section is pmax. The three image lists take the ids Google gave each picture when it was uploaded to the ad account — never a URL and never image data.

confirmation_id
string<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.

workspace
string

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.

Minimum string length: 1

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.

The tool ran and answered.

ok
boolean
required
workspace
string
required

The slug of the workspace this call ran in.

working_in
object
required

Which workspace this call ran in, and how that was decided. Present on every workspace-scoped result.

state
string
Allowed value: "confirmation_required"
confirmation_id
string<uuid>
expires_in_seconds
integer
request_summary
string

What will happen, in one sentence, for a person to approve before confirming.

saved_section
string | null
bidding_kind
string | null
smart_ready
boolean
pmax_ready
boolean
smart_missing
string[]
pmax_missing
string[]