セルフホスト型アクセス解析「Tenyen Analytics」v0.8.1公開

Google Analyticsは、Webサイト全体のアクセス傾向やコンバージョンを分析するには非常に強力や。

ただ、個人サイトや技術ブログを運営していると、もっと素早く、もっと具体的に確認したい情報もある。

「どの検索サイトやSNSから来たんやろ?」
「Blueskyへ投稿した記事は、実際にどれくらい読まれたんやろ?」
「ひとつの訪問で、どの記事をどんな順番で読み、どのリンクを押したんやろ?」
「企業、大学、研究機関などのネットワークから、どの記事が読まれたんやろ?」
「気になった組織や訪問者へ、自分用の名前やメモを残せへんやろか?」
「古い生ログを整理しながら、長期間のアクセス傾向は残せへんやろか?」
「GeoLite2の更新を毎回手作業でやらずに済まされへんやろか?」

巨大なマーケティング基盤を構築したいわけではない。

管理画面を開いたときに、

  • どの記事が読まれたか
  • どの国・地域から来たか
  • どのASN・ネットワーク組織に属するIPか
  • どの検索エンジン・SNS・外部サイトから流入したか
  • どのUTMキャンペーンから訪問したか
  • ひとつのセッションで、どのページをどの順番で閲覧したか
  • どの外部リンクやダウンロードが利用されたか
  • 滞在時間やスクロール率
  • 人間によるアクセスかBotか
  • どの組織や訪問者を継続して確認したいか
  • 自分が付けたラベル・メモ・タグで情報を整理できるか
  • 解析対象から除外したいアクセスを細かく指定できるか
  • 必要な解析結果をCSV・JSONとして取り出せるか
  • 生ログの保存期間やデータベース容量を管理できるか

といった情報を、自分のWebサーバー内で確認・整理したい。

そんな目的で開発しているのが、セルフホスト型アクセス解析ツール「Tenyen Analytics」や。

現在は、

  • WordPress向けのTenyen Analytics for WordPress
  • 通常のPHPサイト向けのTenyen Analytics Native

の2種類をGitHubで公開しているで。

  1. Tenyen Analyticsとは
  2. WordPress版・Native版ともにv0.8.1へ更新
  3. v0.8系:GeoLite2 City/ASNの自動更新
    1. v0.8.1でGeoLite2取得処理を改善
  4. v0.7.1:日次集計と長期間解析
    1. 生ログ削除前に集計状態を確認
  5. v0.7.0:CSV/JSONエクスポート
    1. IPアドレスの出力方法
  6. v0.7.0:ログ保持期間とデータクリーンアップ
    1. ストレージ診断
  7. v0.6.3:収集・分析除外ルール
    1. 収集除外と分析除外
    2. 主な除外条件
  8. v0.6.2:管理者メタデータとKnowledge機能
    1. 解析対象へ管理者独自の情報を追加
    2. 複数の解析対象へラベル・メモ・タグを付与
    3. 再利用可能なタグ
    4. 組織・ASNウォッチリスト
    5. ASN・組織情報についての注意
    6. 保存フィルター・保存ビュー
  9. v0.6.1:流入・UTM・イベント分析
    1. 流入チャネルの分類
    2. UTMキャンペーン分析
    3. イベント分析
    4. 公開JavaScriptカスタムイベントAPI
    5. フォーム内容は収集しない
    6. セッション経路へイベントを統合
  10. v0.6.0:セッション・匿名訪問者分析
    1. セッション一覧
    2. 匿名訪問者の詳細
  11. 現在実装済みの主な機能
    1. 基本アクセス解析
    2. イベント・行動分析
    3. 管理者ラベル・組織インテリジェンス
    4. 除外・データ品質管理
    5. IP・地域・ASN解析
    6. エクスポート・データライフサイクル
    7. グラフ・集計
  12. THK Analyticsから着想を得たプロジェクト
  13. Tenyen Analytics for WordPress
  14. Tenyen Analytics Native
    1. ブラウザで導入できるGUIインストーラー
    2. 既存環境を保ったアップグレード
  15. GeoLite2データベース
  16. プライバシーとデータ保護
  17. GitHub
    1. Tenyen Analytics for WordPress
    2. Tenyen Analytics Native
  18. Powered by 10yendama.com
  19. 今後の予定
    1. 関連

Tenyen Analyticsとは

Tenyen Analyticsは、アクセス解析データを導入先のWebサーバーとデータベースへ保存し、管理者自身の環境で分析するツールや。

外部のアクセス解析サービスへ、解析目的だけで計測データを全面的に送信する構成ではない。

Google Analyticsの完全な代替やMatomoの縮小版を目指すのではなく、

軽量なアクセスログ解析+組織インテリジェンス

を製品の中心に据えている。

特に、

「どの組織のネットワークから、どの記事が、どのように読まれたか」

を確認し、その発見へ管理者自身の意味付けを加えられる解析ツールとして育てているで。

v0.8.1現在では、アクセスを記録して眺めるだけでなく、収集対象の制御、データの保存期間管理、エクスポート、日次集計、GeoLite2データベースの状態管理まで含めた、セルフホスト解析環境としての運用機能も強化している。

WordPress版・Native版ともにv0.8.1へ更新

WordPress版とNative版の両方を、v0.8.1へアップグレードした。

v0.6.0以降の主な進化は、次のようになる。

  • v0.6.0:セッションと匿名訪問者を軸に、アクセスを時系列の「線」として分析
  • v0.6.1:流入チャネル、UTM、クリック、ダウンロード、404、カスタムイベントをセッションへ統合
  • v0.6.2:組織ウォッチリスト、管理者ラベル、メモ、タグ、保存ビューを追加
  • v0.6.3:IP、URI、Bot、地域、組織などを対象とした収集・分析除外ルールを追加
  • v0.7.0:CSV/JSONエクスポート、ログ保持期間、分割クリーンアップ、ストレージ診断を追加
  • v0.7.1:日次集計と長期間レポート向けの集計データ利用を追加
  • v0.8.0:GeoLite2 City/ASNの状態確認、週次自動更新、手動更新機能を追加
  • v0.8.1:MaxMindから配布先へリダイレクトされるGeoLite2取得処理を安全化・安定化

初期のTenyen Analyticsは「個々のアクセスを見やすく確認する解析ツール」やった。

そこからセッション、流入、イベント、組織情報、管理者メタデータを追加し、現在では収集・分析・整理・保存・エクスポート・データライフサイクルまで扱えるようになってきたで。

v0.8系:GeoLite2 City/ASNの自動更新

Tenyen Analyticsでは、アクセス元の国・地域・ASN・ネットワーク組織を判定するために、MaxMindのGeoLite2データベースを利用できる。

GeoLite2-City.mmdb
GeoLite2-ASN.mmdb

従来は、利用者がMMDBファイルを手動で取得し、WordPress版またはNative版へ配置・アップロードする必要があった。

v0.8.0からは、MaxMindのアカウント情報を設定することで、GeoLite2 CityとASNを個別に管理できるようになった。

  • GeoLite2 Cityの状態確認
  • GeoLite2 ASNの状態確認
  • 週次の自動更新
  • 管理画面からの手動更新
  • 最終更新日時
  • 最終試行日時
  • 次回更新予定
  • ファイルサイズ
  • MMDBビルド日時
  • 破損・種類不一致・期限超過などの状態診断

CityとASNは独立して扱われるため、一方の更新に失敗しても、もう一方の有効なデータベースへ影響しない。

更新に失敗した場合も、現在利用中の正常なMMDBをすぐ破棄せず、検証済みの新しいデータベースだけを安全に切り替える設計としている。

v0.8.1でGeoLite2取得処理を改善

MaxMindのGeoLite2ダウンロードでは、認証されたURLから実際の配布ファイルへHTTPリダイレクトされる場合がある。

v0.8.1では、この配布方式に合わせて取得処理を修正した。

認証情報を付けたまま外部のオブジェクトストレージへ追従するのではなく、許可されたHTTPS配布先だけを検証し、実ファイルの取得時にはMaxMindのBasic認証情報を転送しない。

また、認証失敗、製品利用権限不足、レート制限、その他のHTTPエラーを区別して扱えるようにしている。

v0.7.1:日次集計と長期間解析

アクセスログが増えてくると、毎回すべての生イベントから長期間の統計を計算するのは効率が悪くなる。

v0.7.1では、日ごとの集計データを作成し、長期間のレポートでは生ログと日次集計を使い分けられるようにした。

日次集計の対象には、次のような情報が含まれる。

  • ページビュー
  • 推定訪問者
  • セッション
  • 直帰
  • 入口・出口
  • イベント
  • Human/Bot
  • 滞在時間・エンゲージメント
  • スクロール率
  • コンテンツ
  • 流入チャネル
  • 参照元
  • キャンペーン
  • ASN・組織
  • イベント種別

詳細なセッション経路、匿名訪問者履歴、アクセス履歴などは引き続き生ログを利用する。

一方、完了済みの日付については集計データを利用することで、過去の大量ログを毎回すべて走査せずに集計結果を表示できる。

生ログ削除前に集計状態を確認

v0.7.1では、生ログを削除する前に、対象期間の日次集計が正常に作成されているか確認する仕組みも追加した。

集計が不足している期間については、必要な日付や範囲を再構築できる。

これにより、

詳細ログは一定期間だけ保持し、古い期間は統計だけ残す

といった運用が可能になった。

v0.7.0:CSV/JSONエクスポート

解析結果をTenyen Analyticsの管理画面だけで見るのではなく、外部で加工・保存したい場合のために、CSVとJSONのエクスポートへ対応した。

主な対象は、

  • アクセスログ
  • セッション
  • コンテンツ
  • 組織
  • 流入元
  • キャンペーン
  • イベント

など。

解析画面で利用している検索条件や除外条件などを反映した状態で出力できる。

IPアドレスの出力方法

生IPアドレスを扱うデータについては、出力方法を選択できる。

  • IPアドレスを出力しない
  • マスクしたIPアドレスを出力
  • 管理者が明示的に確認した場合のみ復号済みIPを出力

CSVでは、セル内容が表計算ソフトの数式として誤認される問題への対策も行っている。

v0.7.0:ログ保持期間とデータクリーンアップ

セルフホスト型アクセス解析では、長期間運用するとアクセスログが増え続ける。

v0.7.0では、生ログの保持期間を管理できるようになった。

  • 無期限
  • 30日
  • 90日
  • 180日
  • 365日
  • 任意の日数

などを設定できる。

大量データを一度のSQLで削除するのではなく、一定件数ごとに分割して削除し、途中から再開できる構成としている。

削除前には対象件数を確認でき、実際に削除を開始する前に影響範囲を把握できる。

ストレージ診断

管理画面では、解析データの規模も確認できる。

  • データベース容量
  • イベントテーブル容量
  • イベント総数
  • セッション数
  • 最古・最新のアクセス日時
  • 月別ログ件数
  • 現在の保持期間
  • クリーンアップ状態

などを確認しながら、セルフホスト環境の容量を管理できる。

v0.6.3:収集・分析除外ルール

アクセス解析では、すべてのアクセスを同じように記録・分析したいとは限らない。

例えば、

  • 自分自身のアクセス
  • 管理者アクセス
  • 特定のBot
  • 特定URI
  • 特定ネットワーク
  • 特定の国・地域
  • 特定ASN・組織

などを除外したい場合がある。

v0.6.3では、こうしたアクセスを対象とした除外ルールを追加した。

収集除外と分析除外

除外には、大きく2種類ある。

  • 収集除外:条件に一致したアクセスを新しく収集しない
  • 分析除外:既に保存されているデータは残したまま、レポートから除外する

両方を組み合わせたルールも設定できる。

分析除外では元データを削除しないため、あとからルールを変更して再び解析対象へ戻すこともできる。

主な除外条件

  • IPv4/IPv6
  • CIDR
  • URIパス
  • Native版管理者セッション
  • Bot
  • 国・地域
  • ASN・組織
  • ブラウザ・OS・端末
  • 参照元ドメイン
  • UTM情報

複数の条件へ一致した場合も、どのルールが一致し、どの優先順位で最終的な処理が決まったか確認できる診断機能を用意している。

v0.6.2:管理者メタデータとKnowledge機能

解析対象へ管理者独自の情報を追加

既存のアクセス解析データへ、管理者専用の情報を追加できる。

  • 表示名・別名
  • メモ
  • タグ
  • 組織のウォッチ状態

これらは、収集した生データそのものを書き換える機能ではない。

例えば、ASNへ登録された元の組織名は保持したまま、管理者が分かりやすい別名を追加できる。

元の組織名:
Research Organization Example

管理者の表示名:
研究機関・Linux関連記事

タグ:
research
linux
repeat-access

メモ:
Ubuntu関連記事への複数回アクセスを確認

別名を付けても、ASN番号、GeoLite2の組織名、組織分類、アクセス履歴などの元情報は上書きされない。

複数の解析対象へラベル・メモ・タグを付与

管理者による意味付けは、複数の解析対象へ適用できる。

  • ASN・ネットワーク組織
  • 匿名訪問者
  • 記事・固定ページ・URL
  • 参照元ドメイン
  • UTMキャンペーン
  • 外部リンク先

例えば、匿名訪問者へ「Linux記事を継続閲覧」、キャンペーンへ「Bluesky告知」、外部リンク先へ「GitHubリポジトリ」といった表示名やタグを付けられる。

管理者メモはプレーンテキストとして保存し、公開ページや解析用JavaScriptへ出力しない。

再利用可能なタグ

タグは、一度作成したものを複数の対象で再利用できる。

important
research
education
linux
repeat-visitor
campaign
download

タグ名による検索や絞り込みにも対応し、管理者が独自に作った分類で解析データを整理できる。

組織・ASNウォッチリスト

継続して確認したいASN・ネットワーク組織を、ウォッチリストへ登録できる。

  • ウォッチ中の表示
  • 管理者別名
  • メモ
  • タグ
  • 最近のアクセス
  • セッションや閲覧ページ

などを組み合わせて確認できる。

組織一覧や関連する解析画面からウォッチ状態を切り替え、ウォッチ中の組織だけに絞り込むこともできる。

ASN・組織情報についての注意

GeoLite2 ASNから取得できるのは、接続元IPアドレスが登録されているASN番号とネットワーク組織名や。

特定の組織名が表示されたとしても、

  • その組織の職員本人が閲覧した
  • その組織が公式にアクセスした
  • 閲覧者の勤務先・所属先が確定した
  • 一つのIPアドレスが一人の人物を表す

という意味ではない。

組織ウォッチリストや管理者ラベルは、アクセス元ネットワークを調査・整理するための補助情報として利用してな。

保存フィルター・保存ビュー

アクセス履歴、セッション、コンテンツ、組織、流入元、キャンペーン、イベントなどで設定した検索条件を、名前付きの保存ビューとして再利用できる。

例えば、

  • 日本の大学・研究機関からのHumanアクセス
  • Blueskyキャンペーンから流入したセッション
  • Linux記事から発生したダウンロード
  • ウォッチ中の組織によるアクセス
  • 404を発生させたBot
  • 特定タグを付けた匿名訪問者

といった条件を保存できる。

保存ビューには、画面に応じて検索条件、期間、Human/Bot、並び順、表示件数、表示列、タグ、ウォッチ状態などを保持できる。

v0.6.1:流入・UTM・イベント分析

流入チャネルの分類

参照元URLとUTM情報をもとに、アクセスを次のチャネルへ分類する。

  • Direct
  • Organic Search
  • Social
  • Referral
  • Internal
  • Campaign
  • Unknown

UTMキャンペーン分析

次の標準的なUTMパラメーターを解析できる。

utm_source
utm_medium
utm_campaign
utm_content
utm_term

例えば、Blueskyへ記事を投稿するときに、次のようなURLを使う。

https://example.com/article/
  ?utm_source=bluesky
  &utm_medium=social
  &utm_campaign=tenyen_release

セッション数、推定訪問者数、ページビュー数、直帰率、推定エンゲージメント時間、入口ページ、人気コンテンツ、イベントなどをキャンペーン別に確認できる。

イベント分析

ページビュー以外の操作もイベントとして記録・分析できる。

  • 外部リンクのクリック
  • ファイルのダウンロード
  • 設定に応じた内部リンククリック
  • 明示的に指定したボタンクリック
  • 明示的に指定したフォーム送信
  • 404ページ
  • 任意のカスタムイベント

公開JavaScriptカスタムイベントAPI

サイト固有の操作も、任意のカスタムイベントとして送信できる。

window.TenyenAnalytics.trackEvent('radio_play', {
  station: 'example-station',
  server: 'primary'
});

window.TenyenAnalytics.trackEvent('stream_server_change', {
  station: 'example-station',
  server: 'backup'
});

実際の呼び出し名や導入方法は、利用している版のREADMEを確認してな。

フォーム内容は収集しない

フォーム送信イベントでは、フォームの識別子と表示ページだけを記録する。

氏名、メールアドレス、問い合わせ本文、パスワード、非表示フィールド、決済情報などの入力値は収集しない。

セッション経路へイベントを統合

Organic Search
  ↓
Ubuntu高速化の記事
滞在 2分18秒/スクロール 82%
  ↓
Linux Dolbyの記事
滞在 1分04秒/スクロール 56%
  ↓
外部リンクをクリック
  ↓
ファイルをダウンロード
  ↓
離脱

ページビュー、engagement、クリック、ダウンロード、404、カスタムイベントを、ひとつの訪問の流れとして確認できる。

v0.6.0:セッション・匿名訪問者分析

v0.6.0では、個々のアクセスをセッションと匿名訪問者の単位へまとめ、訪問行動を時系列で確認できるようにした。

セッション一覧

  • セッション開始日時
  • 最終アクセス日時
  • ページビュー数
  • 推定滞在時間
  • 入口ページ
  • 離脱ページ
  • 参照元
  • 国・地域
  • ASN・登録組織名
  • ブラウザ・OS・端末
  • Human/Bot判定

匿名訪問者の詳細

  • 初回訪問
  • 最終訪問
  • セッション数
  • 総ページビュー数
  • 主な入口ページ
  • よく閲覧しているコンテンツ
  • 主な参照元
  • 最近利用したブラウザ・OS・端末
  • 過去のセッション一覧

匿名訪問者IDは、ブラウザ内へ保存された識別子を利用した推定や。

Cookieやブラウザストレージの削除、別ブラウザ・別端末の利用などによって変化するため、同一人物であることを証明するものではない。

現在実装済みの主な機能

基本アクセス解析

  • ページビュー
  • 推定ユニーク訪問者数
  • セッション数
  • 滞在時間
  • スクロール率
  • 参照元URL・参照元ドメイン
  • 流入チャネル
  • UTMキャンペーン
  • 記事・固定ページ別アクセス
  • IPv4/IPv6対応
  • User-Agent解析
  • ブラウザ・OS・端末判定

イベント・行動分析

  • 時系列のセッション経路
  • 匿名訪問者ごとの過去セッション
  • 外部リンククリック
  • ダウンロード
  • 内部リンク・ボタン・フォームの明示的なイベント
  • 404イベント
  • 任意のカスタムイベント
  • イベント別ランキングと絞り込み
  • リンク先ドメイン・URL分析
  • 発生元ページ分析

管理者ラベル・組織インテリジェンス

  • ASN・組織のウォッチリスト
  • 組織・匿名訪問者・コンテンツへの管理者別名
  • 参照元・キャンペーン・外部リンク先への管理者メタデータ
  • プレーンテキストの管理者メモ
  • 再利用可能なタグ
  • タグ・別名・ウォッチ状態による検索と絞り込み
  • 保存フィルター・保存ビュー
  • ピン留めと既定ビュー
  • 管理者メタデータの集中管理

除外・データ品質管理

  • IPv4/IPv6・CIDR除外
  • URI除外
  • Bot除外
  • 国・地域除外
  • ASN・組織除外
  • ブラウザ・OS・端末条件
  • 参照元・UTM条件
  • 収集除外と分析除外
  • ルール一致・優先順位診断

IP・地域・ASN解析

  • 生IPアドレスの暗号化保存
  • HMACを利用したIPアドレス完全一致検索
  • GeoLite2 Cityによる国・地域判定
  • GeoLite2 ASNによるASN番号取得
  • ASN登録組織名の表示
  • 通信事業者、企業、大学、研究機関、クラウド、Proxyなどの分類
  • GeoLite2 City/ASNの状態診断
  • GeoLite2 City/ASNの自動更新
  • GeoLite2 City/ASNの手動更新

エクスポート・データライフサイクル

  • CSVエクスポート
  • JSONエクスポート
  • IP省略・マスク・確認付き復号出力
  • ログ保持期間設定
  • 削除対象プレビュー
  • 分割・再開可能なクリーンアップ
  • データベース・ログ容量診断
  • 日次集計
  • 指定日・期間の集計再構築

グラフ・集計

  • 指定期間のPV推移
  • 推定訪問者数の推移
  • セッション推移
  • 平均滞在時間
  • 平均スクロール率
  • ブラウザ・OS・端末別グラフ
  • 国別グラフ
  • ASN・組織別グラフ
  • 人気記事ランキング
  • 注目組織ランキング
  • 流入チャネル・参照元ドメイン分析
  • キャンペーン分析
  • イベント分析
  • Human/Botの分析対象切り替え

THK Analyticsから着想を得たプロジェクト

俺は以前、セルフホスト型アクセス解析のTHK Analyticsを利用していた。

THK Analyticsには、訪問者別のログ、閲覧ページの順序、入口・出口、クリック情報などを、管理画面から直感的に確認できる良さがあった。

Tenyen Analyticsは、その使いやすい訪問行動分析の思想から着想を得ている。

ただし、THK Analyticsのソースコードをそのまま移植したものではない。

Tenyen Analyticsでは、独自のイベント構造と管理画面を基礎に、現代のPHP・WordPress環境向けとして実装している。

  • WordPress版とNative PHP版
  • 非同期管理画面
  • セッションと匿名訪問者による行動分析
  • 滞在時間とスクロール率
  • 流入チャネルとUTM
  • リンク・ダウンロード・カスタムイベント
  • GeoLite2 City/ASN
  • ASN・ネットワーク組織の分類
  • 組織ウォッチリスト
  • 管理者別名・メモ・タグ
  • 保存フィルター・保存ビュー
  • 収集・分析除外ルール
  • CSV/JSONエクスポート
  • ログ保持期間と日次集計
  • GeoLite2自動更新
  • Human/Bot判定
  • 生IPアドレスの暗号化保存
  • HMACによるIP完全一致検索
  • 英語/日本語UIとドキュメント
  • GitHubによるソースコードとリリース管理

Tenyen Analytics for WordPress

WordPress版は、プラグインを有効化すると解析用JavaScriptが自動的に読み込まれる。

一般的なWordPressテーマであれば、テーマファイルへ解析タグを手作業で追加する必要はない。

WordPress側のログイン状態や404判定など、WordPress固有の情報も利用できる。

管理画面は機能別のサブメニューへ分割し、一覧・詳細・フィルター・ページングを非同期で操作できる。

保存ビューはWordPress管理者ごとに管理し、他の管理者の非公開ビューを読み書きしない構成としている。

WordPress標準の管理ダッシュボードにも、Tenyen Analyticsの概要ウィジェットを追加しているで。

Tenyen Analytics Native

WordPressを使っていないPHPサイト向けには、Native版を用意している。

解析対象サイトへ専用JavaScriptを読み込み、PHPの収集エンドポイントへアクセス情報やイベントを送信する。

ブラウザで導入できるGUIインストーラー

ZIPを展開してサーバーへアップロードし、ブラウザでインストーラーを開くと、次の設定を画面に従って進められる。

  • PHP動作環境の確認
  • 書き込み権限の確認
  • データベース接続テスト
  • サイトURL・公開URLの設定
  • 管理画面アカウントの作成
  • 秘密鍵・サイトトークンの生成
  • GeoLite2 City/ASNのアップロード
  • データベーステーブルの作成
  • 埋め込みコードの表示

既存環境を保ったアップグレード

アップグレード時には、利用者が所有する設定・データを保護する設計としている。

config.php
data/
storage/
storage/installed.lock
管理者アカウント
暗号鍵
サイトトークン
GeoLite2データベース
既存のアクセスログ
セッション
イベント
管理者メタデータ
除外ルール
集計状態

GeoLite2データベース

国・地域・ASN情報の解析には、MaxMindが提供するGeoLite2データベースを使用する。

GeoLite2-City.mmdb
GeoLite2-ASN.mmdb

GeoLite2を利用するには、MaxMindアカウントの作成と利用条件への同意が必要や。

v0.8系からは、従来の手動配置・アップロードに加えて、自動更新機能も利用できる。

プライバシーとデータ保護

Tenyen Analyticsは、IPアドレス、閲覧ページ、参照元、UTM情報、ブラウザ情報、セッション・匿名訪問者識別子、設定されたイベントなどを、導入先サイトのデータベースへ保存する。

生IPアドレスは暗号化して保存し、完全一致検索用にはHMACによるハッシュ値を利用する。

管理者が追加した別名、メモ、タグ、保存ビューは、導入先データベース内の管理者専用情報として扱い、公開サイトの解析用JavaScriptへ送信しない。

カスタムイベントには容量制限と形式チェックを設け、フォーム入力値やDOM全体を収集しない設計としている。

生IPアドレスを含むエクスポートについても、既定ではIPを出力せず、必要な場合だけマスクまたは管理者確認付きの復号出力を利用する。

導入するサイトの管理者は、適用される法令やサイトのプライバシーポリシーに従って運用する必要がある。

導入時には、次の内容をプライバシーポリシーへ明記してな。

  • アクセス情報やイベントを収集していること
  • 収集目的
  • 保存する情報
  • 保存期間
  • 第三者提供や外部送信の有無
  • 問い合わせ方法

GitHub

Tenyen Analytics for WordPress

Tenyen Analytics Native

両版ともライセンスはGPL-2.0-or-later

ソースコード、英語版/日本語版README、英語版/日本語版CHANGELOG、配布ZIP、SHA-256チェックサムなどをGitHubで公開している。

不具合報告、改善案、Issue、Pull Requestも歓迎やで^^

Powered by 10yendama.com

Tenyen Analytics v0.8.1
Powered by 10yendama.com
© 2026 10yendama.com

WordPress版では管理画面内だけにクレジットを表示し、公開サイト側へリンクを自動挿入することはない。

今後の予定

v0.6.3からv0.8.1までで、以前ロードマップとして挙げていた除外ルール、エクスポート、ログ保持期間、日次集計、GeoLite2自動更新などは実装できた。

今後も、軽量・セルフホスト・個別ログ・組織情報という中核を保ちながら、必要性を検証した機能から段階的に追加していく。

現在、将来候補として考えられるのは、例えば次のような機能や。

  • ウォッチ中組織の再訪通知
  • 新しい法人・教育機関などからのアクセス通知
  • PV・Bot・404などの異常増加検知
  • 日次・週次レポート
  • より高度な組織・訪問傾向分析
  • 複数サイト運用や権限管理の拡張

ただし、通知や将来機能については、実際の運用需要とTenyen Analyticsの軽量性を見ながら判断していく。

ヒートマップやセッション録画は、DOM保存量、個人情報のマスキング、ストレージ消費、再生UIの複雑さなどが大きく、Tenyen Analyticsの軽量性を損なう可能性があるため、現時点では優先していない。

v0.6.0で訪問を「点」から「線」として確認できるようになり、v0.6.1では、その線の入口と途中の操作まで分析できるようになった。

v0.6.2では、見つけた組織、訪問者、コンテンツ、流入元などへ管理者自身の知識を追加し、あとから継続して追えるようになった。

さらにv0.6.3以降では、不要なアクセスを除外し、解析データをエクスポートし、古い生ログを安全に整理しながら日次統計を残し、GeoLite2データベースまで管理できるようになった。

自分のサーバー内で解析データを管理しながら、流入元、UTM、セッション、イベント、ASN・組織アクセスを確認し、自分用のラベルや保存ビューで整理したい人は、ぜひGitHubをのぞいてみてな^^

コメント

タイトルとURLをコピーしました
~