Подключение

Stats3x5 мин чтенияСтраница 2 из 7
На этой странице 9

Обязательны шаги 1 и 2: без сниппета нет данных, без cron они не попадают в статистику. Остальное - по желанию.

1. Сниппет в шаблонах

Вызовите сниппет во всех шаблонах сайта перед закрывающим тегом </body>. Вызов должен быть некэшируемым. Второй вариант - для шаблонов на Fenom (pdoTools):

[[!Stats3x]]
{'Stats3x' | snippet}

Параметр &replay=1 включает запись действий посетителя на страницах с этим вызовом (см. шаг 6).

Своё действие посетителя (категория, действие, метка, число) отправляется из любого скрипта страницы:

_st3x.e("form", "submit", "callback");

Если код страницы вызывает _st3x.e() раньше, чем выведен сниппет, поставьте в <head> заглушку: вызовы встанут в очередь и уйдут после загрузки скрипта.

<script>window._st3x=window._st3x||{q:[],e:function(){this.q.push(arguments)}};</script>

Без настройки учитываются скачивания файлов, переходы на другие сайты, ссылки tel: и mailto: и отправки форм. Клики по своим элементам задаются CSS-селекторами в настройке stats3x.click_selectors.

2. Cron

Добавьте задание cron, которое запускается каждую минуту от пользователя сайта (того же, от которого работает PHP):

* * * * * php /путь/к/сайту/core/components/stats3x/cron.php > /dev/null 2>&1

Две копии одновременно не запускаются: если прошлый запуск ещё работает, новый сразу завершается. Работает ли cron, видно на вкладке «Состояние»; если он не запускался дольше stats3x.cron_alert_minutes минут, компонент и виджет показывают предупреждение.

Запустить вручную и посмотреть, что происходит: -v - печатать ход работы, --task=parse - только эти задачи (через запятую), --force - все задачи сейчас.

php /путь/к/сайту/core/components/stats3x/cron.php -v --task=parse
php /путь/к/сайту/core/components/stats3x/cron.php -v --force

Даты визитов записываются по часовому поясу из системной настройки date_timezone, а если она пуста - из php.ini. Укажите date_timezone (например, Europe/Moscow), иначе сутки в статистике будут начинаться не в полночь по вашему времени.

3. Папка данных

По умолчанию папка данных находится здесь:

/путь/к/сайту/core/components/stats3x/data/

Папка внутри корня сайта. В Apache её закрывает файл .htaccess, который компонент создаёт сам. Для nginx добавьте правило в конфигурацию сайта:

location ^~ /core/stats3x_data/ {
    deny all;
}

Закрыта ли папка, компонент проверяет сам - результат на вкладке «Состояние». Надёжнее вынести папку за пределы корня сайта: укажите новый путь в системной настройке stats3x.data_path.

4. География (по желанию)

Чтобы определять страну, регион и город посетителя, нужны бесплатные базы IP2Location LITE. Без них статистика работает, только география пустая. Как подключить:

  1. Зарегистрируйтесь бесплатно: ip2location.com/register?id=lite. Страница бесплатных баз - ip2location.com/database/lite.
  2. Войдите в личный кабинет, откройте раздел Download и скопируйте Download Token.
  3. Вставьте токен в системную настройку stats3x.geo_token. Задача cron «Обновление баз IP2Location» в течение часа скачает базу в папку core/components/stats3x/geo_ip/ и дальше будет обновлять её раз в месяц. По умолчанию это DB11LITEBINIPV6: страна, регион, город, координаты и часовой пояс для IPv4 и IPv6 одним файлом. Скачать сразу: php core/components/stats3x/cron.php --task=geo -v
  4. Или вручную: в разделе Download скачайте IP2LOCATION-LITE-DB11.IPV6.BIN.ZIP (DB11.BIN - только IPv4), распакуйте файл .BIN в папку из настроек stats3x.geo_ipv4_path и stats3x.geo_ipv6_path (по умолчанию core/components/stats3x/geo_ip/) и обновляйте раз в месяц.

Базы весят сотни мегабайт и не входят в компонент: одна папка может служить нескольким сайтам, если позволяет open_basedir. Не кладите их в корень сайта - оттуда их можно скачать. Найдена ли база, видно на вкладке «Состояние».

5. Цели (по желанию)

Цели настраиваются на вкладке «Цели»: посещение страницы, клик по элементу, отправка формы или своё действие. Достижения считаются при разборе данных, начиная с момента создания цели. Подробно, с примерами - в под-табе «Цели» этой документации. Для действия с ценностью передайте число четвёртым аргументом - оно станет ценностью достижения:

_st3x.e("order", "paid", "", 2500);

6. Запись действий посетителей (по желанию)

Включите настройку stats3x.replay_enabled и вызовите сниппет с параметром replay на страницах, которые нужно записывать. Доля записываемых визитов - настройка stats3x.replay_sample. Записи и карту кликов смотрят пользователи с правом stats3x_replay на вкладке «Записи». Если картинки и стили сайта лежат на CDN, добавьте её домен в stats3x.replay_hosts, иначе в проигрывателе они не покажутся.

[[!Stats3x? &replay=`1`]]

Запись действий - это персональные данные посетителей: предупредите о ней в политике конфиденциальности. Ввод в поля скрывается настройкой stats3x.replay_mask_inputs, пароли - всегда. Блок, который нельзя записывать (например, личные данные в кабинете), отметьте классом st3x-block, текст - классом st3x-mask.

7. Сайт за прокси или CDN

Если перед сайтом стоит Cloudflare, другая CDN или nginx перед Apache, в REMOTE_ADDR приходит адрес прокси, и все посетители выглядят одним IP: география и исключение IP перестают работать. Укажите заголовок с настоящим адресом посетителя в stats3x.ip_header (для Cloudflare - CF-Connecting-IP) и адреса прокси в stats3x.ip_proxies (пусто - доверять только внутренним адресам: тому же серверу и локальной сети). Без прокси обе настройки оставьте пустыми: заголовок может подделать любой посетитель.

8. Права доступа

Права компонента собраны в политике доступа Stats3xUserPolicy: stats3x_view - смотреть статистику, stats3x_save - цели и отправка отчёта на почту, stats3x_remove - удаление целей и записей, stats3x_replay - записи действий посетителей и карта кликов. При установке политика назначается группе Administrator в контексте mgr, если её ещё никому не назначали. Пользователям sudo права не нужны.

Чтобы открыть статистику другой группе менеджеров: Контроль доступа → Группы пользователей → группа → Права доступа → Доступ к контекстам → добавьте контекст mgr с политикой Stats3xUserPolicy. Если записи действий этой группе видеть не нужно, создайте свою политику на шаблоне Stats3xUserPolicyTemplate без права stats3x_replay. После изменения прав менеджерам нужно перезайти или очистить кэш.

9. Отчёты на почту (по желанию)

Отчёт о посещаемости раз в день, неделю или месяц отправляется через компонент Вестник. Как настроить - на вкладке «Отчёты на почту» этой документации.