---
title: "Set the business name asset"
method: POST
path: "/api/v1/tools/google_set_business_name/execute"
tags: ["Google Ads"]
---

# Set the business name asset

`POST /api/v1/tools/google_set_business_name/execute`

## Request

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

Creates a text asset holding the business name and links it as the BUSINESS_NAME asset of a campaign (or of the account).
Use when: you are building a Performance Max campaign, or a campaign is missing its business name.
Do not use when: the campaign already has one — Google allows a single business name per campaign and a second link is rejected. Check google_list_assets first.
A business name is linked to a campaign or to the whole account; Google has no ad-group-level business name, so passing ad_group_id is refused with that explanation instead of failing at Google.
Google requires advertiser verification on the account before a business name asset can be used; without it the call comes back CUSTOMER_NOT_VERIFIED. That is the account's state, not the arguments: tell the user to finish verification in Google Ads and do not retry with different text.
The name is 25 characters or fewer and should be the business as customers know it, not a slogan. An identical name already linked at the same level is skipped.
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.
    - `campaign_id` string: Attach at campaign level. Leave out to attach to the whole account.
    - `ad_group_id` string: Not usable for a business name: Google links one only to a campaign or to the whole account. Leave it out.
    - `business_name` string, required: The business name as customers know it, 25 characters or fewer (Chinese, Japanese and Korean characters count as 2).
    - `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)
