Install
$ agentstack add skill-adform-agentic-skills-adform-delivery-health ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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
{
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:
{
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 sourcespricing— 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 issueschedule— flight has ended, not yet started, or has a gap covering the current timeadvertiserIndustryVertical— 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
- Source: adform/agentic-skills
- License: MIT
- Homepage: https://site.adform.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.