Install
$ agentstack add skill-adform-agentic-skills-adform-inventory-deals ✓ 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 inventory and deals
Explore marketplace inventory sources, browse and search deals and open auctions, inspect deal groups, and check past traffic. Read-only.
Connection & tooling
Runs on the Adform GraphQL MCP. Use graphql_execute to run queries. Use graphql_search to look up field names; use graphql_introspect for complex nested types. Keep calls sequential (~1–2s apart).
1. Browse marketplace deals
Always paginate. Do not request inventorySources in the same call as marketplaceDeals. The deal id is composite: {inventorySourceId}_{dealId}.
{
buyerDealListItems(
pagination: { offset: 0, limit: 50 }
) {
buyerDeals {
id dealId name type price currencyCode status startDate endDate
inventorySource { id name }
advertisers { totalCount allAdvertisers }
healthIndications { status }
assignedToLineItemsCount
}
totalCount
}
}
Search deals by keyword
{
buyerDealListItems(
filters: [{ fieldName: "buyerDeal.searchPhrase", operation: contains, values: ["fashion"] }]
pagination: { offset: 0, limit: 50 }
) {
buyerDeals {
id dealId name type price currencyCode status startDate endDate
inventorySource { id name }
healthIndications { status }
}
totalCount
}
}
2. Browse inventory sources
Use pagination only — do not pass filters or sortBy on this query.
{
inventoryMarketplaceListItems(
pagination: { offset: 0, limit: 100 }
) {
inventorySources { id name adExchange { id name } channels environments }
hasMoreItems totalCount
}
}
3. Search open auctions
Must provide advertiserId or campaignId. Do not pass a sort argument.
{
searchOpenAuctions(
advertiserId: "71883"
limit: 20
) {
results { id name inventorySourceId inventorySourceName country channel bannerTypes sizes }
next previous totalCount
}
}
4. Deal groups
List buyer deal groups
{
buyerDealGroups(
filters: { advertiserId: "71883" }
pagination: { offset: 0, limit: 20 }
) {
dealGroups { id name status dealIds }
totalCount
}
}
Get deal group detail
{ buyerDealGroup(id: "12345") { id name status dealIds } }
5. Past traffic
Domain past traffic
{
inventoryMarketplaceDomainPastTraffic(
domains: ["bild.de", "spiegel.de"]
) {
domain
trafficCounts { cookies requests }
}
}
Deal past traffic
{
inventoryMarketplaceDealPastTraffic(
deals: [{ inventoryId: 42, dealId: "12345" }]
) {
dealId
trafficCounts { cookies requests }
}
}
Inventory source past traffic
{
inventoryMarketplaceInventoryPastTraffic(inventoryIds: [42, 55]) {
inventoryId
trafficCounts { cookies requests }
}
}
Deal + line item past traffic
{
dealLineItemPastTraffic(inventorySourceId: "42", dealId: "12345", lineItemId: "99999") {
levels { key name group availableImpressions }
}
}
Common patterns
- Inventory exploration: browse inventory sources → search deals → check past traffic →
note deal IDs for line-item assignment
- Deal sizing: past traffic to validate volume before targeting
- Deal groups: list groups, then get detail to see which deal IDs are bundled
Presenting
Show deals in a table with name, type (private/preferred), inventory source, floor price, currency, and status. For past traffic, show cookies and requests per item and flag thin inventory where volume may not support the planned budget.
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.