Три подписки — Roistat, коллтрекинг и платный доступ к API Битрикс24 — стоили от 200 тысяч в год и продолжали дорожать вместе с трафиком. Заменил их одной системой на своём сервере. Она считает визиты, отделяет людей от роботов и связывает рекламу с заказами сразу на трёх проектах.
Готовые сервисы решают типовую задачу и берут за это ежемесячно. Пока бизнес типовой, всё честно. Проблемы начинаются, когда нужно связать данные так, как сервис не умеет, или когда счёт за подписку растёт вместе с трафиком, а пользы больше не становится.
У меня было два магазина с похожими задачами и один жёсткий ограничитель: облачный Битрикс24 просит отдельную подписку около 22 тысяч в год просто за доступ к своему же API. Считать чужие деньги за право пользоваться своими данными показалось странным.
Поэтому система изначально проектировалась мультитенантной: один движок, несколько проектов, у каждого свои каналы, цели и доступы. Добавление нового проекта не требует нового кода.
Сейчас на ней живут интернет-магазин парфюмерии, магазин кресел и вот этот сайт. Данные на странице собраны той же системой, о которой она рассказывает.
Нижняя граница взята намеренно: 15 тысяч в месяц это минимальный тариф, по факту счёт рос вместе с трафиком. Сервер уже был, отдельных расходов на хостинг система не добавила. Разовая стоимость разработки окупилась быстрее года, а дальше экономия повторяется ежегодно и увеличивается с каждым новым проектом.
Важнее денег оказалось другое: данные лежат у меня. Их можно связывать как угодно, выгружать целиком и строить поверх новые вещи. Так на той же базе сейчас появляется CRM, которую иначе пришлось бы покупать отдельно.
Захват визита на сервере, а не в браузере
Обычный счётчик это JS, и его режут блокировщики. Здесь визит фиксируется на стороне сервера: у магазина обработчиком в шаблоне, у статических сайтов через зеркалирование запроса в nginx. Данные приходят даже когда скрипты заблокированы.
Очередь вместо прямой записи
Сайт никогда не ходит в базу аналитики синхронно. Он пишет событие в файл-спул, а отдельный процесс раз в минуту отправляет пачку. Упавшая аналитика не может уронить оформление заказа — это было жёстким требованием.
Отделение людей от роботов
Каждый визит проходит через детектор ботов, а факт исполнения JS подтверждается отдельным сигналом. Именно это дало главную цифру проекта: живых посетителей оказалось около двух процентов от всего трафика.
Атрибуция и отчёты
Источник, кампания и рекламная метка сохраняются с первого визита и доживают до заказа. Поверх стоят готовые отчёты и конструктор дашбордов, где виджеты собираются из реестра метрик и измерений.
Из 448 894 визитов, прошедших через систему, живыми посетителями оказались около двух процентов. Остальное — поисковые и сканирующие роботы. В первые же четыре минуты после запуска из 133 визитов 130 были ботами, причём 112 из них один и тот же краулер.
Это не поломка счётчика, а обычное состояние сайта в интернете. Просто стандартные системы часть такого трафика показывают как посещения, и решения принимаются по цифрам, где смешаны люди и машины. Когда отделяешь одно от другого, картина посещаемости меняется, а вместе с ней и выводы о рекламе.
Подробный разбор с цифрами вынес в отдельную статью.
Работа продолжается: в планах коллтрекинг с записью разговоров, выгрузка офлайн-конверсий в рекламные кабинеты и CRM поверх собранной базы.
Расскажу, что стоит подключить в вашем случае: готовый сервис или своё решение. Иногда честный ответ — что хватит и Метрики.