---
title: "List Google Ads assets and where they are used"
method: POST
path: "/api/v1/tools/google_list_assets/execute"
tags: ["Google Ads"]
---

# List Google Ads assets and where they are used

`POST /api/v1/tools/google_list_assets/execute`

## Request

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

Lists the assets (extensions) that exist in the account and which campaigns or ad groups they are linked to. Assets live once in an account library and are then linked in one or more places, so the same sitelink can serve on several campaigns.
Use when: you need asset ids before linking, removing or building a Performance Max asset group, or the user asks what extensions are running.
Do not use when: the user wants ad copy (google_get_ad_creative) or per-asset performance labels (google_get_asset_performance).
Returns one row per asset with its type, content and the campaigns/ad groups it is linked to. Paging is by asset id: pass the returned next_after_asset_id as after_asset_id to get the next page.
Business names are stored as plain text assets, so asking for BUSINESS_NAME lists text assets; the link field type is what makes one a business name.
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
    - `customer_id` string: Google Ads customer id (10 digits, dashes optional). Omit to use the primary account; list_connected_accounts shows the valid ids.
    - `asset_types` string[]: Asset types to include. Defaults to every type listed here.
    - `campaign_id` string: Only show assets linked to this campaign (and account-level assets it inherits).
    - `limit` integer: Maximum assets per page (default 50).
    - `after_asset_id` string: Page cursor: the next_after_asset_id from the previous call.

## 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)
