---
title: "What each LinkedIn objective permits"
method: POST
path: "/api/v1/tools/linkedin_explain_objectives/execute"
tags: ["LinkedIn Ads"]
---

# What each LinkedIn objective permits

`POST /api/v1/tools/linkedin_explain_objectives/execute`

## Request

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

Explains LinkedIn's campaign objectives: what each one optimises towards, which ad formats and cost types it allows, when a marketer should pick it, and whether it needs a conversion rule to work at all.
Use when: choosing an objective before creating a campaign, or explaining why a format the user asked for is not available. The objective is the single least reversible choice on a LinkedIn campaign — it cannot be changed after creation, so getting it right here saves rebuilding the campaign later.
Do not use it as a source of costs or benchmarks; it describes what the platform permits, not what anything will cost. Do not pick an objective for the user when their goal is ambiguous — show the two candidates and ask which outcome they are paying for.
Returns the matrix for one objective, or all of them. Costs nothing.
WEBSITE_CONVERSION only optimises once a conversion rule with real volume is attached — if the user has no tracking, say so and recommend WEBSITE_VISIT instead of setting them up to fail.
LEAD_GENERATION needs a Lead Gen Form on every ad, which this server cannot attach yet: its create tools refuse that objective, so a lead-gen campaign is built in Campaign Manager.
A campaign created without a bid uses LinkedIn's automated bidding for its objective and is billed CPM; a bid switches it to manual bidding on the cost type given. Text ads only bid manually.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object
    - `objective` 'BRAND_AWARENESS' | 'WEBSITE_VISIT' | 'ENGAGEMENT' | 'VIDEO_VIEW' | 'LEAD_GENERATION' | 'WEBSITE_CONVERSION' | 'JOB_APPLICANT': One objective to explain. Omit for the whole matrix.
    - `goal` string: The user's goal in their own words, echoed back with the recommendation.
    - `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)
