---
title: "Check assets against Google rules before uploading"
method: POST
path: "/api/v1/tools/google_validate_and_prepare_assets/execute"
tags: ["Google Ads"]
---

# Check assets against Google rules before uploading

`POST /api/v1/tools/google_validate_and_prepare_assets/execute`

## Request

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

Checks assets against Google's published rules without writing anything: image URLs are downloaded and measured (format, file size, dimensions, aspect ratio for the slot), text is length-checked, and every URL is checked for being a valid https address.
Use when: before google_add_image_assets or google_create_pmax_campaign, so the user learns about a wrong crop before a half-built campaign does.
Do not use when: you want per-asset performance (google_get_asset_performance) or the account's existing assets (google_list_assets).
This call is free, needs no connection to a campaign and changes nothing. It reports each asset as ok or with the exact reason it would be rejected.
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
    - `images` object[]: The image files to download and measure. Adako hosts no files: the platform downloads this URL itself, from its own servers and often hours later, so it must be a public link straight to the file — not a file on the computer, not a Drive, Dropbox or design-tool share page, not a link that expires or asks for a login. Call check_media first: it repairs the usual share links, checks the file against this platform, and says where to put a file that has no link yet.
      - `url` string, uri, required
      - `field_type` 'MARKETING_IMAGE' | 'SQUARE_MARKETING_IMAGE' | 'PORTRAIT_MARKETING_IMAGE' | 'LOGO' | 'LANDSCAPE_LOGO', required: Which slot you intend to use the image for.
    - `headlines` string[]: Headlines to length-check (30; each Chinese, Japanese or Korean character counts as 2).
    - `long_headlines` string[]: Performance Max long headlines to length-check (90).
    - `descriptions` string[]: Descriptions to length-check (90; the first one 60).
    - `business_name` string: Business name to length-check (25).
    - `final_url` string: Landing page URL to check.

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