前言
談到網頁流量分析,第一個想到的一定是 Google Analytics,非常好用,但同時也有隱私考量,加上部分使用者會使用擋廣告外掛如 AdBlock、uBlock 來阻擋各種廣告與追蹤,使得 Google Analytics 上面的數據沒有那麼準確。
會寫這篇文章,有一部分是因為 Medium 在今年(2020)四月調整了其 SEO,造成不少人的訪問數大幅下降,筆者的訪問數從每月 1 千掉到每月 16…,雖然上面文章不多也沒認真經營,但還是有點小難過。
此篇文章採用 NGINX,筆者環境為 Ubuntu 20.04 與 Raspbian 10(Raspberry Pi 3),在 Firefox、Brave、Safari、Edge 中皆成功繞過追蹤器阻擋,且都是在有另外安裝擋廣告外掛的情況下。
基本安裝設定
套件安裝
安裝 NGINX 網頁伺服器
sudo apt install nginx
安裝 PHP 與相關套件
sudo apt install php-cli php-fpm php-common php-curl php-gd php-xml php-mbstring php-mysql
安裝 MariaDB 資料庫
sudo apt install mariadb-server
下載 Matomo
cd /var/www
sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip
sudo rm matomo.zip
sudo chown -R www-data:www-data /var/www/matomo
設定
NGINX
查看 PHP 版本
php -v
如果顯示 PHP 7.4.3
,那就是 7.4
版
建立 /etc/nginx/sites-available/matomo.conf
,並貼上以下內容,並注意:
- 將
[example.com](http://example.com)
改成你的域名 - 將
php7.4
改成你的版本
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name example.com;
root /var/www/matomo/;
index index.php;
location ~ ^/(index|matomo|piwik|js/index).php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location = /plugins/HeatmapSessionRecording/configs.php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~* ^.+\.php$ {
deny all;
return 403;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /(config|tmp|core|lang) {
deny all;
return 403;
}
location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
allow all;
}
location ~ /(libs|vendor|plugins|misc/user) {
deny all;
return 403;
}
}
放入啟用資料夾
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/matomo.conf .
檢查設定檔是否有問題
sudo nginx -t
套用設定檔
sudo nginx -s reload
MariaDB
如果是第一次安裝,照此設定,否則可以跳到建立資料庫
套用安全設定:
sudo mysql_secure_installation
依照下面指示設定
Would you like to setup VALIDATE PASSWORD plugin?N
New password:請自行輸入新密碼
Re-enter new password:再輸入一次新密碼
Remove anonymous users? [Y/n]Y
Disallow root login remotely? [Y/n]Y
Remove test database and access to it? [Y/n]Y
Reload privilege tables now? [Y/n]Y
進入到 CLI(Enter 後請輸入密碼)
sudo mysql -u root -p
輸入下面 SQL 指令建立新資料庫
CREATE DATABASE matomo;
GRANT ALL ON matomo.* TO 'matomo' IDENTIFIED BY '請自行輸入新密碼';
FLUSH PRIVILEGES;
exit
造訪網站
設定好域名,第一次造訪時會要求填寫資料庫相關設定,照著填就好。
繞過阻擋器
請尊重使用者隱私,在部分地區未告知使用者即追蹤是違法的!
不理會 DNT
DNT(Do Not Track)為使用者的瀏覽器發出的訊息,告訴伺服器不要追蹤這個連線。
Matomo 預設遵守這項請求,若要停用可到:
- Matomo 設定頁面(右上角齒輪)
- 左側 [隱私]
- 左側 [使用者選擇退出]
- 最下面 [支援不追蹤(Do Not Track)設定]
- [停用不追蹤]
設定網頁追蹤器
將以下 JavaScript 貼到你的網站(請不要使用 Matomo 原本給的追蹤程式),並且:
- 將
*.mysite.tw
改成你的域名 - 將
matomo.mysite.tw
改成你的 matomo 網址 - 將
setSiteId
改成你 matomo ID- 可在 設定(右上角齒輪) > [網站] > [管理] 內看到 ID 數字
<script type="text/javascript">
// matomo
var _paq = window._paq || [];
_paq.push(["setRequestMethod", "POST"]);
_paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
_paq.push(["setCookieDomain", "*.mysite.tw"]);
_paq.push(["setDomains", ["*.mysite.tw"]]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
_paq.push(['enableHeartBeatTimer']);
if (document.referrer) {
_paq.push(['setReferrerUrl', document.referrer]);
}
(function() {
var u = "//matomo.mysite.tw/";
_paq.push(['setRequestMethod', 'POST']);
_paq.push(['setTrackerUrl', u + 'js/']);
_paq.push(['setSiteId', '2']);
var d = document,
g = d.createElement('script'),
s = d.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.async = true;
g.defer = true;
g.src = u + 'js/';
s.parentNode.insertBefore(g, s);
})();
</script>
實用功能
- 排除自己的 IP
- 設定 > 網站 > 設定 > 全域排除的 IP 列表
- 排除爬蟲、機器人
- 設定 > 平台 > 市集 > Bot Tracker
- 找出 IP 位址相對應精確位置
- 設定 > 平台 > 市集 > IP 2 Location
- 找出使用者從哪邊得知網站
- 設定 > 平台 > 市集 > Referrers Manager
注意事項
部分擋廣告外掛會擋掉 matomo
相關檔名。
筆者在寫這篇文章時,圖片資料夾命名為 matomo/
,結果圖就被 uBlock 擋掉…。
設定 crontab
若太久沒登入頁面查看,有些資料太久沒彙整會造成登入當下 CPU 使用率大幅上升,解法是設定好 crontab:
在 /etc/cron.d/matomo-archive
中
MAILTO="[email protected]"
5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://matamo.example.com/
參考文章
- Medium 文章在 Google 上消失了?關於 Medium 的 SEO 新政策
- How to Install Matomo Web Analytics on Ubuntu 18.04 LTS
- SETTING UP MATOMO IN SUCH A WAY TO BYPASS ADBLOCKERS
comments powered by Disqus