If you do a search for User Agent Strings, you will find that there is a VAST number that use the following string:

“Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; MS-RTC LM 8; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)”

While normally, I wouldn’t think this is that big of a deal, there are two problems I can see with it:

  • This practice DOES skew analytics to thinking that there are more of this particular device than there actually are.
  • Servers that rely on the user agent string to send mobile content to mobile devices will instead send desktop content to mobile devices.

When customizing user experience, beginning with the user agent string (one of the first pieces of data we have available to us as web developers) the first thing we decide is what kind of browser is being used. If the first piece of data we get is wrong, the whole process can be thrown off. If a mobile application is working in a browser-less experience, that user agent string becomes all the more important to the experience, telling the server what it should send back to you.

User Agent strings have been used for years by all sorts of proxies, data grabbers and more, allowing us to customize the experience for a desktop machine as opposed to a mobile device.  User agent strings announce who they are, and when they are being used as a robot to grab data, they should always announce who they are.  Usually this includes:

  • the administrator’s email for easy contact from the server to the person requesting data in case the server administrator needs to make contact, request tuning, etc.
  • The name of the proxy/bot for easy recognition of applications like proxies.

When you send a desktop experience to a mobile device, simply because the proxy changed the user agent string, you are causing the server to send MORE data than necessary to the mobile user that is footing the bill for that data. That is not fair to them for the amount of data they are now receiving, as well as not being fair to their experience (a desktop view rather than a mobile view). Of course, we could probably hack around that, but why should we have to? The information is sent to us from the device, and you should not be changing it.

Gamers, how many times have you had to turn off proxies to get your game to work?  How many times have your games not been able to logon to the game network for seemingly no reason, but as soon as you turned off the proxy, poof! it just works?  One of the first things tech support asks you to do is just that.  This is the reason why.  This is also the reason that your DSL provider tells you that you can’t have a WIFI, router or other device between the modem and computer.  Those devices can also change the user agent string, making it impossible to tell if the problem you are having is local or not.

In short, providers please, STOP CHANGING THE USER AGENT STRING!