Отслеживание динамически изменяемой пользовательской переменной в Matomo (piwik) - PullRequest
0 голосов
/ 27 февраля 2020

Я использую Matomo для отслеживания пользователей на онлайн-панели; это стандартная плата за проезд, ничего необычного, и я использую только две пользовательские переменные. Два значения пользовательских переменных, так сказать, stati c, так как они заполняются, когда страница генерируется с именем пользователя и их ролью. Что-то, что стоит c и не изменяется до тех пор, пока они вошли в систему.

Теперь я хочу также отследить некоторые действия, которые они выполняют, которые не включают загрузку страницы. Чтобы быть более точным, основная навигация может быть динамически переключена между тонкой / свернутой версией и полностью расширенной версией. Я хочу отслеживать, если у пользователя есть расширенное меню или нет. Проблема в том, что пользователь может изменить это на лету.

У меня есть два метода проверки, если пользователь расширил навигацию или нет: проверка класса на элементе или повар ie. Когда пользователь переключается между расширенной навигацией, настройки сохраняются в Cook ie, поэтому выбор сохраняется при загрузке страницы.

Как отследить что-то, что может быть динамически изменено? Я не опытный пользователь 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 на основе.

1 Ответ

0 голосов
/ 02 марта 2020

Ну, в любом случае, вот то, что я придумал, это не совсем то, что я хотел, но это делает работу на данный момент. Идея в том, что я использую Cook ie. js, чтобы получить cook ie и присоединяю значение cook ie к пользовательской переменной:

<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(["setCustomVariable", 3, "ExpandedNavigationSetting", Cookies.get("sidenav-state") ? Cookies.get("sidenav-state") : "NA", "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);
})();

Я просто опубликую это как ответ на свой вопрос, если кто-нибудь наткнется на этот вопрос с той же проблемой.

...