---
title: "Rank LinkedIn creatives (ads) and flag fatigue"
method: POST
path: "/api/v1/tools/linkedin_analyze_creative_performance/execute"
tags: ["LinkedIn Ads"]
---

# Rank LinkedIn creatives (ads) and flag fatigue

`POST /api/v1/tools/linkedin_analyze_creative_performance/execute`

## Request

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

Ranks the creatives (ads in Campaign Manager) of one campaign (ad set) against each other on CTR and cost per lead, and flags the ones whose CTR fell sharply in the second half of the window — the signature of creative fatigue on LinkedIn's small, repeatedly-reached audiences.
Use when: deciding which ad to keep, which to refresh, and which to leave alone. It is the read to run before linkedin_pause_creative.
Do not act on a creative marked "too_early": under 1,000 impressions the numbers are noise, and pausing it destroys the test. Do not treat fatigue as a reason to cut spend — on LinkedIn it means the same people have seen the ad too often, and a new creative into the same audience is usually the fix.
Do not use it to compare campaigns; that is linkedin_get_campaign_performance.
Returns a verdict per creative (winner / steady / underperforming / fatiguing / too_early) with the number behind it, plus the campaign average it was judged against.
If every creative is "too_early", say the campaign needs more time and recommend nothing.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `ad_account_id` string: LinkedIn ad account id — the numeric id from Campaign Manager, as a string ("506699162"). Omit it to use the primary account; pass it when the user manages several.
    - `campaign_id` string, required: The campaign whose creatives to rank. LinkedIn ids are numeric strings; a full urn:li:… value is also accepted.
    - `date_range` 'today' | 'yesterday' | 'last_7_days' | 'last_14_days' | 'last_30_days' | 'this_month' | 'last_month': Preset window. The "last N days" ones end yesterday, so no partial day is mixed in. Either this or start_date + end_date, never both.
    - `start_date` string: First day, YYYY-MM-DD. Needs end_date.
    - `end_date` string: Last day, YYYY-MM-DD, inclusive. Needs start_date.
    - `limit` integer: Maximum rows to return (default 100).
    - `raw_data` boolean: Return compact JSON only (no markdown). Use when you will compute on the result.

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