Install
$ agentstack add skill-adform-agentic-skills-adform-line-items ✓ 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 line items and wiring
Inspect RTB and direct line items — config, inventory and deal wiring, audience targeting, delivery, creatives, media search, and tag creative audit. Read-only.
Connection & tooling
Runs on the Adform GraphQL MCP. Use graphql_execute(query, variables) to run and graphql_validate to check a query first. Always validate before executing. The queries below are illustrative examples — if a field or input shape isn't shown, or a query fails validation, discover the current schema with graphql_search (lighter, preferred) and fall back to graphql_introspect one call at a time with ≥2s between calls for complex input types, enum values, or union/interface resolution.
RTB line items
List RTB line items
{
rtbLineItems(
orderIds: ["67890"]
offset: 0
limit: 20
) {
lineItems { id name environments orderId campaignId paused deleted }
totalCount
}
}
Get RTB line item — core config
{ rtbLineItem(id: "99999") { id name environments orderId campaignId paused deleted } }
The id used in rtbLineItem(id:), rtbLineItemDeliveryHealth(id:), and rtbLineItemDeliveryIndications(id:) is the RTB setup ID returned by rtbLineItems(), not the placement ID.
For inventory wiring, targeting rules, budget flights, pricing, and impression capping, use graphql_introspect on the relevant nested types before selecting those fields.
Get RTB line item delivery indications
{
rtbLineItemDeliveryIndications(id: "99999") {
status goalType
effectiveFlightTotalGoal effectiveFlightCurrentDelivery
effectiveFlightProjectedDelivery effectiveFlightDeviationPercentage
effectiveFlightTotalCost effectiveFlightDailyCost
effectiveBudgetFlightStartDate effectiveBudgetFlightEndDate
}
}
Get RTB line item daily delivery — time-series (max 30 days)
{
rtbLineItemDailyDeliveryIndications(
ids: ["99999"]
from: "2026-05-13"
until: "2026-06-12"
) {
id deliveryDate
deliveryIndications { effectiveFlightDailyCost effectiveFlightDeviationPercentage status }
}
}
Get RTB line item delivery health — root-cause checks
{
rtbLineItemDeliveryHealth(id: "99999") {
status updatedAt
indications {
schedule { status }
pricing { status }
budget { status }
bannerAssigned { status }
tagCreativeAudit { status }
advertiserIndustryVertical { status }
}
}
}
Get RTB line item inventory — paginated
{
rtbLineItemInventory(id: "99999", pagination: { offset: 0, limit: 50 }) {
inventorySources { id name }
totalCount
}
}
Direct line items
List direct line items by order
{
directLineItems(
orderId: "12345"
pagination: { offset: 0, limit: 50 }
) {
directLineItems { id name status }
totalCount
}
}
Use graphql_introspect on DirectLineItem to discover available fields including pricing, volume, periods, and media UUID.
Get direct line item
{ directLineItem(id: "67890") { id name status } }
Get direct line item delivery indications
{
directLineItemDeliveryIndications(id: "67890") {
status
}
}
Media and publisher search
Resolve mediaUuid from direct line items to publisher names:
{
medias(
search: { uuids: ["uuid-1", "uuid-2"] }
pagination: { offset: 0, limit: 50 }
) {
medias { uuid id name active }
totalCount
}
}
Creatives and ads
{
adsByCampaignId(
campaignId: "3993873"
pagination: { offset: 0, limit: 50 }
) {
ads {
id { uuid id }
name batch adType commercialType
size { width height }
publishStatus active deleted
}
totalCount
}
}
Tag creative audit by exchange
tagId is the tag entity ID from the tags list, not the ad ID. Returns SSP approval status per inventory source.
{
tagCreativeAuditInventorySources(
tagId: "85543973"
pagination: { offset: 0, limit: 50 }
) {
totalCount
inventorySources { id name status message }
}
}
Status values: notSent, inProgress, approved, rejected, notSupported.
Common patterns
- Line-item drill-down: list RTB line items by order → get RTB line item for full config
- Direct plan review: list direct line items → search media to resolve publisher names
- Creative audit: list campaign tags (adform-tracking-tags) → tag creative audit per tag
Presenting
Show line items in a table with key fields. For targeting, render rules as structured bullet lists. For direct line items, include financial fields with currency.
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.