More alternatives to Google Analytics

Ben Hoyt

Google Analyticsのさらなる代替ツール

原文は Ben Hoyt により に公開されました。 このブログを購読する

先週、私たちは紹介したGoogle Analytics(GA)を利用する際のプライバシー上の懸念と、軽量なオープンソースの選択肢であるGoatCounterとPlausibleの2つを取り上げました。これらのツールは、比較的シンプルな指標で十分なサイト運営者にとって有用です。本稿となる第2回では、より詳細な分析を必要とする人向けに、より高機能なGAの代替ツールをいくつか紹介します。さらに、ウェブサーバーのアクセスログをもとに分析データを生成するツールについても見ていきます。特にGoAccessに注目します。

Matomo

高機能な選択肢の中で最も人気が高いものの一つが、オープンコアのMatomoです。以前は「Piwik」と呼ばれ、2007年に作られました。LWNでも2010年というかなり早い時期にPiwikを取り上げています。MatomoはGoogle Analyticsの機能を余すところなく備えた代替ツールであり、GA並みのパワーを必要とする企業でも移行が可能で、しかもオープンソースかつセルフホストという利点によるプライバシーと透明性のメリットも得られます。一例として、ウェブ制作会社のIsotropicは最近移行しました

ユーザーのプライバシーを尊重したいと考え、自分たちのサーバーで統計情報をホストする方が、私たちにとってもユーザーにとっても良いと感じたため、この決断をしました。[…] Google Analyticsの機能に匹敵する、あるいはそれ以上のものが必要でした。求めていたソリューションは、リアルタイム分析、ジオロケーション、広告キャンペーンのトラッキング、ヒートマップを提供し、かつオープンソースであることでした。

Matomoは最も人気のあるオープンソースの分析ツールで、最も歴史も長いのですが、それでも上位100万サイトのうちわずか1.4%でしか使われておらず、GAの市場シェアの約2%に過ぎません。よく知られたオープンソースソフトウェアでさえ、時価総額6000億ドルの巨大企業と競うのは難しいのです。

[matomo.org提供のMatomo UI]

GAと同様に、Matomoは基本的な数値やグラフを示すサマリーダッシュボードに加え、位置情報マップやリファラー情報など、多くの詳細なレポートを提供します。さらにMatomoには「content tracking」と呼ばれる機能があり、GAではJavaScriptを書くかサードパーティのプラグインを入れる必要があるのとは異なり、コードを書かずにコンテンツに対するユーザーの操作(クリックや表示)を自動的にトラッキングできます。セルフホスト版のMatomoでもこれらの機能はすべて利用できますが、サイト運営者はさらに有料のさまざまなプラグインを購入して導入することも可能です。たとえばファネル計測やシングルサインオンのサポート、さらにはマウスの動きを含めたユーザーのセッション全体を記録する、やや侵襲的なプラグインなどがあります。

MatomoはPHPで書かれており、データストアとしてMySQLを使用しています。インストールは、PHPとMySQLがインストールされたウェブサーバーにファイルをコピーするだけで完了する簡単なものです。ライセンスはGPLv3で、無料でのセルフホスト(スタンドアロンまたはWordPressプラグインとして)、比較的安価な2つのクラウドオプション、エンタープライズ向けの料金プランが用意されています。Matomoは運営がしっかりしているプロジェクトのようで、比較的活発なコミュニティサポートフォーラムもあります。また、セルフホスト版を利用する企業向けにビジネスレベルのサポートプランも提供しています。

Open Web Analytics

似たようなツールで、知名度はやや劣るのがOpen Web Analytics(OWA)です。こちらもPHPで書かれ、GPLv2でライセンスされています。OWAはホスト型サービスの月額課金ではなく、寄付をベースとした開発モデルを採用しています。数あるオープンソースツールの中でも、OWAは最もGoogle Analyticsのクローンのように感じられるもので、ダッシュボードでさえGAにそっくりです。そのため、GAのインターフェースに慣れているユーザーにとっては良い選択肢になるかもしれません。

OWAはMatomoほど多機能ではありませんが、概要ダッシュボード、ウェブ統計、マップ上での訪問者の位置表示、リファラーのトラッキングといった基本機能は一通り備えています。Matomoと同様に、そうしたタイプのサイトの訪問者を分析するためのWordPress連携も用意されています。また、拡張するための多様な手段も提供しており、APIや新しい「モジュール」(プラグイン)の追加、さまざまなトラッキングイベント(訪問者の最初のページビューやユーザーのマウスクリックなど)へのフックなどが含まれます。

OWAはPeter Adams氏一人によってメンテナンスされており、長期間活動が停滞していた時期もあります。最近は開発が再び活発になっており、Adams氏は2020年初頭にいくつかの新しいリリースを公開しています。ただし、1.6.9リリースのもののような最近のリリースに付いている警告(「! IMPORTANT: The API endpoint has changed!」)は、少し不安を覚えさせるかもしれません。インストールはここでも簡単で、PHPファイルをウェブサーバーにコピーし、MySQLデータベースを用意するだけです。

Countly

もう一つのオープンコアの選択肢であるCountlyは2013年に創設され、比較的多機能で多様なタイプのダッシュボードを備えています。ただ、今回取り上げるツールの中では、ホームページの洗練された動画やUIのスタイリッシュなダッシュボードなど、最も「ウェブ系スタートアップ」らしい雰囲気を感じさせるものです。Countlyは「分析データのコントロールをあなたに委ねることを約束します」とうたっています。

[count.ly提供のCountly UI]

Countlyは、エンタープライズ版(比較的高価で年間5000ドルから)とセルフホストのコミュニティ版を明確に区別しており、後者は「基本的なCountlyプラグイン」と「集計データ」に限定されています。CountlyのコアのソースコードはGNU AGPLでライセンスされており、サーバーはNode.js(JavaScript)で書かれ、AndroidおよびiOS向けのSDKはそれぞれJavaとObjective Cで書かれています。

Countlyの基本プラグインは、ウェブやモバイルデバイス向けのシンプルな統計やリファラーといった一般的な分析指標を提供しますが、メールベースのレポートのスケジューリングやJavaScriptおよびモバイルアプリのクラッシュ記録といった、より高度な機能も備えています。一方、エンタープライズ版では、Countly製またはサードパーティ製の幅広いプラグインが追加され、HTTPパフォーマンスの監視、目標と完了率を含むファネル、A/Bテストなどの高度な機能が提供されます。全体として、Countlyのコミュニティ版は、モバイルアプリを持つ企業やオンラインで商品を販売する企業にとって十分に充実した内容であり、必要に応じて後からエンタープライズ版へアップグレードする選択肢も残されています。

Snowplow

より汎用的なイベント分析システムが、2012年に創設され「エンタープライズ向けイベントデータ収集プラットフォーム」と銘打たれているSnowplow Analyticsです。Snowplowはデータ収集の部分を担いますが、データをどのようにモデリングし表示するかは導入する側に委ねられています。セッションのモデリング方法を自社で管理したい、あるいはビジネス固有のフィールドでデータを拡充したいといった、より大規模な企業にとって有用です。

Snowplowのインストールのセットアップは、決して気軽にできるものではありません。さまざまなコンポーネントの設定に加え、大掛かりなAmazon Web Services(AWS)のセットアップが必要です。AWS以外にインストールすることも可能かもしれませんが、簡単ではありません。ただし、GitHub Wikiには包括的なAWSセットアップガイドが用意されています(同社は有料のホスト型オプションも提供しています)。企業は、イベントをPostgreSQLやAWSのカラム型データベースであるRedshiftに挿入したり、さらなる処理のためにデータをAmazon S3に残したりするように設定できます。通常、データの閲覧にはLookerChartIOのようなビジネスインテリジェンスツールが使われますが、その点についてSnowplowが特定の方法を強制することはありません。

Snowplowは複数の言語で書かれたツールの集合体で、特にScala(Spark経由)とRubyが主に使われています。Apache 2.0ライセンスで提供されています。Snowplowは上位1万サイトのうち約3%で使われており、データパイプラインを完全にコントロールしたい大企業にとっては妥当な選択肢と言えるでしょう。

ウェブアクセスログを使った分析

ここまで紹介してきたすべてのシステムはJavaScriptベースのトラッキングを使用しています。この手法の利点は、より豊富な情報(例えば画面解像度など)が得られることや、ウェブのログへのアクセスを必要としないことです。しかし、サーバーのアクセスログが利用できるのであれば、そのログを直接分析ソフトウェアに読み込ませる方が好ましい場合もあります。これを行うオープンソースツールは数多くあり、20年以上前から存在するものとしてはAWStatsAnalogWebalizerの3つが挙げられます。AWStatsはPerlで書かれており、この中では最も多機能で活発にメンテナンスされています。AnalogはPython、WebalizerはCで書かれていますが、どちらも現在は活発にメンテナンスされていません。

より新しい有力候補が、MITライセンスのGoAccessです。GoAccessは当初ターミナルベースのログアナライザーとして設計されましたが、見栄えの良いHTMLビューも備えています。GoAccessはCで書かれており、依存関係はncursesのみで、Amazon S3やCloudfrontといったクラウドサービスを含む、一般的なアクセスログ形式をすべてサポートしています。

[GoAccessのUI]

GoAccessは間違いなく最もモダンな外観を持ち、メンテナンスも行き届いているアクセスログツールであり、ページURLごとのヒット数や訪問者数、OSやブラウザの種類別の内訳、リファラーサイトやURLなど、基本的な指標をすべて生成します。また、見つからなかったページのURLやHTTPステータスコード、サーバーのレスポンスタイムなど、JavaScriptベースのツールには通常含まれない指標もいくつか備えています。

GoAccessのデフォルトのモードでは静的なレポートを出力しますが、データをリアルタイムに更新するオプションもあります。ターミナルモードでは200ミリ秒ごと、HTMLモードでは(独自の小さなWebSocketサーバーを使って)1秒ごとに更新されます。GoAccessの設計はよく考えられており、(ディスクに保存されたデータ構造を使った)増分ログ解析のオプションや、高速な解析コードとインメモリのハッシュテーブルを用いた大規模なログファイルの解析サポートなどを備えています。

このツールはほとんどのシステムで簡単にインストールでき、主要なLinuxパッケージマネージャー向けのビルド済みパッケージや、macOSユーザー向けのHomebrew版が用意されています。WindowsでもCygwinを使うか、Windows 10のLinux Subsystem経由で動作します。

まとめ

総じて、より高機能な分析やGAに似たシステムを必要としつつ、オープンソースを求める人にとって、いくつかの良い選択肢があります。eコマースサイトを運営している場合や、ファネル分析のような機能が必要な場合には、MatomoとCountlyが良い選択肢のようです。イベントの保存やモデリングの方法を直接コントロールする必要がある企業は、Snowplowの導入を検討するとよいでしょう。ウェブのログにアクセスできる場合や、JavaScriptベースのトラッキングを使いたくない場合には、GoAccessが2020年時点でのウェブログ分析の良い選択肢と言えそうです。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント