User-Agent文字列を利用したAndroid搭載携帯端末(スマートフォン)とタブレットの区別について

2011年5月6日の記事「.htaccess(mod_rewrite)でスマートフォン向けページへリダイレクトさせる方法」において、検討課題として「単純にUser-Agentの文字列にiPhone・Androidが含まれる場合のみリダイレクトでよいのか? iPhone・Android以外のデバイス、Androidを採用したタブレット端末の場合はどうするのか?」を挙げていました。

そこで引き続き、Android搭載のスマートフォンとタブレットを区別する方法がないか調査してみたところ、Official Google Webmaster Central Blogの記事「Mo' better to also detect "mobile" user-agent」に、次のようなまとめがありました。

While you may still want to detect "android" in the User-Agent to implement Android-specific features, such as touch-screen optimizations, our main message is: Should your mobile site depends on UA sniffing, please detect the strings "mobile" and "android," rather than just "android," in the User-Agent. This helps properly serve both your mobile and tablet visitors.

英語が苦手なのですが要約すると、「モバイルサイトでUA sniffingを利用するならば、"Android"だけを検出するよりも、"Android"と"mobile"を検出してください。これはモバイル端末とタブレット端末両方の訪問者に役立ちます」といったところでしょうか。

つまり、User-Agent文字列内に"Android"と"mobile"の両方を検出した場合はAndroid搭載携帯端末(スマートフォン)、"Android"だけを検出した場合はAndroid搭載タブレット端末と判別できるわけです。

しかし、これはよりよい方法ではありますが、完全ではないことに注意しなければならないでしょう。なぜならば、全てのユーザーが標準のWebブラウザを利用するわけではないからです。

例えば、GALAPAGOS SoftBank 005SHの標準WebブラウザでWebサイトにアクセスしてくると、次のようなUser-Agent文字列が得られます。

Mozilla/5.0 (Linux; U; Android 2.2.1; ja-jp; SBM005SH Build/S0500) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

しかし、同じGALAPAGOS SoftBank 005SHにインストールしたFirefoxでWebサイトにアクセスしてくると、次のようなUser-Agent文字列となります。

Mozilla/5.0 (Android; Linux armv7l; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1

上記を比較すると、Firefoxでアクセスした場合"Android"の文字は含まれるものの、"Mobile"という文字は含まれないのです。"Mobile"の文字が含まれるかどうかは、特定のブラウザに依存したものであると言えるでしょう。

Windows搭載のパソコンで標準搭載されているInternet Explorerが多く利用されるように、Android搭載端末でも標準のブラウザが多く利用されることが予想されます。よって、Android搭載端末からのアクセス数が極大でなければ、本稿の内容は過剰な心配かもしれません。ただ、標準Webブラウザ以外にもブラウザが存在すること、またUser-Agent文字列によって上手く振り分けが行われなかったユーザーに対してどのようなサポートが必要となるか、検討の余地があるものと考えています。

この記事のタグ