Я использую Matomo для отслеживания пользователей на онлайн-панели инструментов; это стандартный тариф, в котором нет ничего необычного, и я использую только две пользовательские переменные. Значения двух пользовательских переменных являются статическими, так сказать, поскольку они заполняются, когда страница создается с именем пользователя и его ролью. Что-то статичное и не меняется, пока они находятся в системе.
Теперь я хочу также отслеживать некоторые их действия, не связанные с загрузкой страницы. Чтобы быть более точным, основная навигация может динамически переключаться между уменьшенной / свернутой версией и полностью развернутой версией. Я хочу отслеживать, развернуто ли у пользователя меню или нет. Проблема в том, что пользователь может изменить это на лету.
У меня есть два метода проверки, развернута ли у пользователя навигация или нет: проверка класса на элементе или файла cookie. Когда пользователь переключается между расширенной навигацией, настройки сохраняются в файле cookie, поэтому выбор сохраняется при загрузке страницы.
Как мне отслеживать то, что можно динамически изменять? Я не опытный пользователь matomo, поэтому не знаю очевидных ответов. Я также заметил что-то, что называется нестандартными размерами, может быть, это поможет?
Если это поможет, вот код, хотя это довольно стандартный тариф:
<script type="text/javascript">
var _paq = window._paq || [];
_paq.push(["setCustomVariable", 1, "UserName", "value set on page generation", "visit"]);
_paq.push(["setCustomVariable", 2, "RoleTemplate", "value set on page generation", "visit"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = "https://myanalyticsurl.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
Веб-сайт основан на asp.net mvc 5.