Skip to content

§ 5.2 — App identity on properties (#15) - #17

Open
Sirajmx wants to merge 3 commits into
mainfrom
spec/15-app-identity
Open

Sirajmx wants to merge 3 commits into
mainfrom
spec/15-app-identity

Conversation

@Sirajmx

@Sirajmx Sirajmx commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Draft. Do not merge until the working group confirms the disposition of #15.

What this changes

§ 5.2 properties can now identify apps as well as web domains. Each property in properties.available[] may carry apps[] with platform, bundle, storeurl and domain, keyed as the OpenRTB 2.6 app object where one exists. Each property MUST carry domains, apps or both. A note states that seller authorisation for an app is checked through app-ads.txt on its developer domain. The CTV example now carries an app identity.

Related issue

Refs #15

Type

  • Editorial — no normative effect
  • Normative — changes what the spec requires
  • Breaking — would break an implementation already built to this draft
  • Examples / schema / docs only

Checklist

  • The body section is updated
  • Appendix A (field index) matches the body — no new top-level field; apps sits inside properties
  • Appendix B (fields by marker, and the counts) matches the body — unchanged
  • Any affected example in examples/ is updated and still parses
  • RFC 2119 keywords used deliberately — MUST / SHOULD / MAY are not synonyms
  • The no-inheritance rule (§ 2) still holds
  • Anything selectable declares available[] and included[]; anything settable declares bounds (§ 3.1, § 3.2)
  • No confidential or commercially sensitive content

Knock-on effects

  • domains is no longer always present. A consumer that assumed it was must handle a property carrying only apps.
  • OpenRTB: bundle, storeurl and domain map directly to the 2.6 app object. platform has no OpenRTB equivalent.
  • Related to OQ-7 (OQ-7 — environments[] needs validation against real inventory #8): app_mobile and ctv can't be validated against real inventory without an app identity.

By opening this pull request I agree my contribution may be published under this
repository's licence, as set out in CONTRIBUTING.md.

§ 5.2 properties can carry apps[] (platform, bundle, storeurl, domain),
keyed as the OpenRTB 2.6 app object where one exists. Each property
must carry domains, apps or both. The CTV example carries an app.

Refs #15
@fgranata

fgranata commented Oct 6, 2026

Copy link
Copy Markdown

This shape works for us — bundle + platform is exactly how we key app inventory, and aligning on the OpenRTB 2.6 app object is better than the new names we proposed.

One suggestion on domain: the text says seller authorisation is checked through app-ads.txt on the developer domain, but domain is OPTIONAL, so a buyer has nothing to run that check against when it is absent. Consider "SHOULD be present; REQUIRED when the seller claims app-ads.txt authorisation for the app" (or simply SHOULD).

Without apps[].domain a buyer has nothing to run the app-ads.txt check
against. RECOMMENDED (SHOULD) rather than a conditional REQUIRED, as the
object has no field in which a seller claims app-ads.txt authorisation.

Refs #15
@Sirajmx

Sirajmx commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

Thank you. Agreed: without domain, a buyer has nothing to run the app-ads.txt check against.

We have updated the PR to make domain RECOMMENDED (SHOULD, in RFC 2119 terms) rather than OPTIONAL. We kept it at RECOMMENDED rather than a conditional REQUIRED, as the object has no field in which a seller claims app-ads.txt authorisation, so the condition could not be checked. A buyer can still fall back to the developer domain in the store listing (storeurl) when domain is absent.

@KonstantinMirin

Copy link
Copy Markdown

Postindustria (IAB Tech Lab member). @Sirajmx, four points on App identity:

Analyzed and generated with the help of Claude, fully reviewed by me.

- Rename apps[].domain to developer_domain, as #15 filed it. It is the
  developer domain from the store listing that app-ads.txt uses, not
  OpenRTB 2.6 app.domain, which is the domain of the app.
- Define platform as the store that issued bundle, since a bundle is
  unique only within its store.
- List apps[].platform and apps[].bundle in the Summary Representation
  (section 2.1), as #15 asked.

Refs #15
@Sirajmx
Sirajmx marked this pull request as ready for review October 28, 2026 17:10
@KonstantinMirin

Copy link
Copy Markdown

Postindustria (IAB Tech Lab member). @Sirajmx, thanks for developer_domain and the platform definition. Three points remain at 63d86c0:

  • developer_domain. The seller writes it, so a seller can point it at a file that lists the seller. app-ads.txt takes the developer domain from the store listing. We suggest ending the row "informative; the governing developer domain comes from the store listing". Open question 4 on #88 asks about this under the old name.
  • bundle. "As OpenRTB 2.6 app.bundle" is right for OpenRTB. In AdCOM, that value is App.storeid, and App.bundle "should NOT be app store IDs".
  • Inventory share. @unreconciled's case has no answer. Under the authorization sentence, a buyer reads only the app owner's file and rejects the channel owner's share. Their sentence fixes it: "Where inventorypartnerdomain is present, authorization is checked through the app owner's app-ads.txt entry for that domain and then through the ads.txt on the inventory partner's domain." #88 proposes the field.

Analyzed and generated with the help of Claude, fully reviewed by me.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants