Skip to main content
DeviceAtlas DeviceAtlas
  • Login
  • Get started
  • Products
    • Web
      DeviceAtlas for Web

      Build enterprise grade device awareness

      into your products and services

    • Apps
      DeviceAtlas for Apps

      Device intelligence, targeting and reporting

      in the native apps environment

    • Operators
      Device Map

      Fine grained device intelligence

      indexed by TAC/IMEI

    • DeviceAssure
      DeviceAssure

      Verify the authenticity of devices

      accessing your content and services

    • DeviceAtlas Discover
      DeviceAtlas Discover

      Rich insights about your web traffic that

      analytics platforms don’t tell you about

    DEVICE INTELLIGENCE

    Learn more with our
    intro video

    Deliver an amazing customer
    experience across devices.

    TECHNOLOGY OVERVIEW

    Get an overview of our technology.

  • Use Cases
    • Ad-Tech
      AdTech

      Enable granular device targeting of your campaigns.

      Maximize revenue from impressions and reduce discrepancies

    • Optimization
      Web Optimization

      Ensure content is delivered in a form that’s

      optimized for the end user’s device

    • Analytics
      Analytics

      Understand customer engagement at

      device level

    • Internet of Things
      Internet of Things

      Measure IoT activity on your network

    • OTT Streaming
      Online Streaming Services

      Identity OTT traffic from STBs, Smart

      TVs, and Games Consoles

    • eCommerce
      eCommerce

      Identify factors affecting cart abandonment rates, and ensure optimal user experiences for mobile devices.

    • Gaming
      Gaming

      Enhance knowledge of gaming devices for better analytics and reporting, real-time QoS/QoE monitoring, and more relevant targeting opportunities.

    • Reverse Logistics
      Reverse Logistics

      -

    • Device Insurance
      Device Insurance

      -

    CASE STUDIES

    Learn how market
    leaders are using us
    to outperform their
    competition

    Adoppler and our partners have experienced significant improvements since implementing DeviceAtlas.

    Anton Tkachuk

    Product Manager, Adoppler

    View all case studies

  • Pricing
  • Developers
    • Technology Overview

      Get an overview of our technology

    • Getting Started

      Step by step guide to get up and running fast

    • APIs

      Downloads and information on all APIs

    • About the data

      Device data and available properties

    • Docs & Support

      FAQ's documentation and support

    • Knowledge Base

      Explore our expansive library of free

      whitepapers, eBooks and how-to guide

  • Data & Insights
    • Blog

      Stay informed with our articles on device

      research, data and insights

    • Case Studies

      See why market leaders choose DeviceAtlas

    • Device Browser

      Device information and properties

    • Data Explorer

      Explore and analyse DeviceAtlas data

    • Properties

      Check out our available device properties

    • HTTP Headers Parser

      Check DeviceAtlas results for HTTP Headers

  • Login
  • Get started
Log inSign up
Forgot Password?

Sign up below to view device data and get your trial account.

Passwords match:

Cancel
  • Products
    • DeviceAtlas for Web
    • DeviceAtlas for Apps
    • Device Map
    • DeviceAssure
    • DeviceAtlas Discover
    • Technology Overview
  • Use Cases
    • AdTech
    • Web Optimization
    • Analytics
    • Internet of Things
    • Online Streaming Services
    • eCommerce
    • Gaming
    • Reverse Logistics
    • Device Insurance
    • Case Studies
  • Pricing
  • Developers
    • Technology Overview
    • Getting Started
    • APIs
    • About the Data
    • Docs & Support
    • Knowledge Base
  • Data & Insights
    • Blog
    • Case Studies
    • Device Browser
    • Data Explorer
    • Properties
    • HTTP Headers Parser
  • Login
  • Get started
  • Search
Resources →

Getting Started

  • Enterprise
    • DeviceAtlas for Web
    • DeviceAtlas for Apps
  • Cloud
  • DeviceAssure
    • DeviceAssure for Web
    • DeviceAssure for Apps
  • Discover

APIs

  • Enterprise APIs
    • Download API
    • Documentation
    • API examples
    • Performance
  • Cloud Service
    • Download API
    • Documentation
    • Cloud Service End-Points
    • Google Sheets Integration
  • DeviceAssure APIs
    • Download API
    • Documentation
  • Client-side Component
    • iOS H/W Identification
    • Usage
    • Download
  • REST API
  • User-Agent Client Hints
    • Developer considerations
    • Web server configuration
    • OpenRTB and UA-CH
    • Capturing in JavaScript
    • Header precedence logic

Data

  • Data Downloads
    • Carrier Data
    • Device Data (JSON)
    • Device Map (TAC)
  • Data File Configuration
  • Contributing
  • About Our Data
  • Dynamic Data
  • Becoming a Data Partner

Properties

  • Available Properties
  • Client-side Properties

FAQ

  • Support
  • General
  • Licensing

More

  • Side-loaded Browsers
  • Whitepapers
  • Case Studies

DeviceAtlas and UA-CH header precedence

This page describes the behaviour of the DeviceAtlas API with respect to User-Agent Client Hints (UA-CH), traditional browser headers and JavaScript.

Identifier sources

In a web context DeviceAtlas utilises identifiers from the following sources:

  1. Traditional HTTP headers (primarily the User-Agent header but there are others also such as device-stock-ua and x-operamini-phone-ua).
  2. User-Agent Client Hint HTTP headers
  3. JavaScript-sourced properties including Client Hints.

With the advent of UA-CH there are now several new scenarios to be considered that necessitate additional logic in the DeviceAtlas API.

Identifier precedence & pairing

DeviceAtlas follows the following precedence of identifier sources in its consideration of tokens for browsers supporting UA-CH:

  1. JavaScript-sourced UA-CHs (via our DeviceAtlas Client-Side component)
  2. HTTP-sourced UA-CHs
  3. User-Agent header

A full list of the priority order is included in the Reference section at the end of this page.

DeviceAtlas examines each source of identifiers in turn and attempts to resolve them into a component such as a device model or browser along with its associated properties.

  • If a source of identifiers isn’t capable of resolving a particular component the next source in the precedence order is considered.
  • Some UA-CHs are inherently paired and thus must be considered together to be resolvable to a set of properties, for example  platform and platformVersion hints.
  • DeviceAtlas requires paired identifiers to both come from the same source in order to be utilised i.e. both identifiers must be present from a given source and have non-empty values to be considered.

The reasoning for this is as follows:

  • Per the standard, UA-CHs should have the same value whether accessed from JavaScript or headers.
  • If a browser withholds hints from one source it makes no sense to expose them via another.
  • The behaviour of browsers with respect to high-entropy and low-entropy headers should align whether sourced from JavaScript or HTTP headers.
  • Thus with a correctly functioning browser the UA-CHs should align both in value and availability.

Customers with a strong preference for how identifiers should be considered can override DeviceAtlas logic by building the appropriate input set for the API.  

Scenarios

The following section considers some different scenarios to illustrate DeviceAtlas behaviour. Some of these examples will occur mostly during the transitional phases of Google's Chrome plans i.e. in the phase when Chrome is still sending a full User-Agent header, but also UA-CHs. 

Frozen UA string, low-entropy UA-CH

This will be a common scenario from the first visit of a browser supporting UA-CH.

Example

User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Mobile Safari/537.36
Sec-CH-UA-Mobile: ?1
Sec-CH-UA: "Google Chrome";v="110", " Not;A Brand";v="99", "Chromium";v="110"
Sec-CH-UA-Platform: "Android"

Behaviour: low-entropy headers utilised, reduced property set returned.

Frozen UA string, high-entropy UA-CH HTTP headers

This is the likely scenario from a second visit of a browser supporting UA-CH when high-entropy headers have been requested.

Example

User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Mobile Safari/537.36
Sec-CH-UA-mobile: ?1
Sec-CH-UA: "Google Chrome";v="110", " Not;A Brand";v="99", "Chromium";v="110"
Sec-CH-UA-Platform: "Android"
Sec-CH-UA-Platform-Version: "11.2.1"
Sec-CH-UA-Model: "VOG-L09"
Sec-CH-UA-Full-Version: "110.0.4472.120"
Sec-CH-UA-WoW64:

Behaviour: high-entropy UA-CH headers utilised, full property set returned.

Frozen UA string, high-entropy UA-CH HTTP headers, JavaScript data

This is the likely scenario from a second visit of a browser supporting UA-CH when high-entropy headers have been requested.

Example

User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Mobile Safari/537.36
Sec-CH-UA-Mobile: ?1
Sec-CH-UA: "Google Chrome";v="110", " Not;A Brand";v="99", "Chromium";v="110"
Sec-CH-UA-Platform: "Android"
Sec-CH-UA-Platform-Version: "11.2.1"
Sec-CH-UA-Model: "VOG-L09"
Sec-CH-UA-Full-Version: "110.0.4472.120"
js.Mobile: "true"
js.Platform: "Android"
js.Architecture: "ARM"
js.Bitness: "64"
js.fullVersionList: "Not_A Brand";v="99.0.0.0", "Google Chrome";v="109.0.5414.87", "Chromium";v="109.0.5414.87"
js.Model: "VOG-L09"
js.platformVersion: "11.0.0"
Js.wow64: ""

Behaviour: JavaScript-sourced UA-CH headers utilised, full property set returned 

Full UA string, low-entropy UA-CH

This will often be the case in the transitional phase when UA-CHs are supported by a browser but the full User-Agent string is still being sent.

Example

User-agent: Mozilla/5.0 (Linux; Android 10; 5002H_EEA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36
Sec-CH-UA: "Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"
Sec-CH-UA-Platform: "Android"
Sec-CH-UA-Mobile: ?1

Behaviour: fall back to User-Agent since the requisite UA-CH pair is not available.

Blended sources of UA-CH data

Some UA-CH data has been captured from JavaScript, some from HTTP headers.

Example

User-agent: Mozilla/5.0 (Linux; Android 10; 5002H_EEA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36
Sec-CH-UA-Platform: "Android"
js.platformVersion: "12.0.1"

Behaviour: fall back to User-Agent since the requisite UA-CH pair is not available from a single source of identifiers.

Reference

Full priority order list

The table below depicts the priority order for different identifiers for each component of the DeviceAtlas model.

  • Device: Properties related to the physical hardware of a device e.g. model name, screen pixel dimensions, wireless standards supported and so on.
  • Operating system: Properties related to the operating system e.g. OS name, OS vendor, OS family.
  • Browser: Properties related to the browser e.g. browser name, browser vendor, browser rendering engine. 
Device priority order OS priority order Browser priority order
  • ch.model
  • sec-ch-ua-model
  • device-stock-ua
  • x-operamini-phone-ua
  • x-original-user-agent
  • x-device-user-agent
  • user-agent
  • ch.platform
    + ch.platformVersion
  • sec-ch-ua-platform
    + sec-ch-ua-platform-version
  • x-operamini-phone-ua
  • user-agent
  • ch.platform
  • sec-ch-ua-platform
  • ch.browserFullVersionList
  • sec-ch-ua-full-version-list
  • user-agent
  • ch.browserList
  • sec-ch-ua

The prefix ch.* is used when an identifier is sourced from the DeviceAtlas client-side JavaScript library.

DeviceAtlas identifies and verifies connected devices in real-time for rich, actionable intelligence across every customer touchpoint

DeviceAtlas LinkedIn DeviceAtlas X DeviceAtlas YouTube

Our Products

DeviceAtlas for Web

The full picture on web traffic with detailed metadata on all visiting devices

DeviceAtlas for Apps

Device intelligence, targeting and reporting in the native apps environment

DeviceAssure

Real-time identification of fraudulent and misrepresented traffic

Device Map

TAC-based device insights for the mobile ecosystem, in partnership with the GSMA

Industries

AdTech Optimization Analytics Internet of Things OTT / Streaming eCommerce Gaming Reverse Logistics Device Insurance

Quick links

Pricing About us Events Blog Device Intelligence Device Detection Technology Partners Case Studies Data & Insights Developers Contact us

Copyright © DeviceAtlas Limited 2025. All Rights Reserved. Terms & Conditions | Privacy Policy

This is a website of DeviceAtlas Limited, a private company limited by shares, incorporated and registered in the Republic of Ireland with registered number 398040 and registered office at 6th Floor, 2 Grand Canal Square, Dublin 2, Ireland

Industry Affiliations