Install
$ agentstack add skill-adform-agentic-skills-adform-campaign-management ✓ 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 campaign and order management
Inspect campaign and order configuration, RTB settings, labels, brand safety, delivery indications, daily trends, and projected delivery plans. 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).
Campaign queries
List campaigns
{
campaigns(
advertisers: "71883"
status: Active
offset: 0
limit: 20
) {
campaigns { id name status type subType advertiserId startDate endDate budget currency billingCode }
totalCount
}
}
Get campaign — full config
{ campaign(id: "3993873") { id name status type subType advertiserId startDate endDate budget currency } }
Get campaign RTB settings
{
campaignRtbSettings(id: "3993873") {
capping {
type
impressions
period { type duration }
viewability { type duration }
}
dsaTransparency { advertiserLegalName }
budget { budget amount goalType periodType pacingType }
}
}
Get campaign labels
{ campaignLabels(id: "3993873") { labelGroups { id name labels { id name } } } }
Get campaign brand safety
{ campaignBrandSafety(id: "3993873") { enabled providerId blockedCategories blockUncategorized } }
Get campaign delivery indications — current pacing snapshot
{
campaignDeliveryIndications(id: "3993873") {
status goalType
effectiveFlightTotalGoal effectiveFlightCurrentDelivery
effectiveFlightProjectedDelivery effectiveFlightDeviationPercentage
effectiveFlightTotalCost effectiveFlightDailyCost
effectiveBudgetFlightStartDate effectiveBudgetFlightEndDate
}
}
Get campaign daily delivery — time-series (max 30 days)
{
campaignDailyDeliveryIndications(
ids: ["3993873"]
from: "2026-05-13"
until: "2026-06-12"
) {
id deliveryDate
deliveryIndications {
effectiveFlightDailyCost
effectiveFlightDeviationPercentage
status
}
}
}
Order queries
List orders
{
orders(
campaignId: "3993873"
active: true
offset: 0
limit: 20
) {
orders { id name startDate endDate budget active }
totalCount
}
}
Get order
{ order(id: "67890") { id name startDate endDate budget campaignId active } }
Get order delivery indications
{
orderDeliveryIndications(id: "67890") {
status goalType
effectiveFlightTotalGoal effectiveFlightCurrentDelivery
effectiveFlightProjectedDelivery effectiveFlightDeviationPercentage
effectiveFlightTotalCost effectiveFlightDailyCost
effectiveBudgetFlightStartDate effectiveBudgetFlightEndDate
}
}
Get order daily delivery — time-series (max 30 days)
{
orderDailyDeliveryIndications(
ids: ["67890"]
from: "2026-05-13"
until: "2026-06-12"
) {
id deliveryDate
deliveryIndications { effectiveFlightDailyCost effectiveFlightDeviationPercentage status }
}
}
Get order delivery plan — forward projection
Use graphql_introspect on DeliveryPlanOrderSettingsInput to discover required fields before calling orderDeliveryPlan.
Common patterns
- Hierarchy navigation: list campaigns → list orders (
campaignId) → list line items
(see adform-line-items)
- Name enrichment: delivery queries return IDs — use
campaigns(advertisers:)or
adform-entity-browsing to map ID to name
- Delivery monitoring: use the delivery indications query for a point-in-time snapshot;
use the daily variant for trends over the last 30 days
Presenting
Lead with status and key config fields. For delivery, show goal vs current vs projected vs deviation %. For daily trends, present chronologically and call out drops or gaps. Always include the numeric entity ID.
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.