Summary
Add typed browser-family inclusion and exclusion to AdCP targeting without exposing browser versions or seller ad-server keys.
This is the browser-specific follow-up split from #4239. It should use the targeting-aware discovery contract in #6203: known values affect the offered product's availability, price, and forecast; future package-level control is requested and disclosed per product.
Proposed schema
targeting.browser: non-empty array of canonical browser-family values
targeting.browser_exclude: non-empty array using the same enum
- new
browser-family enum, initially:
chrome
safari
firefox
edge
opera
samsung_internet
android_webview
other
unknown
Browser versions are intentionally out of scope for 3.2. Seller-native browser/version taxonomies change too frequently and do not map reliably enough for an interoperable external contract.
Semantics
- Exclusion wins when the same family appears in both fields.
- Inclusion and exclusion support are independent product capabilities under
required_overlay_support and overlay_support.
- Known browser values in
get_products.targeting_overlay constrain availability, price, and forecast.
- Exact support needs no targeting echo.
- During discovery, a seller that can offer only a different executable browser constraint returns sparse
targeting_resolution.modifications; selecting that configured product accepts the disclosed change.
- During create or update, a seller that cannot enforce the exact requested constraint rejects it instead of silently broadening delivery.
- Products for which browser targeting is unavailable simply omit the corresponding
overlay_support fields.
Trust boundary
This RFC does not allow buyers to pass browser strings, backend segment IDs, or arbitrary key/value expressions. Sellers map the typed family enum to their platform controls internally. Any future browser-engine or version support requires a separate typed proposal.
Acceptance criteria
Open taxonomy questions
- Is
android_webview the right interoperable family, or should embedded webviews remain other?
- Should privacy-reduced or unrecognized user agents always map to
unknown, reserving other for recognized but non-enumerated families?
- Do any major sellers require
samsung_internet to map differently from Chromium-derived browser families?
Industry references
Related: #4239, #6203. Supersedes the browser portion of #4239 only.
Summary
Add typed browser-family inclusion and exclusion to AdCP targeting without exposing browser versions or seller ad-server keys.
This is the browser-specific follow-up split from #4239. It should use the targeting-aware discovery contract in #6203: known values affect the offered product's availability, price, and forecast; future package-level control is requested and disclosed per product.
Proposed schema
targeting.browser: non-empty array of canonical browser-family valuestargeting.browser_exclude: non-empty array using the same enumbrowser-familyenum, initially:chromesafarifirefoxedgeoperasamsung_internetandroid_webviewotherunknownBrowser versions are intentionally out of scope for 3.2. Seller-native browser/version taxonomies change too frequently and do not map reliably enough for an interoperable external contract.
Semantics
required_overlay_supportandoverlay_support.get_products.targeting_overlayconstrain availability, price, and forecast.targeting_resolution.modifications; selecting that configured product accepts the disclosed change.overlay_supportfields.Trust boundary
This RFC does not allow buyers to pass browser strings, backend segment IDs, or arbitrary key/value expressions. Sellers map the typed family enum to their platform controls internally. Any future browser-engine or version support requires a separate typed proposal.
Acceptance criteria
browserandbrowser_excludeto targeting.Open taxonomy questions
android_webviewthe right interoperable family, or should embedded webviews remainother?unknown, reservingotherfor recognized but non-enumerated families?samsung_internetto map differently from Chromium-derived browser families?Industry references
Related: #4239, #6203. Supersedes the browser portion of #4239 only.