google-web

Countdown to G-Day: <deviceCompat> and <unifiedPlatform>

51Degrees

12/5/2022 12:45 PM

Google User Agent Version 4 Client Hints Chrome Web

Within the User-Agent reduction, Google has a new format for Chrome User Agent strings

From February 2023, Google will make it harder to detect devices using the Chrome browser.

For our Version 3 customers, this is especially impactful. If you pass only the reduced Chrome User-Agent to our device detection, our solution will not be able to provide accurate results for the device. This is thanks to Google splitting device information between both the User-Agent HTTP request header and their own creation, User-Agent Client Hints.

Let's delve deeper into the changes Google is making.

Get support for User-Agent Client Hints

The reduced User-Agent string format

Google is staggering the reduction of the User-Agent. With the release of Chrome 110 (currently scheduled for 7 February 2023) the 51Degrees Device Detection solution will require User-Agent Client Hints data to correctly detect the device type.

User-Agent reduction phase Date Summary of the changes
Phase 1 September 2021 Chrome 92. Warn about accessing navigator.userAgent, navigator.appVersion, and navigator.platform in DevTools.
Phase 2 October 2021 to March 2022 Chrome 95 to Chrome 100. Launch of reduced User-Agent origin trial for users to provide feedback.
Phase 3 March 2022 Chrome 100. Launch a reverse origin trial (opt in).
Phase 4 April 2022 Chrome 101. Reduction of Chrome version number present in the User-Agent.
Phase 5 October 2022 Chrome 107. Reduction of platform and version information present in desktop User-Agents.
Phase 6 February 2023 Chrome 110. Reduction of device model and Android version information present in Android mobile and tablet User-Agents.
Phase 7 May 2023 Chrome 113. All page loads receive the reduced User-Agent.

We want to emphasize that this is not a change we initiated but is a change we were forced to make thanks to Google deciding to reduce information in the User-Agent HTTP header within Chrome (and other Chromium-based browsers).

Post-User-Agent reduction, User-Agent strings will have this format:

Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 <deviceCompat> Safari/537.36

<unifiedPlatform>

Referring to the platform, Android version, and device model values in the User-Agent string, the <unifiedPlatform> changes are the ones currently taking place.

At the end of October 2022 with the release of Chrome 107, Google removed platform information from desktop Chrome User-Agent strings. The platform version information will remain as "10.0", whether it's a Windows 8.1 or Windows 11 desktop computer, for example.

From February 2023, Chrome 110 will bring the next phase of Google's User-Agent reduction. You will no longer be able to tell what the device model or Android version is from the Chrome User-Agent string alone.

The device model information will remain as "K", and the Android version will be fixed at "10."

Mobile (user on Samsung Galaxy, for example)
Previous UA Mozilla/5.0 (Linux; Android 9; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36
Phase 6 UA Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36

Other values for the <unifiedPlatform> are permitted, but these are severely limited.

<deviceCompat>

Interestingly, Google's new format for the User-Agent string allows for blank values. The <deviceCompat> token represents device form-factor, and the possible values are either "Mobile" (for mobile devices) or "" (an empty string, used by Tablets and Desktop)

If we know the User Agent string contains "Linux; Android 10; K" and a <deviceCompat> value of "Mobile", we know it is a mobile.

One might assume that if the User-Agent string contains "Linux; Android 10; K" (which is only present in mobile and tablet User-Agent strings) and a <deviceCompat> value of "" (which is only present in desktop and tablet User-Agent strings), then this must indicate the device is a tablet, right?

Unfortunately, this is not the case.

The 51Degrees Device Detection solution requires the device name (the "K" value within mobile and tablet User-Agent strings) to identify whether a device is a mobile or tablet. We are not able to make a device determination based on blank values within Google's new format of the User-Agent string. The absence of the <deviceCompat> value can't be used to assume the device. Additionally, many Android and Chromium-based traffic originate from TVs and set top boxes which are neither mobile nor tablet.

Therefore, the only solution to this problem (that Google has caused) is by activating User-Agent Client Hints (which Google created).

You will need to send the User-Agent Client Hints (UA-CH) headers to our solution to get an accurate detection of the device. You should ensure you get all the UA-CH headers, but if you are keen on knowing the device type, you will need to send the Sec-CH-UA-Model header.

We continue to review an ever-changing document from Google (a so-called "specification" which still reads "unofficial draft"). Furthermore, the parameter is not defined in any specification which is version controlled, meets a recognized engineering standard, or has any form of consensus in any standards body. We only have the Chromium source code to work with, which is less than ideal.

Pushing back the timeline

Our customers have expressed concern that there isn't enough time to prepare for the 7 February 2023 deadline, when the mobile and tablet Chrome User-Agent strings will change.

Additionally, others have raised concerns that it is in fact their customers who will need to adapt to the change, as their services are configured so that their customers are responsible for setting up and providing User-Agent Client Hints. That is a big task to complete before February.

We share our customers' frustrations. These frustrations have been directly caused by Google's Privacy Sandbox changes.

What can be done?

You can voice your concerns to Google to push back the timeline for the User-Agent reduction. Too few web participants have engaged directly with Google or regulators like the UK Competition and Markets Authority (CMA), who is monitoring Google's Privacy Sandbox proposals.

There is still time to change this.

Here are some examples of the actions we've taken. There are many more.

If you are concerned by the timeline imposed upon us by Google, we strongly encourage you to do the following:

Engage with the CMA

Engage with the UK Competition and Markets Authority (CMA) and talk about the issues your business faces. Where possible, explain the portion of your business that operates in the UK. As a new voice in the process, you'll be treated seriously. You may wish to request assistance from your General Counsel.

Raise an issue on the WICG

Raise an issue on the Web Incubation Community Group (WICG) where Google has requested feedback on User-Agent reduction. Make it clear that your customers are not ready to support the timeline and that you will suffer a business impact associated with Google's change.

Ideally in addition to your point on the readiness of your customer base, you could include the following:

  • Reference to the commitments Google made to the CMA (see next point).
  • Raise the issue of latency associated with UA-CH which is explained in Google's quarterly report to the CMA. We know that latency caused by UA-CH is a concern to the CMA.
  • Request Google provide a response in their next quarterly report to the CMA concerning your issue. This will focus on the engineers to explain why they reject your request; it's possible they will be more inclined to accept the request as it's easier for them.

Join Movement for an Open Web

Join Movement for an Open Web (MOW) alongside 51Degrees and many other companies who are also concerned about these changes; MOW is well placed to help. You can contact MOW via media@movementforanopenweb.com.

While the aforementioned actions will increase the probability of changing the timeline, the best option is to accelerate the upgrade to Version 4, which has full User-Agent Client Hints support.

We will continue pushing to extend the User-Agent reduction timeline.