Overview🔗
This page explains which User-Agent Client Hints (UA-CH) values you need in order to get results for different properties.
If you just want to get all properties, you'll need the following UA-CH values. We generally recommend supplying all of these for the best detection results:
- Sec-CH-UA
- Sec-CH-UA-Full-Version-List
- Sec-CH-UA-Model
- Sec-CH-UA-Mobile
- Sec-CH-UA-Platform
- Sec-CH-UA-Platform-Version
If you want to be more selective for some reason, the rest of the page describes how the data is used. The table at the end shows which UA-CH values are needed for each 'component'.
Background🔗
51Degrees groups properties associated with the request by ‘component’. The components 51Degrees recognize are hardware device, platform (operating system), browser, and crawler.
The User-Agent header contains information relating to all four of these components. User-Agent Client Hints values are different in that they relate to varying numbers of components. For example, the Sec-CH-UA-Model header only relates to the hardware device component.
However, multiple UA-CH values are sometimes needed to fully identify a component. For example, Apple devices running Chrome will not populate the Sec-CH-UA-Model header, so that won't help give us an answer to the hardware component. Instead, we need the Sec-CH-UA-Platform header, which can at least tell us that this is an iOS device.
We concatenate the various UA-CH headers that are needed to identify a component to create ‘pseudo-headers’. These are then used internally to perform the detection.
Pseudo-headers🔗
The table below shows which pseudo-headers are required in order to detect each component. These are the minimum pseudo-headers we use to detect the component; however, we recommend providing all UA-CH values for the best detection. Additionally, this table is only applicable for Chromium-based browsers; to detect non-Chromium browsers, you will need to continue supplying User-Agent information.
Some pseudo-headers are not required to detect the component but can provide more detailed detection results. For example, Sec-CH-UA-Platform-Version is not required to determine the Platform component, but provides additional version information when supplied.
In some cases, there are multiple pseudo-headers for a component. These are processed in order from providing most detail to least. In addition, pseudo-headers will always take precedence over the User-Agent, even in cases where the User-Agent provides more detail.
Key🔗
- x = This value is required in order to determine the component.
- x* = This value is not required, but if provided may return more detailed results.
- y and z = One of these values are required. Supplying y may return a more accurate result and removes the need to supply z.
| UA-CH header | Hardware | Platform | Browser/App |
| Sec-CH-UA | z | ||
| Sec-CH-UA-Full-Version-List | y | ||
| Sec-CH-UA-Model | x | ||
| Sec-CH-UA-Mobile | x | x | |
| Sec-CH-UA-Platform | x | x | x |
| Sec-CH-UA-Platform-Version | x* |
