AAMP component · reference implementation

agentic-direct

agentic-direct is an AAMP reference implementation repository from IAB Tech Lab. A2A and MCP wrapper over IAB OpenDirect 2.1, with a demo executor and browser client.

Source: IABTechLab/agentic-direct

agentic-direct on 12 August 2026: version, kind, substance grade and hub listing. Substance is an editorial grade rather than a measurement, on the ranking test.
PropertyValue
Versionuntagged (915bda9)
Commit 915bda98
Kindreference implementation
Substancepartial
Listed in the hub READMEYes

What this repository defines

40 object definitions. One real artifact inside a demo: opendirect.json, a manifest of 40 OpenDirect, AdCOM and OpenRTB object definitions. Its README calls that file an OpenAPI spec twice, the file has no openapi key, and the MCP server it feeds answers every tool call with generateMockResponse.

The objects, field by field

These come from the schema and interface files this repository checks in, under the names the source files use.

OpenDirect.Account

Defines a buyer-advertiser relationship for managing orders

OpenDirect.Account fields — 5 fields, 3 required
FieldTypeRequiredDescription
idstringSystem-generated opaque ID
advertiseridstringrequiredOrganization ID acting as advertiser
buyeridstringrequiredOrganization ID acting as buyer/agency
namestringrequiredAccount display name
extobjectProvider-defined extension data

OpenDirect.Order

Specifies campaign plan with dates, budget, and currency for all line items

OpenDirect.Order fields — 15 fields, 4 required
FieldTypeRequiredDescription
idstringSystem-generated opaque ID
namestringrequiredOrder display name
accountidstringrequiredAccount ID owning the order
publisheridstringrequiredPublisher ID providing this order
brandstringBrand name being advertised
catarrayIAB Tech Lab Content Taxonomy categories
currencystringrequiredISO-4217 currency code
budgetnumberEstimated budget (directional)
orderstatusstring
packageonlybooleanWhether inventory is only available as package
preferredbillingmethodstring
startdatestringOrder start date (ISO 8601)
enddatestringOrder end date (ISO 8601)
orderexpirydatestringDate when reserved inventory expires
contactsarray

OpenDirect.Line

Line items providing details about products being booked

OpenDirect.Line fields — 19 fields, 7 required
FieldTypeRequiredDescription
idstring
namestringrequired
orderidstringrequired
productidstringrequired
bookingstatusstring
statechangereasonstring
startdatestringrequired
enddatestringrequired
ratetypestringrequired
ratenumberPrice per unit (determined at save)
quantityintegerrequiredRequested quantity (impressions for CPM)
costnumberProjected cost based on quantity and rate
commentstring
frequencycountintegerMax times user sees ads in interval
frequencyintervalstring
reservedexpirydatestring
targetingobjectUser segment targeting
pmpobject
extobject

OpenDirect.Product

Product catalog item from ad placement to Run of Network

OpenDirect.Product fields — 31 fields, 7 required
FieldTypeRequiredDescription
idstringrequired
publisheridstringrequired
namestringrequired
descriptionstring
activedatestring
allownocreativebooleanAllow booking without creative assigned
currencystringrequired
basepricenumberrequiredBase retail price (not rate card)
deliverytypestring
estdailyavailsstringEstimated daily impression range
domainstringDomain name
iconstringURL to 150x150 thumbnail icon (max 10KB)
languagesarrayISO-639-1 language codes
leadtimeintegerDays from today that line can begin
minspendnumberMinimum order value
minflightintegerMinimum booking days
maxflightintegerMaximum booking days
producttagsarraySearch tags
ratetypestringrequired
adunitobjectrequired
alladunitsintegerWhether all child ad units served together
retirementdatestring
tzstringProduct timezone
urlstringURL to creative requirements spec
regsobject
deviceobject
geoobject
dataobject
sourceobject
pmpobject
extobject

OpenDirect.Creative

Ad creative to be displayed for order lines

OpenDirect.Creative fields — 9 fields, 2 required
FieldTypeRequiredDescription
idstring
accountidstringrequired
namestring
languagestring
creativeassetobjectrequired
clickurlstring
iqgmediaratingintegerIQG 2.1 media rating
creativeapprovalsarray
extobject

OpenDirect.Assignment

Associates a creative with an order line

OpenDirect.Assignment fields — 6 fields, 2 required
FieldTypeRequiredDescription
idstring
creativeidstringrequired
placementidstringrequired
statusstring
weightintegerRotation weight (must sum to 100)
extobject

OpenDirect.Organization

Represents an advertiser, agency, or publisher

OpenDirect.Organization fields — 11 fields, 2 required
FieldTypeRequiredDescription
idstring
addressobject
contactsarrayrequired
disapprovalreasonstring
faxstring
catarray
namestringrequired
phonestring
statusstring
urlstring
extobject

OpenDirect.Address

OpenDirect.Address fields — 6 fields, 3 required
FieldTypeRequiredDescription
citystringrequired
countrystringrequiredISO-3166-1-alpha-2
addressline1stringrequired
addressline2string
postalcodestring
statestring

OpenDirect.Contact

OpenDirect.Contact fields — 9 fields, 3 required
FieldTypeRequiredDescription
addressobject
emailstring
honorificstring
faxstring
firstnamestringrequired
lastnamestringrequired
phonestring
titlestring
typestringrequired

OpenDirect.ChangeRequest

Request to modify an existing order

OpenDirect.ChangeRequest fields — 9 fields, 3 required
FieldTypeRequiredDescription
idstring
accountidstringrequired
commentsstring
contactsarray
orderidstringrequired
requesteridstringrequiredOrganization ID of requester
statusstring
webhookstringURI called on approval/rejection
extobject

OpenDirect.Message

Communication between buyer and seller

OpenDirect.Message fields — 11 fields, 3 required
FieldTypeRequiredDescription
idstring
senderobject
recipientobject
messagedatestringrequired
statusstringrequired
orderidstringrequired
lineidsarray
changerequestidstring
messagestring
replytomessageidstring
replywebhookstring

OpenDirect.Placement

Ad unit specifications for a line item

OpenDirect.Placement fields — 4 fields, 2 required
FieldTypeRequiredDescription
idstring
lineidstringrequired
adunitidstringrequired
creativespecobjectOverride ad unit specs if provided

OpenDirect.AdUnit

Contains AdCOM Ad Specification

OpenDirect.AdUnit fields — 3 fields, 2 required
FieldTypeRequiredDescription
idstringrequired
namestring
creativespecobjectrequired

AdCOM.CreativeSpec

Desired characteristics of creatives

AdCOM.CreativeSpec fields — 7 fields, 0 required
FieldTypeRequiredDescription
battrarrayBlocked creative attributes
videoobject
displayobject
audioobject
dspmgrstringAd mediation partner name
dspmgrverstring
clktypeintegerClick type (List 7)

AdCOM.CreativeResp

Creative instance with rendering information

AdCOM.CreativeResp fields — 5 fields, 0 required
FieldTypeRequiredDescription
displayobject
videoobject
audioobject
iurlstringRepresentative image URL for ad quality checking
attrarrayCreative attributes (List 5)

AdCOM.VideoSpec

AdCOM.VideoSpec fields — 18 fields, 0 required
FieldTypeRequiredDescription
subtypearray
mindurinteger
maxdurinteger
protocolsarray
winteger
hinteger
startdelayinteger
placementinteger
skipmininteger
skipafterinteger
minbitrateinteger
maxbitrateinteger
boxingallowedinteger
playbackmethodarray
deliveryarray
posinteger
companiontypearray
apisarray

AdCOM.VideoResp

AdCOM.VideoResp fields — 6 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
qagmediaratinginteger
admstringCreative markup
curlstringCreative markup URL
apiinteger
mimesarray

AdCOM.DisplaySpec

AdCOM.DisplaySpec fields — 6 fields, 0 required
FieldTypeRequiredDescription
subtypearray
bannerformatobject
nativeformatobject
ampformatobject
instlinteger1=interstitial, 0=not
apisarray

AdCOM.DisplayResp

AdCOM.DisplayResp fields — 9 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
admstring
curlstring
winteger
hinteger
wratiointeger
hratiointeger
apiinteger
mimesarray

AdCOM.BannerSpec

AdCOM.BannerSpec fields — 11 fields, 0 required
FieldTypeRequiredDescription
wintegerWidth in DIPS
hintegerHeight in DIPS
wratiointeger
hratiointeger
sizedintegerRatio-based size (List 8)
btypearrayBlocked banner types
battrarray
posinteger
opframeintegerTop frame vs iframe
expdirarrayExpandable directions
iframebusterarray

AdCOM.AudioSpec

AdCOM.AudioSpec fields — 11 fields, 0 required
FieldTypeRequiredDescription
mindurationinteger
maxdurationinteger
protocolsarray
startdelayinteger
minbitrateinteger
maxbitrateinteger
deliveryarray
companiontypearray
maxseqinteger
nvolintegerVolume normalization mode
apisarray

AdCOM.AudioResp

AdCOM.AudioResp fields — 5 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
admstring
curlstring
companionadarray
apiinteger

AdCOM.NativeSpec

AdCOM.NativeSpec fields — 2 fields, 1 required
FieldTypeRequiredDescription
requeststringrequiredNative Ad Specification request payload
verstringDynamic Native Ads API version

AdCOM.AMPSpec

AdCOM.AMPSpec fields — 2 fields, 0 required
FieldTypeRequiredDescription
rendintegerAMP ad requirements: 1=unknown, 2=not allowed, 3=allowed no early render, 4=allowed with early render, 5=required
verstring

Those are the first 24, in source order. The remaining 16 definitions in the repository are AdCOM.Site, AdCOM.App, AdCOM.Publisher, AdCOM.Content, AdCOM.Producer, AdCOM.Device, AdCOM.Geo, AdCOM.User, AdCOM.Data, AdCOM.Segment, AdCOM.AdSpec, AdCOM.AdResp, OpenRTB.Deal, OpenRTB.PMP, OpenRTB.Regs, OpenRTB.Source .

Related