Script to enable Matomo analytics on Discourse

(Erlend Sogge Heggen) #1

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

Note: 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:

    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!

Thanks to @mattab & @brahn for updates
Updated by @tagtomat after @Simon_Cossar helped setting it up on our forum

How to anonymize Google Analytics?
Accessibility: Signal changes to screen readers on navigation
Sidekiq: Uncaught TypeError: Cannot read property 'current' of undefined
Javascript inserted into Footer from Discourse UI not working
Matomo analytics is not working after recent update
Matomo analytics is not working after recent update
Matomo analytics is not working after recent update
Protect user privacy by using Matomo, dumping Google Analytics?
(Christoph Blechschmitt) #22

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 ?

1 Like

: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.


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.

(Sam Saffron) #32

Is this iframe thing still a concern?

1 Like
(Christoph Blechschmitt) #33

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

(Pat David) #34

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:


1 Like
(Darix) #35

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?


(Pat David) #37

This is at the main page on

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.

(Michael Downey) #38

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.{numeric_string}.js?