This page will provide information on Device/Browser Detection changes in Mapp Intelligence.

This change only applies to how Google Chrome handles User-Agents from version 110 on. Based on the current information, other browsers (Firefox, Safari, Edge, etc.) are not impacted.

Google Chrome 110 was rolled out on February 1st, 2023, which changed how User-Agents are provided. Device model information will be transmitted via "User Agent Client Hints" (UA-CH) instead of "User-Agents" (UA).

This could cause less accurate device detection. Mapp Is accommodating this change and currently supports UA-CH data processing. We have also adapted our device/operating system detection to detect Android smartphones with limited user agent information better than before. As a result, the "unknown" and "Any Android" device classes will appear less frequently in the data. 

However, some updates are required to transmit the respective header information to Mapp Intelligence. Chrome no longer allows the transmission of user-agent data as before; therefore, our customers need to adapt their code to transmit certain headers, as they will no longer be transmitted by default. 

The user agent reduction is controlled by Google alone. They enable the reduction in phases for selected groups of users at specific dates. Hence, the impact of these changes may not be visible immediately.

Q: Why do I have to make changes if Mapp already supports this?

A: We've made changes in our device/browser detection, updated our libraries, tested, etc. to support this change. Unfortunately, this isn't enough for Mapp Intelligence Device Detection's accuracy.

Q: What needs to change, and how?

A: You'll need to instruct browsers to send additional Client Hint headers via Meta tags in the webpage itself or HTTP headers sent by your web server as shown in the examples below: has to be replaced by your real track domain.

via Meta Tag

<meta http-equiv="Accept-CH" content="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"> 
<meta http-equiv="Delegate-CH" content="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;">


via HTTP Header

response.setHeader('Accept-CH', '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');
response.setHeader('Permissions-Policy', 'ch-ua=(self ""), ch-ua-full-version-list=(self ""), ch-ua-model=(self ""), ch-ua-mobile=(self ""), ch-ua-platform=(self ""),ch-ua-platform-version=(self "")');

Q: When will I see the impact of these changes on my data?

A: The impact may become visible at different times, and this is for two reasons:

  • Not all users update their browsers as new versions become available
  • The user agent reduction process is rolled out in stages and is controlled by Google alone. They enable the reduction in phases for selected groups of users at specific dates. For example, a major uptick in unknown devices was observed on April 27th due to Google rolling out another stage of the process the day before.

Q: Anything else I should know? 

A: It is important to keep in mind the following:

  • Chrome 110 sends three default "low entropy" Client Hint headers (sec-ch-ua, sec-ch-ua-mobile, sec-ch-ua-platform), plus the regular user-agent header.
  • By default, Chrome 110 doesn't include device model information, minor versions, etc. These are considered to be "high-entropy" headers.
  • High entropy Client Hints have to be activated explicitly to maintain the accuracy of Mapp Intelligence Device Detection, as Chrome 110 transmits "low entropy" client hints by default.
  • Chrome 110 sends client hint headers on SSL pages only. 
  • There is still an ongoing debate on whether all browsers will support this in the future without end-user interaction. Therefore, this only applies to Chrome 110+ for the time being.

Q: What are High and Low Entropy?

A: Client hints are broadly divided into these two categories where:

  1. The low entropy hints don't give away much information that might be used to create a fingerprint for a user. Depending on the permission policy, they may be sent by default on every client request, irrespective of the server Accept-CH response header. That is why 3 of them are sent by default by Chrome.

  2. The high entropy hints have the potential to give away more information that can be used for user fingerprinting. Therefore, they are gated so that the user agent can decide whether to provide them. The decision might be based on user preferences, a permission request, or the permission policy. All client hints that are not low entropy hints are considered high entropy hints.

Low entropy, therefore, means a lower degree of certainty of the information provided by the browser by default for us to use in device detection, which results in generic data. In contrast, high entropy data that is not transmitted by default and needs to be explicitly transmitted has the potential to result in higher accuracy in our device detection. 

Q:  Why has Google made this change?

A: Please see User Agent Client Hints from Chrome for further details on this from Google. This is an ongoing debate at the moment, and not all browser vendors agree on how to proceed.

Regardless of why Google made this change, we as Mapp will support it so our customers can continue to use and benefit from Mapp Intelligence Device Detection effectively.

Related Topics

How can I make my website ready for Google Chrome's Client Hints?

Improving user privacy and developer experience with User-Agent Client Hints

User-Agent Client-Hints Developer Considerations

51 Degrees Overview

HTTP Client hints