Skip to content

[Change] § 5.2 — App identity on properties (store id / bundle id) for app_mobile and ctv inventory #15

Description

@fgranata

What kind of change?

Change a field's type or shape

Which section?

5.2 — Inventory composition

Field(s) involved

properties.available[]

Current text

properties.available[] items are { id, name, domains, supported_formats }.

Proposed text

Add an app identity to the property object, and require at least one of domains or apps:

{ id, name,
  domains?: [...],
  apps?: [{ store: ios | android | roku | fire_tv | samsung_tv | ..., store_id, bundle_id, developer_domain? }],
  supported_formats }

Note in the field description that authorisation for app inventory resolves through app-ads.txt (published on the developer domain from the store listing), not through the property's domains.

Why

environments already enumerates app_mobile and ctv, but the only identity a property can carry is a web domain. In-app and CTV-app inventory is identified by store id / bundle id — that is what AdCOM, app-ads.txt, sellers.json and every DSP keying on the bid request use. Without it a buying agent cannot match an app line item to its brand-safety lists, run its app-ads.txt check, or join its own historical performance data, and the downstream OpenRTB app.bundle / Deals API line cannot be pre-filled from the proposal.

Knock-on effects

  • §2.1 summary representation lists "property names"; it should list the app identifier too.
  • Partly answers open question 7 (environments[] validation): app_mobile and ctv need app identity to be validatable at all.

Would this break an implementation already built to this draft?

No — additive; domains keeps working for web properties.

Alternatives you considered and rejected

  • Putting the bundle id in content_detail or external_references[]: both are free-form, so buyers could not key on them reliably.
  • A separate app_properties field: splits one concept in two and forces the no-inheritance rule to be restated for each.

Concrete scenario

A CTV line item lists property { id: "weather-app", domains: ["exampleweather.com"] }. The buyer's agent runs its app-ads.txt check against the Roku channel id and has nothing to key on; the same line item, once agreed, cannot be handed to the DSP as an app.bundle deal.

You are commenting as

SSP — an in-app supply-side exchange (mobile + CTV) selling preferred-deal / private-auction / open-market inventory to buyer agents over AAMP and AdCP; we run the seller side of both today.

Before you submit

  • I have read the draft section I am commenting on.
  • This contains no confidential or commercially sensitive information.

Activity

  1. Sirajmx commented on Oct 6, 2026

    @Sirajmx
    Contributor

    Thank you for raising this.

    We agree in principle. § 5.2 properties currently carry only web domains, so app_mobile and ctv inventory cannot be identified, verified against app-ads.txt, or carried into the downstream OpenRTB request.

    Rather than introduce new names, we propose aligning apps[] with the OpenRTB 2.6 app object:

    apps: [{
      platform,   # ios | android | roku | fire_tv | samsung_tv | ...
      bundle,     # OpenRTB 2.6 app.bundle: the app's store ID
      storeurl,   # OpenRTB 2.6 app.storeurl
      domain      # OpenRTB 2.6 app.domain: the developer domain used for app-ads.txt
    }]
    

    As OpenRTB 2.6 defines bundle as the store ID, it covers both store_id and bundle_id from your proposal. platform has no OpenRTB equivalent and would be defined by OpenProposal.

    Draft PR #17 applies this to the § 5.2 property object and the CTV example. Appendix A is unaffected, as apps is a key within properties rather than a new field. The PR will remain in draft until the working group confirms the disposition of this issue.

    This issue also bears on OQ-7 (#8): app_mobile and ctv cannot be validated against real inventory without an app identity.

  2. Sirajmx commented on Oct 8, 2026

    @Sirajmx
    Contributor

    Related: #25 proposes buyer-supplied block lists, including an app_bundle exclusion type. If app identity is added to properties as proposed here, the two should use the same app identifier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions