Umami Analytics
Umami の非公式プラグイン(Umami とは無関係)。EmDash 管理画面でトラフィック、人気ページ、参照元、エントリーごとのページビューを確認できます。
プラグイン
Umami Analytics
Umami の非公式プラグイン(Umami とは無関係)。EmDash 管理画面でトラフィック、人気ページ、参照元、エントリーごとのページビューを確認できます。
説明
これは非公式のプラグインです。Umami とは無関係であり、Umami による承認やサポートも受けていません。
Umami の数値を EmDash 管理画面の中に表示します。ダッシュボードにはサイト全体のトラフィック、各エントリーの横にはそのエントリーが獲得したページビューが表示されます。Umami Cloud と、3.4.0 以降のセルフホスト版 Umami に対応しています。
- Umami トラフィックカード。 ダッシュボードに表示されます。直近 7 日間の訪問数、ページビュー、エンゲージメントを前週と比較し、閲覧数の多い上位 5 ページとそのエントリーを表示します。
- Umami Analytics ページ。 7 日、30 日、90 日の日次グラフ、直帰率と滞在時間、人気エントリー、参照元、国、サイトが付与するイベントデータ別のページビュー(まずはカテゴリー別)、そして見つかった問題ごとに対処法を示すセットアップチェック。
- エントリー別ページ。 公開済みの全エントリーについて、7 日間と 30 日間のページビューを並べ替え可能な形で表示します。1 つのコレクションまたはすべてを対象にでき、必要に応じて翻訳版を合算できます。
- Umami エディターパネル。 エディターの横に、各エントリーの 7 日間と 30 日間のページビューを表示します。サイトが読了イベントを送信している場合は、読者がどこまで読み進めたかも表示します。
- MCP ツール。 保存済みの数値から回答する、読み取り専用のツールが 4 つあります。
このプラグインは読み取り専用です。Umami やコンテンツを変更することは一切ありません。デモデータを使えば、Umami のウェブサイトがなくても試せます。
セルフホスト版 Umami 3.4.0 でテストしています。Umami Cloud への接続は Umami が公開している API に従っていますが、まだ Cloud アカウントでは実行していません。
Eisbachcode による EmDash の analytics プラグインを基にしており、MIT ライセンスです。
インストール
必要なものは次のとおりです。プラグインのサンドボックスランナーを備えた EmDash 1.0.1 以降、Umami 上のウェブサイト(Umami のトラッキングスクリプトがサイトに設置済みであること)、セルフホスト版 Umami 3.4.0 以降(API キーに対応した最初のセルフホスト版)または Umami Cloud、そして API キーを暗号化して保存できるようにサイトに設定した EMDASH_ENCRYPTION_KEY(npx emdash secrets generate で生成できます)。
- レジストリからプラグインをインストールし、権限を確認します。コンテンツの読み取り、スキーマの読み取り、任意のパブリックホストへのネットワークリクエストです。プラグインがリクエストするのは、設定にある Umami API の URL だけです。
- Umami で、ロールが「View only」のユーザーを作成します。そのユーザーを、ウェブサイトを保有するチームにチームロール「View only」で追加します。ウェブサイトがチームではなく個人のものである場合は、先にチームへ移動してください。
- そのユーザーとして Umami にサインインし、Settings > API keys でキーを作成します。
- EmDash で Plugins を開き、このプラグインの設定に進みます。キーを Umami API key に貼り付けます。
- セルフホスト版 Umami の場合は、Umami API URL を
https://your-host/apiに設定します。既定値は Umami Cloud のアドレスです。 - Umami のウェブサイト設定にある Umami ウェブサイト ID を入力します。空のままにすると、ダッシュボードカードにキーで参照できるウェブサイトの一覧が表示されるので、そこからコピーできます。保存します。
- Plugins > Umami Analytics を開き、Check setup を選びます。数値が依存するすべての項目を確認し、問題ごとに 1 文で説明します。
最初の同期は、Keep daily rows for(既定は 90 日)の範囲まで、新しいものから順にさかのぼって読み込みます。Node では、エントリー 100 件のサイトでおよそ 2 時間かかります。
各コレクションには URL パターン(コンテンツタイプの設定内)が必要です。ないとページをエントリーに対応付けられません。Cloudflare Workers では、同期に EmDash のデプロイガイドにある Cron トリガーが必要です。
セルフホスト版 Umami はパブリックなホスト名で公開されている必要があります。EmDash はプライベートアドレスを拒否するため、localhost、LAN アドレス、VPN 内だけで使える名前は使えません。
MCP ツールを使うには、Plugins でこのプラグインの Agent アクセスをオンにします。ツールが変更されるアップデートの後は、もう一度オンにしてください。
よくある質問
すべての数値がゼロと表示されるのはなぜですか? セットアップの多くのミスはエラーを出さずにゼロになります。Plugins > Umami Analytics を開いて Check setup を選んでください。見つかった問題ごとに対処法が示されます。
数値が Umami のダッシュボードと違うのはなぜですか?
日付は Time zone の設定に従います。Umami ではウェブサイトのタイムゾーンを使わないと、真夜中付近の日次の数値がずれます。/_emdash 配下のページは除外され、合計は Hostnames to count に含まれるホスト名(変更しない限り、サイトの URL とその www 付きの形)のみが対象です。
Umami Cloud で使えますか? Umami が公開している API に従っていますが、Cloud アカウントではまだ実行していません。結果はリポジトリの issue で報告してください。
Umami がサインイン用プロキシの背後にあります。 プラグインが使う 8 つの Umami API エンドポイントは、プロキシを通さずに通過させてください。README に一覧があり、Umami は各エンドポイントで API キーを確認します。
どのくらいリクエストを送りますか? 1 回の同期で Umami に送るリクエストは最大 7 件です。Umami Analytics ページを開くと 5 件です。
Umami なしで試せますか? はい。Data source を Demo data に設定し、ダッシュボードカードで Refresh を選んでください。実在するエントリーに対して、90 日分の架空のトラフィックを生成します。データソースを切り替えると保存済みの数値はすべて消去されるため、デモの数値が実際の数値と混ざることはありません。
誰が数値を見られますか? 編集者と管理者は、ダッシュボードカード、2 つの Umami ページ、MCP ツールを利用できます。投稿者は、自分のエントリーについてエディターパネルを見られます。
カテゴリー別の表はどこから来ますか?
サイトが Umami トラッカーの data-before-send フックでページビューに付与するイベントデータから作られます。Views by event data に最大 3 つのプロパティ名を指定します。イベントデータを送っていないサイトでは、表は表示されません。
読了率はどのように動作しますか?
読者がエントリーの各到達位置に達したとき、サイトがカスタムイベントを送信します。たとえば post と depth を持つ post_read です。これに合わせて、4 つの読了率の設定を入力します。既定ではすべて空で、この機能はオフです。
対応言語は? 英語とドイツ語で、各ユーザーの管理画面の言語に従います。
セキュリティ
セキュリティ上の問題は、リポジトリのアドバイザリフォームから非公開で報告してください: https://github.com/shanelord01/emdash-umami-analytics/security/advisories/new
Umami API キーでできること
Umami の API キー自体には権限がありません。作成したユーザーができることは、そのキーでもすべてできます。管理者ユーザーで作成したキーは、Umami 内のすべてのウェブサイトを変更・削除できてしまうため、ロールが「View only」のユーザーで作成し、そのユーザーをウェブサイトのチームにチームロール「View only」で追加してください。そのように作成したキーは、そのチームのウェブサイトを読み取れるだけで、何も変更できません。プラグイン自体が送信するのは GET リクエストだけです。
ネットワークアクセス
プラグインは network:request:unrestricted を要求します。セルフホスト版 Umami は設定に入力するホスト上にあり、固定のホスト一覧では指定できないためです。リクエストするのは設定にある Umami API の URL(変更しない限り https://api.umami.is/v1)だけで、キーは Bearer トークンとして送ります。デモデータではリクエストは一切行いません。EmDash は、すべてのプラグインに対してプライベートアドレスを拒否します。
送信されるもの・保存されるもの
- Umami が受け取るのは、API キー、ウェブサイト ID、集計対象のホスト名です。コンテンツがサイトの外に出ることはありません。
- キーは暗号化された設定として保存されます(
EMDASH_ENCRYPTION_KEYによる AES-GCM)。このキーがない場合、EmDash は平文で保存せず、保存を拒否します。プラグインがキーをログに書き込むことはありません。 - サイトのデータベースには、日別・パス別のページビューと訪問数、サイト全体の合計と日別のエンゲージメント、各パスとエントリーの対応およびそのエントリーのビュー数と読了率、そして同期の状態と直近 1 週間の人気ページ・参照元・国が保存されます。Keep daily rows for より古い日次の行は削除されます。
誰が何をできるか
ダッシュボードカード、Analytics ページとエントリー別ページ、MCP ツールには編集者ロールが必要です。エディターパネルには投稿者ロールが必要で、そのユーザーが編集できるエントリーのみを表示します。設定の変更には管理者ロールが必要です。
変更履歴
0.1.4
- EmDash 1.2 以降では、ページがサイドバーの 1 つの Umami フォルダー(Analytics、Per entry)にまとめられます。アドレスは変わりません。古い EmDash では 1 つずつ表示されます。
- 新しい権限はなく、MCP ツールにも変更はありません。
0.1.3、2026 年 10 月 9 日
- 日付がタイムゾーンに従うようになりました。以前は UTC の日付だったため、シドニーの午前 10 時ごろより前のページビューは前日として数えられていました。新しい Time zone 設定の初期値は Australia/Sydney です。Umami のウェブサイトのタイムゾーンに合わせて設定してください。
- アップデート時に、保存済みの数値が一度消去され、Umami から新しい順に再読み込みされます。グラフとエントリーごとのビュー数は、追い付くまでの間に少しずつ埋まっていきます。Node では 90 日分・エントリー 100 件でおよそ 2 時間、Cloudflare Workers では Cron トリガーのペースで進みます。後からこの設定を変更した場合も同様です。
- ほかのプラグインと混同されないよう、Umami の名前を付けました: Umami Analytics ページと Umami per entry ページ(アドレスは同じ)、Umami トラフィックカード、Umami エディターパネル。
- レジストリのページにタブ(この変更履歴を含む)とバナーを追加しました。
- 管理画面の修正: 誤った「一致するページがありません」の表示をなくし、ダッシュボードの人気ページが 7 日間をカバーするようにし、日次グラフが系列名を表示し、エディターパネルが保存済み履歴の開始日を表示するようにしました。
- 新しい権限はありません。MCP ツールの説明がタイムゾーン基準の日数になったため、アップデート後に EmDash が Agent アクセスをオフにします。Plugins で再度オンにしてください。
0.1.2、2026 年 10 月 1 日
- 合計値の横にエンゲージメントを追加: 直帰率、平均滞在時間、訪問あたりのページ数を前の期間と比較して表示し、
site_totalsに新しいengagementフィールドを追加しました。 - エントリーごとの読了率(4 つの設定、既定はオフ)と、オンのときだけ使う 2 つの新しい Umami エンドポイント。インストール後の追い付きも高速化しました。
- アップデート後は、Plugins で Agent アクセスをもう一度オンにしてください。
全履歴: CHANGELOG.md。