PSA: Android tablets are not being confused as iPads in browser share stats

I keep reading this argument in the forums and want to clarify the issue.

There is no need to fake device type to get correct layout. The layout is determined by the presence of AppleWebKit and Safari (for tablet/desktop) and Mobile Safari for phones. This is how all Android and iOS devices present themselves to the Webservers.

The way these companies who track web share by device is to look at the Device, OS and version string in the UA. If they were only looking at the word Safari or Mobile Safari, Apple would get 100% of all phone and tablet web browsing share.

Xoom Android tablet:

Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

It clearly states, it’s a tablet (Safari, not Mobile Safari) and it’s Android running 3.0

Chrome for Android User-Agent

Chrome for Android reports its user agent string (UA) in the following formats, depending on whether the device is a phone or a tablet:

Phone UA:

Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>)
AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Chrome/<Chrome Rev> Mobile
Safari/<WebKit Rev>

Tablet UA:

Mozilla/5.0 (Linux; <Android Version>; <Build Tag etc.>)
AppleWebKit/<WebKit Rev>(KHTML, like Gecko) Chrome/<Chrome Rev>
Safari/<WebKit Rev>

Here's an example of the Chrome user agent string on a Galaxy Nexus:

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B)
AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile

For comparison, here are examples of other popular user agent strings:

Desktop Chrome: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19

Desktop Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

iPhone Safari: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3

iPad Safari: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

Stock Android Browser:

Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 4.0.3; de-ch; HTC Sensation Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 2.3; en-us) AppleWebKit/999+ (KHTML, like Gecko) Safari/999.9


All Android and iOS browsers UA strings have the word AppleWebKit, Safari/Mobile Safari in them. This determines the layout.

All Android and iOS browser UA strings have Device, OS, Version, etc. in them to determine if it's iPad or something else.


Android 4.0.3; de-ch; HTC Sensation Build/IML74K

iPad; U; CPU OS 3_2 like Mac OS X; en-us

Let's put an end to the silly arguments that somehow the numbers are being miscounted. Even if some third party browsers are screwing up their UA strings, it has to be minuscule in numbers.

EDIT: Before the post is spammed with examples of cases where some bit player or 3rd party browser in certain settings modifies their UA string as iPad, please re-read the last sentence of my post. The major players and the popular browsers that form the overwhelming majority of tablets, still send Android in their UA string. The Nexus 7,8, Galaxy Tab, Kindle Fire, Nook, etc. running default or Chrome browsers. And just like how the UA strings can be changed in corner cases on Android, the same can be done on iPad thereby nullifying the effect.