投稿日:
Matomoは標準では直帰ユーザーの滞在時間が取れないが、それをできるようにする方法。
確認環境
Matomo Version 5.7.1
やり方
トラッキングコードに_paq.push(['enableHeartBeatTimer', 10]);を追加するだけ。
公式ドキュメントを読む限り、これをすることで10秒以上閲覧した場合に滞在時間が取れるようになると思われる。なお、HeartBeatTimerという名前だが、眺めてみた感じ定期的にAPIリクエストを送ったりはしていないようだった。
取り敢えず10秒以下は0と同じでいいと思ったので10にしておくことにした。ビジット継続時間単位のビジットでも11秒以上の敷居があるので、キリもいい。11秒にしたほうがよりノイズが減り、正確かもしれないが、個人的には運用上10秒が取れても害はないので、細かいことは気にしないでおく。
なお、かつては名前の通り指定時間にポーリングしていたようだ。また5秒未満を指定しても機能しないらしい。
コードの追加例
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.example.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
+ _paq.push(['enableHeartBeatTimer', 10]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName ('script') [0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
あとがき
公式ドキュメントの説明が薄いので、具体的にどう処理されているかはソースコードを読まないとわからないが、取り敢えず直帰ユーザーの滞在時間が見れるようになったので良かった。
一律で0sだと、内容を見ているユーザーと見てないユーザーが区別できないので、ここが分かるのは便利だ。
因みにGoogle Analyticsでも直帰は0秒扱いらしいが、そもそも最近この項目自体が削除されて、別概念に置き換わったらしい。
こういったことを踏まえると、やはり私のような個人サイト運営者にとってはMatomoは非常に便利なツールだ。
常連さんのアクセスを観察するのに標準のMatomoだとダッシュボード→利用状況→訪問数別のビジットである程度は見れるのだが、ビジット回数がベースでビジターがごちゃ混ぜになっていて辛い問題があったので、ビジターとビジットIDを一覧で見れるやつを作った。
コードはMatomo_Plugin_VisitorIdReportに置いてるので、もし使いたい人がいたら持っていって欲しい。
画面イメージはこんな感じ。
苦労したこと
公式の開発リファレンスが更新されてないのか、そのままでは上手くいかなかったり、あまり親切ではなく、どちらかと言えば有料プラグイン買ってねみたいな雰囲気だったので情報がなさ過ぎて苦労した。
ただ昨今はLLMという文明の利器があるので、大まかにはClaude Opus 4.6に書かせて、バグっていたらアタリを見つけて修正させて、どうにもならないところは手で直した。
推移グラフは実装方法が不明だったのでいったん放置しているが、ひとまずビジターID単位のビジット数が見れて、セグメント化ボタンからビジットの履歴を終えるところまでは作れたので満足だ。


