このブログを始めてもう2年ちょっと。
たまにPV数が知りたくなるのですが、解析ツールを入れていないためにいつも「Search Console」のクリック数をもとに予測するという面倒なことをしていました。
ただ、クリック数の何倍がPV数になるのか見当もつかなかったので、大体クリック数の10%増しくらいだろうと適当に考えていました。 「さすがにこのままじゃだめだな」と思い、ついにアナリティクスツールを導入することを決意!
一番有名でお手軽なのは「Google Analytics」だと思いますが、あれはクッキーを使用するのでポップアップを出す必要があるのがとっても嫌です。
そこで何かいいものはないかと Awesome-Selfhosted をのぞいてみると、vinceというツールを見つけました。 Go製で消費リソースも少なそうだし、ブログから読み込むスクリプトのサイズが1kB以下らしいので「PageSpeed Insights」への影響も小さそうです。 収集情報も最小限なのでプライバシーポリシーへの追記もちょっとで済みそう!
というわけで、早速試してみました!
セットアップ
services:
vince:
image: ghcr.io/vinceanalytics/vince
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/vince-data
environment:
- VINCE_ADMIN_NAME=admin
- VINCE_ADMIN_PASSWORD=password
- VINCE_DOMAINS=blog.example.com
command: serve
こんな感じのdocker-compose.ymlをつくり、
mkdir data docker compose up -d
これらのコマンドを実行すると立ち上がります。
サイト訪問者のアクセス情報を収集する都合上、当然ながらアナリティクス用のサーバーはインターネットからアクセスできるようにしなければなりません。
ぼくはおうちサーバー上でvinceをホストしているので、公開には「Cloudflare Tunnel」をつかっています。 自宅IPを晒す必要がなく、外部からアクセス可能な範囲も限定できるので安心です。
おっと、ブログの方もいじらないといけませんね。
<script defer data-domain="blog.example.com" src="https://analytics.example.com/js/script.js"></script>
headタグ内にこれを追加し、
## 収集情報と利用目的 当サイトでは個人を特定できる情報は収集せず、匿名化された利用状況のみを分析・改善に利用します。 ## 第三者提供 収集情報は匿名化された統計データとして扱い、第三者に提供しません。 ## データ保存とセキュリティ 情報は匿名化された状態で保存され、HTTPSで安全に送信されます。
プライバシーポリシーにはこんな感じのことを書いておきます。
使用感

管理画面はこんな感じ
訪問者数やPV数だけでなく、使用OSやブラウザ、地域、流入元が確認できます。 収集する情報が少ないこともあり、シンプルに見やすくまとまっている印象です。
気になるところは、タイムゾーンの変更が反映されずUTCをもとに表示されるとこ ですかね。 とはいえ、よっぽど細かい解析をしたいとかでなければ問題ないと思いますけど。
リソース消費量
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 2cc4e602a876 blog_vince 0.05% 50.91MiB / 3.88GiB 1.28% 570kB / 23.4MB 1.2GB / 0B 13
気になるリソース消費はこんな感じ
まぁ… 許容範囲かな…
Web解析ツールを導入したことで、1日あたりのPV数が150くらいあることが発覚しました! 「だいたい75PV/日くらいかな〜」と予測していたので、2倍近くあってびっくりしています。 すごくうれしいです!!
…ただ、それと同時に 読まれている記事と読んで欲しい記事がぜんぜん違う ということにも気づいてしまいました。 悲しいよ〜
もっと ものづくり記事 読んでよ〜
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓

