# Adform Delivery Health

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-adform-agentic-skills-adform-delivery-health`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [adform](https://agentstack.voostack.com/s/adform)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [adform](https://github.com/adform)
- **Source:** https://github.com/adform/agentic-skills/tree/main/dist/generic/adform-delivery-health
- **Website:** https://site.adform.com

## Install

```sh
agentstack add skill-adform-agentic-skills-adform-delivery-health
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Adform delivery health

Why is this RTB line item not serving? Runs Adform's structured health checks — schedule,
pricing, budget, banner assignment, creative audit, advertiser vertical — and rolls them up to
Ok, Warning, or Critical. Read-only.

## Connection & tooling

Runs on the Adform GraphQL MCP. Use `graphql_execute` to run queries. Use `graphql_search` or
`graphql_introspect` to explore nested indication types. Keep calls sequential (~1–2s apart).

The `id` parameter requires the RTB setup ID (returned as `id` from `rtbLineItems(orderIds:)`).
This is distinct from the placement ID visible in some platform URLs.

## Data Availability

This skill covers real-time delivery indicators for active line items and campaigns only.

---

## Delivery health query

```graphql
{
  rtbLineItemDeliveryHealth(id: "99999") {
    status
    updatedAt
    indications {
      schedule { status }
      pricing { status }
      budget { status }
      bannerAssigned { status }
      tagCreativeAudit { status }
      advertiserIndustryVertical { status }
    }
  }
}
```

Each indication returns `Ok`, `Warning`, or `Critical`. Use `graphql_introspect` on the
specific indication type to retrieve additional detail fields such as `reason`.

---

## Supplementary: bid reason breakdown via mcpStats

When the `pricing` check returns `Warning` or `Critical`, use `mcpStats` with
the `bidReason` dimension to see the specific no-bid reasons causing lost
auctions. This gives the trader exact signal on whether the loss is price-based,
targeting-based, creative-audit-based, or budget-based.

Validated query:

```graphql
{
  mcpStats {
    totalRowCount
    totals
    columns {
      dimensions { bidReason { name } }
      metrics {
        rtbBids
        lostBids
        bidReasonCount
        impressions
        rtbWinRate
      }
    }
    rows(
      filter: {
        date: { from: "2026-06-01", to: "2026-06-30" }
        advertiser: { ids: ["2133936"] }
      }
      paging: { offset: 0, limit: 50 }
      sort: [{ column: 0, direction: desc }]
    )
  }
}
```

Scope the `advertiser` filter (or add `lineItem: { ids: [...] }`) to narrow to
the specific entity under investigation. The `bidReason.name` column will return
the platform's reason label for each no-bid category (e.g. price floor, creative
audit, targeting mismatch). Add this table to the delivery health summary when
pricing or budget is flagged.

---

## Reading the checks

- `bannerAssigned` — no eligible creative assigned to the line item; cannot serve until a
  creative is attached
- `tagCreativeAudit` — creatives not yet approved for the targeted inventory sources
- `pricing` — bid or CPM too low to win auctions, or pricing model misconfigured; size a fix
  with adform-bid-landscape
- `budget` — budget exhausted or a budget configuration issue
- `schedule` — flight has ended, not yet started, or has a gap covering the current time
- `advertiserIndustryVertical` — sensitive-vertical restriction blocking certain inventory

---

## Presenting

Lead with the rolled-up status, then the specific failing check and a concrete recommended
action for the trader to apply — for example "assign an approved creative", "raise CPM to
approximately €X", or "the flight ended on DATE — extend the end date". This skill never
changes anything.

If the line item is serving but pacing slowly rather than blocked entirely, use
adform-pacing-check instead.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [adform](https://github.com/adform)
- **Source:** [adform/agentic-skills](https://github.com/adform/agentic-skills)
- **License:** MIT
- **Homepage:** https://site.adform.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-adform-agentic-skills-adform-delivery-health
- Seller: https://agentstack.voostack.com/s/adform
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
