Skip to main content

Overview

adagents.json is the publisher-owned file that tells Interchange two things:
  • which properties exist, through properties[]
  • which agents are authorized to sell them, through authorized_agents[]
Publish it at:
For a network, the file often lives on a manager domain and covers many managed publisher domains. The publishers delegate to that manager through ads.txt MANAGERDOMAIN=<manager-domain> or an authoritative_location pointer.

Schema pointer

Include the schema URL in the file so validators and crawlers can lint the same shape:

Minimal network file

This example declares two properties and authorizes the Interchange storefront agent for properties tagged food.

properties[]

Each properties[] entry should describe one site, app, or CTV app. Tags can help authorize a set of properties without listing every property id in the agent entry. Keep tags operationally stable: changing a tag can change which properties the agent is authorized to sell.

authorized_agents[]

Each authorized_agents[] entry names one agent and the scope it may sell. Interchange does not treat the agent’s mere presence in the array as authorization. The entry should say which properties the agent is authorized for. Common selector styles: For network-scale authorization today, use authorization_type: "publisher_properties" with publisher_properties[] when you need a cross-publisher selector. Product responses still disclose coverage through publisher_properties[], usually one selector per publisher domain.

Which agent URL to use

The url field names the agent being authorized. Which URL to use depends on how the seller connects to Interchange: For sellers using Interchange as their hosted storefront agent, the canonical URL is always https://interchange.io. Per-customer subdomain URLs (for example https://yourname.example.interchange.io) are not the correct entry; use the canonical URL. See Authentication for the full base URL reference.

Authorization is advisory, not a blocker

Interchange surfaces a missing or mismatched adagents.json authorization as a warning during setup and product authoring. It does not block source connection, product authoring, or activation. However, when coverage disclosure is enabled, authorized properties from this file are the source for buyer-visible coverage; missing authorization reduces what buyers see, even if the storefront itself stays active. See Identity documents for the full explanation of what blocks setup versus what is advisory.

Manager-domain delegation

If every managed publisher hosted its own full file, a network would have to coordinate thousands of files. Instead, a publisher can delegate to the manager domain. For an ads.txt delegation, the publisher adds:
Interchange resolves the publisher domain, sees the manager-domain delegation, and reads:
The manager file then supplies the properties and authorized agents for the managed footprint.

authoritative_location stubs

A publisher can also host a small pointer file that delegates one hop to a centrally hosted document:
Use this when a publisher can host a file at its own well-known URL but wants the full document maintained centrally. The publisher-origin URL must remain reachable so crawlers can verify that the pointer is the publisher’s act.

How Interchange ingests it

Interchange resolves adagents.json through the same identity-document path used during storefront setup:
  1. Read the publisher’s own well-known file when present.
  2. Follow a valid one-hop authoritative_location pointer when the publisher file is a stub.
  3. Fall back to the publisher’s ads.txt MANAGERDOMAIN when no direct file is present.
  4. Hand the resolved file to the managed sales agent, which classifies the properties and authorized agents.
  5. Use the resulting authorized properties as the source for buyer-visible coverage when coverage disclosure is enabled for the managed storefront.
Interchange references publisher authorization; it does not mint or edit authorized_agents[] for a publisher. Granting authorization must originate in the publisher-controlled document or delegation.

Common pitfalls

  • Test rows become coverage. A test property in properties[] can be disclosed to buyers because it looks like real authorization.
  • Bare agent entries fail closed. List the authorization scope, not only the agent URL.
  • Per-customer subdomain URLs are not the canonical agent URL. For Interchange-connected sellers, authorize https://interchange.io, not a per-customer subdomain. Using a subdomain creates a valid-looking entry that points at the wrong agent.
  • Publisher domains must be real inventory. Manager and operator domains are not substitutes for the site domains being sold.
  • Keep property_id stable. Buyers and agents can use property ids as durable selectors.
  • Keep tags clean. If an authorization uses property_tags, tag hygiene controls the agent’s authorized footprint.
  • Validate www and apex domains. Put the domain buyers should recognize in identifiers[]; avoid mixed or stale variants.

Publisher properties and coverage

How authorized properties appear to buyers in get_products.

Identity documents

The full model for adagents.json, brand.json, agent cards, and AAO.

Discover agents

Resolve a domain’s registered and authorized agents.

Custom targeting and properties

How GAM key-values relate to site groups and signals.