Umami Analytics是一款開源、注重隱私、輕量、可自架的網站流量分析工具。以符合歐盟GDPR隱私權規範、不需要cookie的方式蒐集使用者資料。
Umami即為日文的鮮味之意,官網的口號為「簡單強大的網站分析工具」。
本文首先說明切換的動機,再介紹Umami的特色。分享如何自架Umami,嵌入你的網站。
1. 換成Umami的動機:取代Google Analytics#
我要替換的是Google Analytics (GA),將其換成追蹤程度沒那麼誇張的Umami。
需注意「Google Search Console」跟「Google Analytics」是不同的服務。簡單來說,Google Search Console只會統計你的網站在Google搜尋與熱門關鍵字的關係,讓你知道使用者搜尋什麼關鍵字會導向你的網站。而Google Analytics則是會在你的網站上執行JavaScript指令碼,深入追蹤使用者點了哪些元素、停留時間多長,以便網站管理員研究網頁的成效。
在正式離脫Google Analytics前,先回顧Google統計的資料長什麼樣子。
Google Analytics是Google提供的免費網站統計服務,透過在網頁嵌入一個JavaScript指令碼,並在瀏覽器放置cookie,藉此分析流量,追蹤網站訪客行為。
Google Analytics界面好比作戰指揮室,有超詳細報表,顯示目前有哪些用戶在看你的網站。
例如統計訪客的閱讀時間,分析哪些文章受歡迎,還有預估收益。
還有這個,Google會統計訪客點擊、造訪的事件次數,可用此評估訪客對文章的參與程度。甚至你可以隨機挑某一個使用者,研究他在看文章的時長,做了哪些點擊動作的深入追蹤報告。
這下知道為何Google要推出Google Analytics證照考試了吧,其功能之複雜,追蹤程度非常細膩,連我自己都恐懼的程度;Google Analytics的競爭者Matomo也指出過Google Analytics以第三方cookie追蹤使用者,用以投放廣告的問題。
Google的追蹤功能實在太可怕了,加上我想要盡可能擺脫生活中對Google依賴,在使用幾年後,為此我決定將Google Analytics移除,換成開源的「Umami」服務,資料自己掌握。
然而,The tracker is the trakcer。我不否認這點,不論哪種追蹤器都會研究訪客的行為,差別在於對於隱私的保護程度高低。如果你不喜歡任何形式的追蹤,請還開啟Firefox的嚴格模式 + 安裝uBlock Origin擋掉所有追蹤器。
2. Umami特色功能#
根據Umami官網宣稱,Umami是100%符合歐盟GDPR規範的服務,不使用cookie,也不可能跨站追蹤,減少侵犯使用者隱私。因為沒有cookie,你網站的Cookie Consent Banner也免了!
如下圖面板全覽,Umami蒐集的資料遠遠沒有Google Analytics那樣周全,不過常見的指標都有,並且簡單易懂。
相較於Google Analytics的作戰指揮部界面,Umami就是用相對簡單的圖表呈現網頁上訪客的行為,可以看到目前網站上有多少人在瀏覽網站。
Umami只統計網頁流量、訪客的裝置、國家,以及訪客怎麼到我網站的,沒有使用cookie跨站追蹤。
點選單一網址可單看該網址的流量情況。
我很高興還有人在用Linux與Firefox看我的網站。
「實時」面板尚有即時統計網站訪客活動的功能,匿名記錄訪客行為。基本上只靠這些資訊我很難知道你是誰啦,除非IP地理位置來自北韓。
Umamai亦支援產生公開分享連結,讓其他人觀看你站點的統計資料。
還有,Umami是個很輕量的服務,JavaScript追蹤指令碼不過幾十KB大小而已,幾乎不會影響網頁載入時間。Umami對伺服器硬體的要求也沒有很高。
3. 架設Umami服務的方式#
Umami是採用MIT授權釋出的自由軟體。你可以選擇用官方的服務,或者是自架一個。
使用Umami Cloud#
Umami Cloud是Umami開發者推出的雲端服務,免費版帳戶可以新增3個追蹤網站,統計最多十萬個事件,資料會保留6個月,適合小型網站使用。要長期使用就得付費。
請至Umami Cloud註冊帳號。然後從裡面取得追蹤指令碼就可以嵌入網頁了。
自架Umami#
因為Umami只是分析網站流量的小服務,容量很小,你可以找個便宜的VPS架。只要1核心CPU、1GB RAM就夠用了。
4. 以Docker部署Umami#
- 參考Github說明文件,Umami官方有提供docker-compose範本,包含Umami本體與資料庫服務。從Github取得範本:
git clone https://github.com/umami-software/umami.git
cd umami2 編輯.env環境變數,輸入你的網域。這裡我是使用一個子網域存取。
echo "DATABASE_URL=umami.exmaple.com" >> .env- 部署Docker容器
sudo docker compose up -d用瀏覽器開啟
https://網域:3000進入Umami首頁。預設帳號是admin,密碼是umami。
登入後點選右上角大頭貼,至Accounts更改admin密碼。

在Profile頁面切換語言為繁體中文。

5. Nginx反向代理範例#
這裡我是使用一個子網域umami.exmaple.com存取Umami後臺。
Nginx設定檔範本如下:
server {
server_name 子網域;
location / {
proxy_pass http://127.0.0.1:3000; # Docker通訊埠
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
} 6. 在你的網站嵌入Umami追蹤指令碼#
Umami追蹤指令碼就是一個JavaScript檔案,要讓它在所有網頁載入才能統計資料。這裡以靜態網站框架Hugo嵌入Umami追蹤指令碼為例。
登入Umami後臺,點選新增網站,輸入你要追蹤的網站域名

之後點選複製追蹤指令碼,就是一段JavaScript。

視你使用的主題而定,有些主題支援Umami,只要在
config.toml填入網址就可以了。如果沒有,手動編輯Hugo網站主目錄下的themes/主題/layouts/partials/head.html檔案。在<head>下面加入Umami的指令碼:
<head>
<script async defer data-website-id="0000000000" src="umami.example.com/script.js"></script>
</head>接著部署你的Hugo網頁。接著便是從Hugo移除Google Analytics了。視安裝的主題而定,大部份只要在Hugo網站主目錄的
config.toml取消Google Analytics的設定即可。網站甫經更新,Umami就會開始統計網站訪客行為。
7. 偽裝Umami的JavaScript指令碼名稱#
Umami的JavaScript指令碼預設名稱為script.js,會被一些強調隱私的防追蹤工具擋掉,如Firefox和uBlock Origin,畢竟追蹤器不論善意惡意都是會追蹤使用者行為嘛。需要改JavaScript指令碼名稱規避。
在docker-compose設定環境變數TRACKER_SCRIPT_NAME。舉例來說,把script.js改為「阿卡夏記錄」:
services:
umami:
image: ghcr.io/umami-software/umami:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
APP_SECRET: replace-me-with-a-random-string
TRACKER_SCRIPT_NAME: "akashic.js"這樣嵌入網頁的script.js也要改掉。
總結#
我會試著將Umami作為長期追蹤網站成效的工具。
嚴格來說,我並沒有完全脫離Google服務,Google Search Console的我並沒有將其移除,因為那個不會像Google Analytics主動追蹤訪客在我站上的行為。


