# Adform Deal Health Check

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-adform-agentic-skills-adform-deal-health-check`
- **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-deal-health-check
- **Website:** https://site.adform.com

## Install

```sh
agentstack add skill-adform-agentic-skills-adform-deal-health-check
```

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

## About

# Adform deal health check

Retrieves deals attached to a campaign or advertiser, pulls recent delivery metrics, and surfaces
deals with low or zero delivery alongside likely causes. Read-only.

## Connection & tooling

Runs on the Adform GraphQL MCP. Use `graphql_execute` to run queries. Use `graphql_search` to
look up field names. Keep calls sequential (~1–2s apart).

---

## Step 1 — Find deals

Search deals by advertiser:

```graphql
{
  buyerDealListItems(
    filters: [{ fieldName: "buyerDeal.searchPhrase", operation: contains, values: [""] }]
    pagination: { offset: 0, limit: 50 }
  ) {
    buyerDeals {
      id dealId name type price currencyCode status startDate endDate
      inventorySource { id name }
      healthIndications { status }
      deliveryIndications {
        yesterday { transaction { bids winRate trackedAds clicks ctr ecpm } }
        last7Days { transaction { bids winRate trackedAds clicks ctr ecpm } }
      }
      assignedToLineItemsCount
    }
    totalCount
  }
}
```

## Step 2 — Check past traffic per deal

```graphql
{
  inventoryMarketplaceDealPastTraffic(
    deals: [{ inventoryId: 42, dealId: "12345" }]
  ) {
    dealId
    trafficCounts { cookies requests }
  }
}
```

## Step 3 — Deal group context (if applicable)

```graphql
{ buyerDealGroup(id: "12345") { id name status dealIds } }
```

## Step 4 — Confirm deal performance via mcpStats

After identifying deals with low delivery in Step 1, pull actual performance
stats per deal ID from mcpStats to get CTR, eCPM, and win rate as reported
metrics (rather than delivery indications). Validated query:

```graphql
{
  mcpStats {
    totalRowCount
    totals
    columns {
      dimensions { rtbDeal { id } }
      metrics {
        impressions
        clicks
        cost
        ecpm
        rtbBids
        rtbWinRate
        rtbMediaCost
      }
    }
    rows(
      filter: {
        date: { from: "2026-06-01", to: "2026-06-30" }
        advertiser: { ids: ["2133936"] }
      }
      paging: { offset: 0, limit: 50 }
      sort: [{ column: 1, direction: desc }]
    )
  }
}
```

Cross-reference the `rtbDeal.id` values in the result against the deal IDs from
Step 1. A deal present in Step 1 but absent from mcpStats rows (or with zero
impressions after metric post-filtering) confirms zero delivery. Use
`rtbWinRate` to distinguish a pricing problem (low win rate, non-zero bids) from
a supply problem (zero bids).

---

## Reading the results

For each deal, check:
- `deliveryIndications.yesterday.transaction.trackedAds` — impressions yesterday; zero on an
  active deal signals a problem
- `healthIndications.status` — platform health flag
- `deliveryIndications.yesterday.transaction.winRate` — low win rate alongside zero impressions
  suggests pricing is below market; size a fix with adform-bid-landscape
- `assignedToLineItemsCount` — a deal with zero assignments is not yet wired to any line item;
  `deliveryIndications` and `healthIndications` will be null in this case
- Use Step 4 (mcpStats) to confirm zero delivery with actual reported metrics
  rather than relying on delivery indications alone — the two sources together
  provide higher confidence in the diagnosis

---

## Presenting

Lead with deals showing zero or near-zero delivery alongside their status and floor price. Then
show a full table of all deals with impressions, win rate %, and eCPM. Note the likely cause
for each flagged deal and a recommended next step — re-price via adform-bid-landscape, confirm
wiring via adform-line-items, or check supply via adform-past-traffic.

## 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-deal-health-check
- 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%.
