version-upgrade

We’ve released version 4.3 of our API packages

Engineering

8/5/2021 1:00 PM

User Agent Client Hints 51Degrees Google Version 4 News

Future-proof your real-time data when you upgrade to version 4.3

Update for June 2022: version 4.4 of the 51Degrees service contains full User-Agent Client Hints support. Find out more in our version 4.4 blog.

Since the release of version 4 of our APIs last year, we’ve been working hard to make some major improvements to our real-time data services.

Yesterday, version 4.3 was successfully rolled out to our API packages. One of the biggest changes made was the introduction of support for User-Agent Clients Hints. In the upcoming weeks, there will be upgrades to both our cloud service and our data files; once these changes have been released, our customers will have access to full support for User-Agent Client Hints.

These updates will be staggered over the month of August; however, you can prepare yourself now by downloading our newest packages. But why should you do this, and why does User-Agent Client Hints support matter? We’ve talked about User-Agent Client Hints in the past, but let’s refresh our memories together.

How can I upgrade to version 4.3?

If you are looking to upgrade to version 4.3 from version 3, you will need a new licence key. Click the button below to choose a pricing plan that suits your needs, or if you require further assistance, please contact our Sales team.

See our pricing plans

Once you have obtained your new licence key, please visit our Upgrade to version 4 migration guide for the next steps.

uach-43-announcement
User-Agent Client Hints 4.3 Announcement

Why is it important to support User-Agent Client Hints?

User-Agent Client Hints (UA-CH) are a way to request information about the user’s device when they visit a website. For example, when a mobile using Chrome visits an HTTPS site, the following User Agent Client Hint will be sent to the server: Sec-CH-UA-Mobile ?1

Within UA-CH, ?0 = false, and ?1 = true. Therefore, this tells the server that this is a mobile browser.

Google are interested in replacing the User-Agent request header with User-Agent Client Hints under the guise of improved privacy. We won’t go into too much detail here – we have created a complete guide to understanding Client Hints for this purpose.

At the time of writing, Google plan to reduce the User-Agent string in the second half of 2022. At 51Degrees, we believe that freezing the UA string is a bad idea. Google's Privacy Sandbox solution (which involves the freezing of the UA string) is flawed. Less information is available on the first visit to a domain, which can impact certain industries.

In March 2021, Google released UA-CH by default in Chrome 89 onwards. While we may not agree with Google’s choices, we need to be prepared. That’s why version 4.3 of our product has such a heavy focus on User-Agent Client Hints support – we must be ready for the reduction in the User-Agent string, even if it doesn’t go ahead.

By upgrading your packages to version 4.3, you are future-proofing your business against some of the biggest industry changes to come.

Upgrade to Version 4.3 now
client-hints
Client Hints

Where can I download version 4.3 of the 51Degrees API?

Our GitHub profile contains all the latest code available to download. The packages you download will be specific to your needs and programming language. Alternatively, you can find our packages on the official sites for each language:

What changes were made in version 4.3?

The release of version 4.3 not only includes the new support for User-Agent Client Hints, but also updated technical documentation, with changes to the usage sharing and performance options feature pages.

Version 4.3 also includes multiple code improvements, as explained below.

Continuous Integration and Continuous Deployment improvements

Continuous Integration involves merging the code changes from each developer into one main source branch. And once the testing has been approved, Continuous Deployment would roll out the changes.

Prior to this API release, changes made to the packages would be done manually. If our product was only written in one API language, this wouldn’t be much of a problem. However, since we have multiple API languages, manually deploying a release took a lot of engineering time. Our developers would go through each API to update references and dependency versions manually; this task is time consuming, as each version update requires tests to rerun. Our developers would then wait to verify the results and the deployment success of the dependency package before starting to update the next API.

Starting from release version 4.3, we have fully automated the process of updating references and dependency versions across all API languages, so that engineering time is reduced for the future. We can now deploy new API versions with more regularity, allowing us to respond to feedback from customers and end users quicker. With more frequent changes, including any bugs or issues identified from customers and end users, the quality of our product is improved.

GitHub issues

We’ve said it before, and we’ll say it again: we value working in the open. Our customers are actively encouraged to post any technical issues they have onto GitHub.

Not only is this the most efficient place to discuss any technical issues, but by posting in the open, we potentially help anyone with the same issue. When you have an issue with a service, what is usually the first thing you do? You look it up online to see if anyone else had the same problem!

Within the release of 4.3 of our APIs, we have fixed various issues raised on GitHub, including improvements to our documentation and bugs identified by customers.

Support for ARM processors

Our device detection abilities have been upgraded so now we can compile natively for ARM processors with ease. Although it’s not the most common processor, by including this support we now have more strings to our bow.

Currently, support for ARM processors is written exclusively in C Java. This change only applies to our on-premise solutions; others which do not include a native binary are unaffected. If you are interested in our ARM support, but require it in a different programming language, let us know and our developers can schedule the work into a future release.

We appreciate feedback from our customers, including suggestions for improved services and support. The support for ARM processors was only realized following a request from a customer. If there is a specific service or device property that you are interested in, and you can’t find reference to the support anywhere in our property dictionary, it’s worth getting in touch. You never know until you ask!

Coming soon

As we mentioned before, the release of version 4.3 to our API packages will be followed by updates to our cloud service and data files. Once these updates are released, customers will have full UA-CH support. If you are currently on version 4.2 or earlier, you will not have access to UA-CH support.

To get started with our improved services, our current customers need to upgrade to version 4.3 by downloading our newest package versions.

For new customers who are looking to use our cloud service, all you need to do is follow these steps to get started with 51Degrees real-time data services:

  1. Choose the device properties you want with our configurator. These properties will correspond to the insight you want to receive on your website, app, or ad viewers and users.
  2. Review your configuration. If you require a license key to gain access to our paid properties, sign up to one of our pricing plans.
  3. Implement the code.

For customers looking for an on-premise solution, we recommend signing up to a biggest or bespoke pricing plan. You can then use your license key to download the latest file.

That’s all there is to it. What are you waiting for? It’s time to get real-time data for your business!

UPDATE: For further reading on UA-CH, we have released a new blog. 'User-Agent Client Hints – Your questions answered' delves deeper into the history of this HTTP header request, as well as the data you'd expect to see. Embrace your technical side and learn more on this feature.