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

Version
untagged (915bda9)
Commit
915bda98
Kind
reference implementation
Substance
partial
Listed in the hub README
Yes

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.

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 5 fields

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 15 fields

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 19 fields

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 31 fields

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 9 fields

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 6 fields

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 11 fields

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 6 fields
OpenDirect.Address fields — 6 fields, 3 required
FieldTypeRequiredDescription
citystringrequired
countrystringrequiredISO-3166-1-alpha-2
addressline1stringrequired
addressline2string
postalcodestring
statestring
OpenDirect.Contact 9 fields
OpenDirect.Contact fields — 9 fields, 3 required
FieldTypeRequiredDescription
addressobject
emailstring
honorificstring
faxstring
firstnamestringrequired
lastnamestringrequired
phonestring
titlestring
typestringrequired
OpenDirect.ChangeRequest 9 fields

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 11 fields

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 4 fields

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 3 fields

Contains AdCOM Ad Specification

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

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 5 fields

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 18 fields
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 6 fields
AdCOM.VideoResp fields — 6 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
qagmediaratinginteger
admstringCreative markup
curlstringCreative markup URL
apiinteger
mimesarray
AdCOM.DisplaySpec 6 fields
AdCOM.DisplaySpec fields — 6 fields, 0 required
FieldTypeRequiredDescription
subtypearray
bannerformatobject
nativeformatobject
ampformatobject
instlinteger1=interstitial, 0=not
apisarray
AdCOM.DisplayResp 9 fields
AdCOM.DisplayResp fields — 9 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
admstring
curlstring
winteger
hinteger
wratiointeger
hratiointeger
apiinteger
mimesarray
AdCOM.BannerSpec 11 fields
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 11 fields
AdCOM.AudioSpec fields — 11 fields, 0 required
FieldTypeRequiredDescription
mindurationinteger
maxdurationinteger
protocolsarray
startdelayinteger
minbitrateinteger
maxbitrateinteger
deliveryarray
companiontypearray
maxseqinteger
nvolintegerVolume normalization mode
apisarray
AdCOM.AudioResp 5 fields
AdCOM.AudioResp fields — 5 fields, 0 required
FieldTypeRequiredDescription
subtypeinteger
admstring
curlstring
companionadarray
apiinteger
AdCOM.NativeSpec 2 fields
AdCOM.NativeSpec fields — 2 fields, 1 required
FieldTypeRequiredDescription
requeststringrequiredNative Ad Specification request payload
verstringDynamic Native Ads API version
AdCOM.AMPSpec 2 fields
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.