ニュース

最新オープンソースプロジェクトDeviceDetector遂にリリース!

本投稿では、Piwikの最新オープンソースプロジェクトDeviceDetectorのリリースを発表します。このユニバーサルデバイス検出ライブラリは、ユーザーエージェントの解析と、ブラウザやOS、使用されているデバイスの種類(デスクトップ、タブレット、モバイル、テレビ、車、コンソール等)やブランド・モデルの検出を行います。

この素晴らしい最新プロジェクトのリリースについて、さらに詳しく知るために、ぜひ以下に目を通して下さい。

なぜ私達はDeviceDetectorを生み出したのか?

これまでのライブラリUserAgentParserでは、OSとブラウザの検出のみが可能でした。しかしスマートフォンやタブレット等をはじめとするモバイル端末からのトラフィックが増加するにつれて、ウェブサイト訪問者がどのデバイスを利用しているかを知ることがますます重要になってきました。

そこで可能な限り正確に必要な注目を獲得できることを保証するために、私達は、Piwikのデバイス検出機能を別のプロジェクトに移動し、今後個別に維持することを決めました。独自のプロジェクトとして、DeviceDetectorがコミュニティ自身の手によって、よりよいサポートとよりよい可視性を得ることができる場となるよう願っています。

DeviceDetectorは、 GitHub内、 piwik/device-detectorにホストされています。また Packagistを通してコンポーザパッケージとしても利用可能です。

DeviceDetectorはどのように動くの?

Webサーバーからデータを要求するあらゆるクライアントは、サーバーへのリクエスト内で、ユーザーエージェントを送信することにより自分自身を識別します。

これらのユーザエージェントは、次のようないくつかの情報が含まれている可能性があります。:

  • クライアント名とバージョン(クライアントはブラウザまたは、フィードリーダーやメディアプレイヤー、アプリのような他のソフトウェアの場合もあります。)
  • OS名とバージョン
  • ブランドとモデルを検出するために使用するデバイス識別子

例)
[info_box]Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36[/info_box]
このユーザーエージェントは、以下の情報を含みます:
OS:Android 4.2.2
クライアント:ブラウザChrome Mobile32.0.1700.99
デバイス:Google Nexusスマートフォン

DeviceDetectorが現在検出するものとは

DeviceDetectorは、サーチエンジン、フィードフェッチャ、サイトモニター等のbotや、約100ブラウザ・15のフィードリーダー・いくつかのメディアプレイヤー・個人情報マネジャー(メールクライアントのようなもの)・AFNetworkingフレームワークを使用するモバイルアプリケーションを含む5種類の異なるクライアントタイプ、約80のOSと180以上のブランドからリリースされている9つの異なるデバイスタイプ(スマートフォン、タブレット、フィーチャーフォン、コンソール、テレビ、車ブラウザ、カメラ、スマートディスプレイ、デスクトップでバイス)を検出できます。

注意:現在、Piwik自体はDeviceDetectorの全ての機能設定を使用していません。またクライアントの検出は、現在Piwik内では実装されていません。(ブラウザだけが検出され、他のクライアントは不明としてマークされます )
クライアントの検出は、将来的に#5413のアップデート更新に従ってPiwik内で実装されます。

DeviceDetectorのパフォーマンス

DeviceDetectorの検出は、現在いくつかの.YMLファイル内で定義された膨大な数の正規表現により処理されています。これら.YMLファイルを解析するのは少々時間を要するため、DeviceDetectorは解析された.YMLファイルをキャッシュすることができます。なおデフォルトでは、全てが静的変数内にキャッシュされています。
リクエストを通した検出のスピードアップのためには、1つのプロセスで多くを検出する必要があるため、ファイルまたはメモリーキャッシュ内にキャッシュするアダプタがあります。

DeviceDetectorに貢献するには?

まだ検出されていない、あなたのデバイスを登録します

もし今あなたがDeviceDetectorにより正しく検出されないデバイスを持っている場合、 GitHub上で問題を作成して下さい。あなたのデバイスが、DeviceDetectorによって正しく検出されているかどうかチェックするため、あなたのPiwikサーバーに行って、’設定’リンクをクリック。それから診断メニュー下の‘デバイス検出’をクリックします。もしデータが一致していない場合は、表示されたユーザーエージェントをコピーし、それを使用してお使いのデバイスデータのチケットを作成します。

ユーザーエージェントのリストを登録

新たな検出を作成したり、既存の検出を改善するためには、ユーザーエージェントリストが必要になります。
あなたが主に非デスクトップデバイスでウェブサイトを使用している場合、あなたのウェブサイトを訪れたユーザーエージェントリストは非常に役立ちます。まずは、アクセスログへアクセスする必要があります。
以下のコマンドで、ユーザーエージェントを抽出します。

zcat ~/path/to/access/logs* | awk -F'"' '{print $6}' | sort | uniq -c | sort -rn | head -n20000 > /home/piwik/top-user-agents.txt

もしヘルプが必要な場合、 devicedetector@piwik.orgまでお問い合わせ下さい。

GitHub上で改善案を送信

DeviceDetectorは自由な無料のライブラリです。
ぜひ、検出やコードの改善を手伝って下さい。GitHub上でチケットを作成し、要求をpullして下さい。

DeviceDetectorが次に目指す大きな目標は?

デバイス検出問題トラッカーで、問題のリストをチェックしてください。

私達は、コミュニティがお互いのヘルプの呼びかけに応えてくれることを願っています。
ぜひ一緒に、最もパワフルなデバイス検出ライブラリとして、DeviceDetectorを構築していきましょう!

Happy Device Detection,


stefan_g-150x150Stefan Giehl