Matomo Analytics

:discourse2: Summary Matomo Analytics is a script to enable Matomo analytics on Discourse.
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-matomo-analytics
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

Features

Matomo is an open source analytics platform. Users can choose between self-hosting or paying for professional hosting in the cloud.

:mega: Matomo was formerly named Piwik. See Piwik is now Matomo - Announcement - Analytics Platform - Matomo for details about the name change.

To enable Matomo analytics on your Discourse forum, all you have to do is install the official theme component.

Valid for Matomo API v1.5 and newer

  1. Follow the theme installation guide to import from the following URL:

    https://github.com/discourse/discourse-matomo-analytics.git
    

    And you will see

  2. Enter the Host URL and Website ID

  3. Add the theme component “Matomo Analytics” to your active theme(s).

That’s it!

Settings

Name Description
host url Host URL without http:// or https://
website id
exclude groups Comma separated list of groups to exclude from tracking such as admins, staff
user id tracking An indentifying field name on the current user object such as id, username or external_id.
subdomain tracking Track visitors across main domain & subdomains, assuming discourse is on a subdomain.
do not track So tracking requests will not be sent if visitors do not wish to be tracked.
disable cookies Disables all first party cookies. Existing Matomo cookies for this website will be deleted on the next pageview.

Credits

Thanks to @mattab & @brahn @tagtomat and @simon


:discourse2: Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

Last edited by @david 2025-01-09T09:44:19Z

Check documentPerform check on document:
「いいね!」 38

Thanks for this howto, works fine for me. :thumbsup:

In order to comply with the European laws, users must have the possibility to reject piwik’s cookie. Piwik offers a really simple solution for this, by including an IFrame.

Unfortunately, Discourse doesn’t allow iframe tags in posts… :grimacing:
Does anyone see a way to include this piwik iframe in Discourse TOS ?
Thanks.

「いいね!」 1

:wave: I just created a new “Matomo Analytics” theme component, and updated the instructions on how to set it up.

Could you give it a try? Please also remember to remove the original custom scripts.

「いいね!」 8

Looks good on first sight. No error in javascript console. Requests to piwik.php being in the webserver log again.

Statistics in Matomo are available as well.

「いいね!」 5

Is this iframe thing still a concern?

「いいね!」 1

Hey @xrav3nz :clap: your component works great - thanks!

Yes it is. Opt-out should be possible, and Matomo provides this via including an iFrame: see Matomo documentation

「いいね!」 3

This doesn’t appear to be working for me at the moment? I can add the component, and add the correct URL and siteid, but it doesn’t render anything:

I added the comments around the code to find it quicker in the page:

image

「いいね!」 1

We are on beta 6+git1 on our instance

Inline JavaScripts in themes and components are automatically extracted to an external “theme JavaScript” file.

Could you try checking the one immediately after your comments?

9954b74cfdb3c6f0230e7e9f4c6a3db0764c1373

「いいね!」 7

This is at the main page on https://discuss.pixls.us:

Edit
Hold on, I’ve got a new hash on the file on recent refresh, it looks like the code is there. Thank you @xrav3nz!

Looks like it’s working now - not sure what I was doing wrong yesterday - user error.

「いいね!」 5

So I have the JS loaded into the theme customizations, and the external “theme JavaScript file”* is linked in my test browser, just under where I inserted it like in the screenshot in a few posts earlier … BUT the requests aren’t coming through to the Matomo tracking web server.

(Tracking works fine for other non-Discourse sites, FWIW.)

Has anyone else seen that happen?


* e.g. https://discourse-cdn.example.com/standard11/theme-javascripts/{numeric_string}.js?__ws=my-discourse-forum.example.org

コンポーネントをありがとうございます!

トラッキングコードが「Anonymous」というカスタム変数を送信している理由がわかりません。これはあなたの特定の Matomo 設定に固有のものではないでしょうか?全員に必要とは思えません。

_paq.push(['setCustomVariable', 1, 'Anonymous', !currentUser, 'visit']);

サブドメイン上の Discourse とメインサイト間の訪問者を追跡できるように、数行を追加しました。必要であればプルリクエストを送信します。

Content-Security-Policy ヘッダー内で Matomo の URL をホワイトリストに登録する必要があります。管理設定「content_security_policy_script_src」を検索し、ドメイン(https://付き)をそこに追加してください。

「いいね!」 6

私のインストール環境でこれが動作しないことに困っています。コンポーネントをインストールし、テーマに追加しましたが、Matomo からサイトに関連するデータがないと表示されています。設定は正しいと思うのですが:


image
しかし、ブラウザのコンソールでは次のエラーが表示されます:
image
…そして、Matomo でサイトを確認すると、次のようになります:

何が足りないのでしょうか?

追記:さらに調査したところ、JavaScript コンソールのエラーは Chrome(Mac の最新バージョン)では表示されず、Firefox のみで発生することがわかりました。また、Matomo には現在いくつかの結果が表示されていますが、Firefox は明らかに欠けています。訪問者のほとんどは Chrome を使用しており、例外は 1 名のみで、Safari を使用しています。

これについてご意見はありますか?
この投稿:

では、Firefox の「追跡しない」設定が原因かもしれないと示唆されていますが、自サイトに対してこれを無効にしても、Firefox のウェブコンソールでは同じエラーが表示されます。それに、いずれにせよ Firefox はこれをトラッカーとして認識していないようです:

https://www.familybrown.org/analytics/” の最後の / を削除してください → “https://www.familybrown.org/analytics

「いいね!」 1

ありがとうございます。残念ながら、同じエラーが発生したままです:
image

フォーラムのURLを教えていただけますか?

この 2 つのフィールドは入力が必要ですか?よくわかりません。