adagents.json file. Apostra reads that
file for every publisher domain in your coverage and shows the result as the domain’s authorization status and
reason. When a domain shows agent_not_listed, the file does not name the sales agent Apostra runs for you, and
the publisher has to add one entry. This page says what to put in the publisher’s adagents.json. Send it to
whoever edits the publisher’s file.
Publisher authorization does not prevent transactions. It lets buyers verify that the publisher has authorized
your Storefront to sell its properties. The Publisher authorization step in your setup stays open until every
declared domain is authorized.
A Storefront that sells through a platform connection, such as Meta or TikTok, has no publisher authorization
step: its selling rights come from the platform account, not from adagents.json.
Where the file lives
The publisher serves the file at:adagents.json document served over HTTPS. A publisher can instead point to a file
hosted elsewhere, with an authoritative_location file at that address or a MANAGERDOMAIN line in its
ads.txt. The entry then goes in the hosted file, and the properties it selects must belong to the publisher’s
domain (see Which properties count).
How Apostra finds the file
Apostra fetches the publisher’s own file first and follows redirects only within the same registrable domain. A redirect to another registrable domain is refused, and the domain reads asfile_invalid. Only when the
publisher’s own file returns 404 does Apostra read the domain’s ads.txt, follow its MANAGERDOMAIN line one
hop, and use that manager’s file instead. A publisher file that exists is used even when it does not authorize
you, so it hides the manager’s file until the publisher removes it or points it at the manager’s file.
The entry to add
If your Storefront has an ad-server connection or a modular source, Apostra runs the sales agent that sells it. The publisher’s file must then authorizehttps://interchange.io:
This holds even when you also connect a sales agent of your own. While Apostra runs any of your inventory, only
https://interchange.io counts for the domain.
A complete file
The smallest file that authorizes the Storefront declares the property and the entry that selects it:authorized_agents beside them.
Common mistakes
These URLs do not match, and leave the domain atagent_not_listed:
https://interchange.io/mcporhttps://interchange.io/a2a. Apostra compares the whole URL, path included.http://interchange.ioorhttps://www.interchange.io.- The address buyers use to reach your Storefront. That is where buyers send requests, not the agent the publisher authorizes.
- An entry with no
authorization_type, or with an empty selector, reads asagent_untyped. - A selector that matches none of the publisher’s properties, or a
signal_idsorsignal_tagsentry, reads asagent_not_property_bound.
Authorization types
The check accepts the four AdCP property authorization types:signal_ids and signal_tags authorize data signals, not properties, so they do not authorize a Storefront.
Which properties count
If the file is served from the publisher’s own domain, the entry must select at least one property. If the file is hosted elsewhere, such as a network file reached throughauthoritative_location or
MANAGERDOMAIN, the selected properties must belong to the publisher’s domain. A property belongs to it when
its publisher_domain is that domain, or when it has a domain identifier equal to it or a subdomain
identifier under it. A publisher_properties selector counts when it names the publisher’s domain. Apostra
treats www.example.com and example.com as the same publisher.
What each reason means
Re-check after the publisher publishes
Re-check the domain withrefresh on save_coverage:
refreshed item shows authorizationStatus: "authorized" once the file authorizes your Storefront.
Re-checking a publisher in your coverage describes the full response and its
limits.
Apostra also reads the copy of the file held by the
AgenticAdvertising.org registry, and while that copy predates the fix, the domain
stays unauthorized. So when the publisher’s file authorizes you but the registry’s copy does not, the re-check asks
the registry to read the file again and waits up to about 15 seconds for its answer. If the registry has not read
the file by then, the re-check still shows agent_not_listed. Re-check again in a few minutes.
If you sell only through your own sales agent
If none of your inventory sources is an ad-server connection or a modular source, and you connect sales agents of your own, the entry names your agent’s URL in place ofhttps://interchange.io. Use the URL exactly as you
connected it, path included. An entry for https://agent.example.com does not
authorize an agent connected at https://agent.example.com/mcp; see
The publisher file names the URL you connect. If you connect several agents, the publisher can authorize any one of them. A
Storefront with no active inventory source is checked against https://interchange.io.
Related
- Re-checking a publisher in your coverage re-reads a publisher’s file now.
- Seller readiness reads whether a setup step is open.