Documentation Index
Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Ad networks
Ad networks aggregate inventory across multiple AI platforms into a single seller interface. The protocol supports this topology natively — a network is a seller agent that represents multiple publisher properties it doesn’t own.How a network appears
To buyer agents, the network is a standard seller agent. Buyers connect to the network’s MCP server, push catalogs and data in via standard tasks, and execute buys. To the underlying AI platforms, the network is an operator — it holds accounts on each platform and forwards the buyer’s catalog data, brand identity, and content standards.Product modeling for networks
A network’s products can span multiple AI platforms usingpublisher_properties:
Account model for networks
Networks typically use implicit accounts (require_operator_auth: false). The buyer agent is trusted and declares brands via sync_accounts. The network then manages its own accounts with each underlying AI platform:
Catalog forwarding
Networks receive catalogs from buyers viasync_catalogs and forward them to the relevant AI platforms. The same task works on both legs — the network acts as a buyer when syncing catalogs to each platform. This is the core data pipe: brand catalog data flows from buyer to network to platform, giving each platform the raw material to generate ads.
Governance and content standards
Networks can enforce governance policies at the routing layer before forwarding to platforms. When a buyer pushes content standards, the network applies them when selecting which platforms and contexts are eligible — then forwards the policies to each platform so they’re also enforced at creative generation time. This gives brands two layers of suitability enforcement: the network’s routing decisions and the platform’s generation constraints.Delivery reporting
Networks aggregate delivery data from underlying platforms and present unified reporting to buyers viaget_media_buy_delivery. The buyer sees a single delivery report per media buy — the network handles the per-platform breakdown internally. Networks that want to offer platform-level transparency can use reporting_dimensions to expose placement-level breakdowns.
Declaring your network in brand.json
A network declares its properties in itsbrand.json using the relationship field. This uses the same vocabulary as adagents.json’s delegation_type, creating a bilateral verification chain — the AdCP equivalent of sellers.json in programmatic advertising.
relationship field uses the same values as delegation_type in adagents.json, plus owned:
| Relationship | Meaning | Example |
|---|---|---|
owned (default) | You own and operate this property | Your own website |
direct | You are the direct sales path for this property | A publisher’s in-house ad team using a vendor’s tech |
delegated | You manage monetization for this property — you’re in charge | Mediavine managing a food blog’s ad sales |
ad_network | You sell this property’s inventory as part of a network or exchange — you’re a path, not the path | PubMatic as an SSP for nytimes.com |
delegated and ad_network matters: a delegated relationship means the operator is in charge of the property’s monetization (exclusive or near-exclusive access). An ad_network relationship means the operator is one of potentially many paths to the inventory.
Bilateral verification with adagents.json
This creates a two-sided verification chain — the same pattern assellers.json + ads.txt in programmatic:
| File | Who publishes it | What it declares | Programmatic equivalent |
|---|---|---|---|
brand.json (operator) | The network/SSP | ”I sell for these publishers, here’s how” | sellers.json |
adagents.json (publisher) | Each publisher | ”This operator’s agents are authorized, here’s the delegation type” | ads.txt |
brand.json, and each publisher confirms by authorizing the network’s agents with the matching delegation_type in their adagents.json. If only one side declares, the relationship is incomplete — the network health dashboard flags this as missing authorization (operator declared but publisher hasn’t authorized) or orphaned authorization (publisher authorized but operator hasn’t declared).
adagents.json for networks
Each publisher in the network authorizes the network’s agent in theiradagents.json:
adagents.json. Buyer agents discover the network through the platforms’ authorization chains.
SI Chat Protocol through networks
When an ad network sells SI Chat Protocol sessions on behalf of brands, it acts as an intermediary in the session flow. The brand syncs offerings to the network viasync_catalogs with type: "offering", and the network forwards them to underlying platforms. When a platform triggers a session, the network routes it to the correct brand agent.
| Field | Platform to Network | Network to Brand |
|---|---|---|
media_buy_id | Network’s media buy ID | May differ or be omitted |
offering_id | Not set (platform doesn’t know) | Brand-specific offering |
intent | User intent from the conversation | Forwarded as-is |
identity | User identity (if consented) | Forwarded as-is |
placement), which media buy funded it (media_buy_id), and which brand responded (offering_id). This lets the network provide unified delivery reporting to buyers via get_media_buy_delivery while each brand agent only sees its own sessions.
Networks should forward identity and supported_capabilities unchanged — the brand agent needs accurate host capabilities to negotiate modalities, and the user’s consent was granted for the brand, not the network.
For the SI Chat Protocol session lifecycle and capability negotiation details, see the SI Chat Protocol and implementing SI hosts.