Матомо Аналитика

:discourse2: Краткое описание Matomo Analytics — это скрипт для включения аналитики Matomo на платформе Discourse.
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-matomo-analytics
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Возможности

Matomo — это платформа аналитики с открытым исходным кодом. Пользователи могут выбрать самостоятельное размещение или платное профессиональное размещение в облаке.

:mega: Ранее Matomo назывался Piwik. Подробнее об изменении названия см. по ссылке: Piwik is now Matomo - Announcement - Analytics Platform - Matomo.

Чтобы включить аналитику Matomo на вашем форуме Discourse, достаточно установить официальный компонент темы.

Действительно для Matomo API v1.5 и новее

  1. Следуйте руководству по установке темы, чтобы импортировать компонент по следующей URL-адресу:

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

    После этого вы увидите:

  2. Введите URL хоста и ID веб-сайта.

  3. Добавьте компонент темы «Matomo Analytics» в вашу активную тему (темы).

Всё готово!

Настройки

Название Описание
host url URL хоста без http:// или https://
website id
exclude groups Список групп, разделённый запятыми, которые нужно исключить из отслеживания, например администраторы, сотрудники
user id tracking Идентифицирующее поле объекта текущего пользователя, например id, username или external_id.
subdomain tracking Отслеживание посетителей между основным доменом и поддоменами, предполагая, что Discourse размещён на поддомене.
do not track Запросы на отслеживание не будут отправляться, если посетители не хотят быть отслеженными.
disable cookies Отключает все куки первого лица. Существующие куки Matomo для этого веб-сайта будут удалены при следующем просмотре страницы.

Благодарности

Спасибо @mattab, @brahn, @tagtomat и @simon.


:discourse2: Размещено у нас? Компоненты тем доступны для использования в наших тарифах Standard, Business и Enterprise.

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:

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?

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 на поддомене и основным сайтом. Готов отправить pull request, если вам это нужно.

Вам необходимо добавить ваш URL Matomo в белый список заголовка Content-Security-Policy. Найдите настройку администратора content_security_policy_script_src и добавьте туда ваш домен (с https://).

6 лайков

У меня возникли проблемы с запуском этого в моей установке. Я установил компонент и добавил его в свою тему, но Matomo сообщает, что для сайта нет данных. Я думаю, что настройки у меня верные:


image
Но в консоли браузера я вижу эту ошибку:
image
…и когда я смотрю на сайт в Matomo, я вижу следующее:

Что я упускаю?

Редактирование: Дальнейшее расследование показало, что ошибка в консоли JavaScript появляется только в Firefox, а не в Chrome (с последними версиями каждого на Mac). И теперь я вижу некоторые результаты в Matomo, хотя Firefox заметно отсутствует — все посетители, кроме одного, используют Chrome; единственный исключительный случай использует Safari.

Что вы думаете об этом? Этот пост:

предполагает, что проблема может быть в настройках «Не отслеживать» в Firefox, но даже при их отключении для моего сайта в веб-консоли Firefox появляется та же ошибка. Кроме того, Firefox в любом случае не воспринимает это как трекер:

Попробуйте удалить последний символ «/» из «https://www.familybrown.org/analytics/» —> «https://www.familybrown.org/analytics»

1 лайк

Спасибо. К сожалению, у меня по-прежнему возникает та же ошибка:
image

Не могли бы вы дать мне URL вашего форума?

Нужно ли заполнять эти два поля? Я их не совсем понимаю.