> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apostra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How your discovery targeting reaches sellers

> Which parts of a brief's structured targeting a storefront passes on to the sellers behind it, and why a seller's pricing and forecasts may not reflect targeting it was not sent.

When you ask a storefront for products, you can send structured targeting
alongside the brief: AdCP's `targeting_overlay` (for example the countries you
want, through `geo_countries`) and `required_overlay_support` (the targeting
you need to be able to set later). A storefront that resells an outside seller
passes that targeting on to the seller, so the seller can price and forecast
for it. AdCP asks sellers to scope a product's `forecast` to the concrete
targeting they receive in discovery.

## What each seller receives

| Seller | `targeting_overlay` | `required_overlay_support` |
| - | - | - |
| Speaks AdCP 3.2 or later | The fields it can honour (below) | Sent unchanged |
| Speaks AdCP 3.1 or earlier | Not sent: these versions have no such field | Not sent |

For a seller on AdCP 3.2 or later, each `targeting_overlay` field is handled
by how the seller declares it:

* **Fields a seller declares for its whole account** in its capabilities
  (`media_buy.execution.targeting`), such as countries, regions, metros,
  postal areas, places, language, keywords and property lists: sent only when
  the seller declares that field, and only with values the seller says it
  supports. For example, a metro list in a system the seller does not list is
  not sent.
* **Fields a seller declares per product**, such as device type, audiences,
  signals, dayparts and frequency caps: always sent. AdCP has the seller leave
  out or adjust a product that cannot honour them, not refuse the request.
* **Demographics, including age:** not sent. Outside sellers read age from the
  brief text.

`required_overlay_support` is sent unchanged because dropping part of it would
return products you said you could not use.

A property list sent as a discovery filter (`filters.property_list`) reaches
only a seller that declares it can filter by property list.

## What this means for forecasts

A seller that was not sent a targeting field has no structured way to apply
it. Its products and forecasts describe its default scope, usually its whole
footprint, even if the brief text mentions the targeting. A seller on AdCP 3.1
or earlier can still narrow which products it returns from `filters.countries`
and the other product filters, but it cannot scope a forecast to them.

Exclusion lists, such as a list of domains to avoid, are not discovery
targeting. AdCP applies them when the media buy is booked, through
`targeting_overlay.property_list_exclude` on the buy.

## Related

* [Discovering products on a storefront needs an account](https://docs.apostra.com/v3/storefront-discovery-needs-an-account.md)
* [Build an agent](https://docs.apostra.com/v3/build-an-agent.md): how to check each package's targeting after you book
* [Apostra and AdCP](https://docs.apostra.com/v3/apostra-vs-adcp.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.