More alternatives to Google Analytics

Ben Hoyt

更多 Google Analytics 替代方案

原文由 Ben Hoyt 發布,訂閱此部落格

上週,我們介紹了使用 Google Analytics(GA)所涉及的隱私疑慮,並提出了兩個輕量級的開源選項:GoatCounter 與 Plausible。這些工具適合只需要相對基礎數據的網站擁有者。在這第二篇文章中,我們將為需要更詳細分析的使用者,介紹幾個功能更為強大的 GA 替代方案。我們也會探討一些能根據網站伺服器存取日誌產生分析資料的工具,特別是 GoAccess。

Matomo

其中最受歡迎的重型方案之一,是採用開放核心模式的 Matomo。它前身為「Piwik」,創建於 2007 年;LWN 早在 2010 年就曾報導過 Piwik。它是 Google Analytics 功能完整的替代方案,因此需要 GA 強大功能的公司可以轉移到它,同時仍能享有使用開源、自架方案所帶來的隱私與透明度優勢。舉例來說,網路代理商 Isotropic 最近就轉用了 Matomo:

我們之所以這麼做,是因為想尊重使用者隱私,並認為將統計資料託管在自己的伺服器上,對我們和使用者都更好。[...] 我們需要一套能與 Google Analytics 功能匹敵、甚至超越它的方案。這個解決方案必須提供即時分析、地理定位、廣告活動追蹤、熱點圖,而且必須是開源的。

儘管 Matomo 是最受歡迎、歷史最悠久的開源分析工具,它在前一百萬大網站中的使用率仍僅有 1.4%,大約只有 GA 市占率的 2%——即使是知名的開源軟體,也很難與這隻市值 6,000 億美元的大猩猩競爭。

[來自 matomo.org 的 Matomo 介面]

與 GA 一樣,Matomo 提供了包含基本數據與圖表的總覽儀表板,以及許多詳細報表,包括位置地圖、參照來源資訊等。此外,Matomo 還有一項名為「內容追蹤」的功能,可在不撰寫程式碼的情況下自動追蹤使用者與內容的互動(點擊與曝光),不像 GA 需要撰寫 JavaScript 或安裝第三方外掛。Matomo 的自架版本就已包含所有這些功能,但網站擁有者也可以付費安裝各種外掛,例如漏斗分析、單一登入支援,甚至是一個會記錄包含滑鼠移動在內的完整使用者工作階段、侵入性相當高的外掛

Matomo 以 PHP 撰寫,並以 MySQL 作為資料儲存;只要將檔案複製到已安裝 PHP 與 MySQL 的網頁伺服器上,安裝過程就相當簡單。它採用 GPLv3 授權;支援免費自架(可獨立運作或作為 WordPress 外掛)、兩種相對低價的雲端方案,以及企業版定價。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 年;它功能相對豐富,並擁有多種類型的儀表板。不過,在我們介紹的這些工具中,它是最有「網路新創」感覺的一款,首頁上有精美的宣傳影片,介面中的儀表板也設計得十分俐落。Countly 宣稱其「致力於讓你掌控自己的分析資料」。

[來自 count.ly 的 Countly 介面]

Countly 在企業版(價格相對昂貴,年費自 5000 美元起跳)與自架的社群版之間有著明確的區隔,後者僅限於「基本 Countly 外掛」與「彙整資料」。Countly 的核心原始碼採用 GNU AGPL 授權,伺服器以 Node.js(JavaScript)撰寫,而 Android 與 iOS 的 SDK 則分別以 Java 與 Objective C 撰寫。

Countly 的基本外掛提供了典型的分析指標,例如針對網頁與行動裝置的簡易統計與參照來源,同時也包含一些較進階的功能,像是排程以電子郵件寄送報表,以及記錄 JavaScript 與行動應用程式當機情形。然而,其企業版則帶來了由 Countly 或第三方開發者所製作的各式外掛,提供諸如 HTTP 效能監控、具備目標與完成率的漏斗分析、A/B 測試等進階功能。整體而言,Countly 的社群版對於擁有行動應用程式或從事線上銷售的公司來說,已是相當豐富的方案,日後若有更多需求,也可選擇升級至企業版。

Snowplow

另一套更為通用的事件分析系統是 Snowplow Analytics,成立於 2012 年,並以「企業級事件資料收集平台」作為宣傳標語。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 在前一萬大網站中的使用率接近 3%,因此對於想要完全掌控自身資料管線的大型公司來說,或許是個合理的選擇。

使用網站存取日誌進行分析

上述所有系統都使用以 JavaScript 為基礎的追蹤:這種做法的好處是能提供更豐富的資訊(例如螢幕解析度),而且不需要存取網站日誌。然而,如果能夠取得伺服器存取日誌,或許更適合直接將這些日誌餵入分析軟體。有不少開源工具可以做到這一點:其中有三款都已存在超過 20 年,分別是 AWStatsAnalogWebalizer。AWStats 以 Perl 撰寫,是其中功能最完整且仍在積極維護的一款;Analog 以 Python 撰寫,Webalizer 則以 C 撰寫,但兩者目前都已不再積極維護。

較新的競爭者是採用 MIT 授權的 GoAccess,它最初被設計為一款基於終端機的日誌分析工具,但也擁有外觀不錯的 HTML 檢視模式。GoAccess 以 C 語言撰寫,僅依賴 ncurses,並支援所有常見的存取日誌格式,包括來自 Amazon S3 與 CloudFront 等雲端服務的日誌。

[GoAccess 介面]

GoAccess 絕對是外觀最現代、維護最完善的存取日誌工具,它能產生所有基本指標:依頁面 URL 區分的點擊與訪客數、依作業系統與瀏覽器類型的細分、參照來源網站與 URL 等等。它還有一些通常不會包含在以 JavaScript 為基礎的工具中的指標,例如找不到頁面的 URL、HTTP 狀態碼,以及伺服器回應時間。

GoAccess 的預設模式會輸出靜態報表,但它也有可即時更新資料的選項:在終端機模式下每 200 毫秒更新一次,或在 HTML 模式下每秒更新一次(透過其內建的輕量 WebSocket 伺服器)。GoAccess 的設計似乎經過深思熟慮,提供了增量日誌解析的選項(使用儲存於磁碟的資料結構),並支援使用快速解析程式碼與記憶體內雜湊表來解析大型日誌檔。

這個工具在大多數系統上都很容易安裝,針對所有主流的 Linux 套件管理器皆有預先建置好的套件,macOS 使用者也可透過 Homebrew 安裝。它甚至可以透過 Cygwin 或透過 Windows 10 上的 Linux 子系統在 Windows 上執行。

總結

總體而言,對於那些需要更強大分析功能,或需要類似 GA 但屬於開源的系統的人來說,有幾個不錯的選擇。對於經營電子商務網站,或需要漏斗分析等功能的人來說,Matomo 與 Countly 似乎是不錯的選擇。需要直接掌控事件儲存與建模方式的企業,或許可以考慮安裝 Snowplow。至於那些能夠存取網站日誌,或只是不想使用以 JavaScript 為基礎的追蹤的人來說,GoAccess 在 2020 年似乎是進行網站日誌分析的好選擇。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言