Device.sua
Structured user agent data built from User-Agent Client Hints, as a UserAgent object with browser brands, platform, model, and architecture. Added in OpenRTB 2.6.
Field facts
- Path
device.sua- Object
- Device
- Type
- object
- Requirement
- Optional
- Added
- OpenRTB 2.6-202204
- Spec section
- 3.2.18
How it is used
Chromium browsers now send a reduced user agent string with frozen versions and, on Android, a placeholder model, so device.ua alone no longer identifies the device precisely. When both are present, the spec tells bidders to prefer sua. Sellers should keep sending ua for buyers that have not switched, fill sua only from real client hints or a disclosed parse, and set UserAgent.source to say which.
Example
Where the field sits in a payload, with everything else left out:
{
"id": "req-1",
"device": {
"sua": {
"browsers": [
{
"brand": "Chromium",
"version": [
"124",
"0",
"6367",
"91"
]
},
{
"brand": "Google Chrome",
"version": [
"124",
"0",
"6367",
"91"
]
},
{
"brand": "Not-A.Brand",
"version": [
"99",
"0",
"0",
"0"
]
}
],
"platform": {
"brand": "Android",
"version": [
"14",
"0",
"0"
]
},
"mobile": 1,
"model": "Pixel 8",
"source": 2
}
}
}Common mistakes
- Sending
suawithbrowsersmissing or empty. The object then says nothing about the browser, and RTBlint reports it. - Building
suaby parsinguaand leavingUserAgent.sourceat 0 or claiming client hints. A parsed object should say 3.
Version history
Added in OpenRTB 2.6-202204, 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.6-202204 | Added in the first 2.6 release, published without a structured text archive; the 2.6-202210 republication is the first tagged text. | ||
| 2.6-202210 to 2.6-202606 | object | No | No |
Versioned rules that name this field
openrtb.2.6.user_agent_brandversionOpenRTB 2.6 added structured user-agent and brand-version objects.