Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview
On this page

line_item_readiness

Check whether AdCrunch can build a Line Item now, and if it cannot, why and what to do.

Ask the agent to check a Line Item before it builds it on Meta. The Meta tools do not read your Campaign Plan, so this check is how the agent finds a problem before it spends.

“Can you build the Meta Line Item of the spring sale Campaign Plan now?”

The agent calls line_item_readiness. When the Line Item is ready, the answer gives the dates that apply, the budget, and whether the budget goes to Meta as a lifetime total or as a daily rate. When it is not ready, the answer names one reason and gives the fix: for example, an ad account in a different currency. AdCrunch never converts a currency.

When a person must validate the Line Item, the agent gives you the link to the page of the Campaign Plan in the AdCrunch console. The check is advice: the Meta tools do not read it, so AdCrunch does not refuse to build a Line Item that is not ready.

Plan a campaign walks the whole job.

Reference

Check whether AdCrunch can build a Line Item now, and if it cannot, why. Call it before you build a Line Item with a provider write tool, such as meta_create_campaign. It reads, it changes nothing, and it calls no provider. readiness.status is ready, or it names one reason: a person has not validated the Line Item in the AdCrunch console, AdCrunch cannot write to the channel, the Line Item names no ad account, the ad account is not connected, the ad account belongs to another provider, AdCrunch does not know the currency of the ad account, the currencies differ, or the dates are missing or in the wrong order. fix tells you what to do about the reason. consoleUrl is the page of the Campaign Plan: give it to the user when a person must act there. When the Line Item is ready, the answer gives the dates that apply, and it tells you whether the budget goes to the provider as a lifetime total or as a daily rate. This answer is advice: the provider write tools do not read it. AdCrunch never converts a currency.

Input

Argument Type Required Description
campaign_plan_name string yes The Campaign Plan slug — its stable per-organization handle.
line_item_id string yes The Line Item id, as returned by campaign_plan_get.

Output

A successful call returns this object in structuredContent.

Field Type Always present Description
consoleUrl string yes The page of the Campaign Plan in the AdCrunch console. A person validates a Line Item and approves a Campaign Plan there.
fix string or null yes What to do so that the Line Item becomes ready, in one sentence. null when readiness.status is ready.
readiness object yes Whether AdCrunch can build the Line Item now, and if it cannot, why. This is advice: the provider write tools do not read it.
readiness.status ready or not_validated or channel_not_executable or no_advertiser or advertiser_not_owned or provider_mismatch or account_currency_unknown or currency_mismatch or no_window or window_inverted yes ready: AdCrunch can build the Line Item now. not_validated: A person has not validated the Line Item in the AdCrunch console. channel_not_executable: AdCrunch cannot write to this channel today. no_advertiser: The Line Item names no ad account. advertiser_not_owned: The ad account is not connected to this organization. provider_mismatch: The ad account belongs to a different provider than the channel. account_currency_unknown: AdCrunch does not know the currency of the ad account. currency_mismatch: The ad account uses a different currency than the Campaign Plan. AdCrunch never converts a currency. no_window: The Line Item and the Campaign Plan give no date at all. window_inverted: The start that applies falls after the end that applies. Each row is ordered on its own, and only the pair shows this.
readiness.advertiserId string yes Only when status is ready. The ad account, acc_….
readiness.budget number or null yes Only when status is ready. The budget of the Line Item, in whole units of currency, or null when it has none.
readiness.currency string yes Only when status is ready. The currency of the Campaign Plan. It is also the currency of the ad account.
readiness.endDate string or null yes Only when status is ready. The end that applies: the end of the Line Item, else the end of the Campaign Plan. null when neither has one.
readiness.provider one of meta, gads, tiktok, x, openai, snapchat, dv360 yes Only when status is ready. The provider that sells the channel.
readiness.startDate string or null yes Only when status is ready. The start that applies: the start of the Line Item, else the start of the Campaign Plan. null when neither has one.
readiness.unit one of total, daily yes Only when status is ready. How the budget goes to the provider: total as a lifetime budget, daily as a daily budget.
readiness.channel one of meta, tiktok, snapchat, google_search, google_pmax, google_display, youtube, programmatic_display, linkedin, x yes Only when status is channel_not_executable. The channel of the Line Item.
readiness.provider one of meta, gads, tiktok, x, openai, snapchat, dv360 or null yes Only when status is channel_not_executable. The provider that sells the channel, or null when no integration of AdCrunch sells it.
readiness.actual one of meta, gads, tiktok, x, openai, snapchat, dv360 yes Only when status is provider_mismatch. The provider of the ad account.
readiness.expected one of meta, gads, tiktok, x, openai, snapchat, dv360 yes Only when status is provider_mismatch. The provider that sells the channel.
readiness.advertiserId string yes Only when status is account_currency_unknown. The ad account, acc_….
readiness.accountCurrency string yes Only when status is currency_mismatch. The currency of the ad account.
readiness.planCurrency string yes Only when status is currency_mismatch. The currency of the Campaign Plan.
readiness.endDate string yes Only when status is window_inverted. The end that applies.
readiness.startDate string yes Only when status is window_inverted. The start that applies.

Failure codes

A failed call has isError set, and structuredContent.error holds one of these codes. Errors describes the shape of a failed call.

  • not_found
  • organization_unentitled
  • forbidden
  • invalid_request
  • internal_error

Scope

The token must hold campaign_plan:read. Auth & scopes lists each scope.

Annotations

A client reads these hints. A hint that the tool does not declare has the default value of the MCP specification.

  • Read-only. The tool changes nothing.
  • Closed world. The tool reads and writes the data of AdCrunch only.

Example

The arguments:

{
  "campaign_plan_name": "spring-sale",
  "line_item_id": "lni_2d9e77"
}

The result, in structuredContent:

{
  "consoleUrl": "https://console.adcrunch.dev/campaign-plans/spring-sale",
  "fix": null,
  "readiness": {
    "advertiserId": "acc_1203456789012345",
    "budget": 2500,
    "currency": "EUR",
    "endDate": "2026-05-31",
    "provider": "meta",
    "startDate": "2026-03-01",
    "status": "ready",
    "unit": "total"
  }
}

Was this page helpful?