App.bundle
The app's identifier in its app store. For Google Play it is the package name, such as com.example.puzzlequest, and for the Apple App Store it is the numeric App Store ID.
Field facts
- Path
app.bundle- Object
- App
- Type
- string
- Requirement
- Optional
- Added
- OpenRTB 2.0
- Spec section
- 3.2.14
How it is used
For CTV stores, the IAB Tech Lab guidelines on store-assigned app IDs apply: Roku uses a numeric channel ID and Amazon uses an ASIN-style code, for example. OpenRTB 2.0 to 2.3 described a bundle or package name, 2.4 and 2.5 added that iOS apps use a numeric ID, and 2.6 defines the field as the store ID. Buyers match it against BidRequest.bapp block lists and use it to find the developer's app-ads.txt, so one app should carry the same bundle on every exchange.
Example
Where the field sits in a payload, with everything else left out:
{
"id": "req-1",
"app": {
"bundle": "com.example.puzzlequest"
}
}Common mistakes
- Sending the iOS reverse-domain bundle identifier, such as com.example.puzzlequest, for an App Store app. Apple apps are identified by the numeric ID, and the DV360 profile rejects anything else for iOS.
- Putting the store URL in bundle. The URL belongs in
App.storeurl, and some exchanges answer a URL here with a malformed-bundle loss code. - Adding the id prefix from the App Store URL, as in id1234567890. The prefix is part of the URL path, not the ID.
- A mobile package name on CTV traffic, or a store ID whose shape does not fit the platform in
Device.os, is a common sign of spoofed supply.
Version history
Added in OpenRTB 2.0, and present in the latest snapshot. The table shows how each version's spec text types the field.
| Versions | Type in the spec | Required | Deprecated |
|---|---|---|---|
| 2.0 | string | No | No |
| 2.1 | string com uni | No | No |
| 2.2 | string | No | No |
| 2.3 to 2.3.1 | string | No | No |
| 2.4 | string | No | No |
| 2.5 to 2.6-202606 | string | No | No |