Погляньте на аналітику майже будь-якого Laravel SaaS, і ви побачите одну й ту саму картину: три різні інструменти, три логіни та три версії «правди».
Є інструмент для трафіку (Google Analytics або Plausible та Fathom, якщо команда дбає про приватність), який рахує відвідувачів і сесії. Є сервіс аналітики підписок (ChartMogul, Baremetrics, ProfitWell), підключений до Stripe, щоб перетворювати транзакції на MRR та churn. І є рекламний піксель (Meta або Google tag) у frontend-частині, щоб рекламні платформи могли бачити конверсії.
Кожен із них виконує свою роботу. Проблема в тому, що між ними нічого не відбувається. Вони не обмінюються даними, мають різні визначення терміну «клієнт», і жоден із них не може відповісти на питання, яке насправді визначає, куди спрямувати бюджет наступного місяця.
Цей матеріал про те, чому варто об’єднати цей стек в один серверний інструмент, створений спеціально для Laravel. Саме для цього ми розробили SimpleStats. Не тому, що три вкладки в браузері — це забагато, а тому, що справжня цінність завжди ховалася у прогалинах між ними.
# Три інструменти, які ви намагаєтеся склеїти докупи
Варто точно розуміти, що саме бачить кожен рівень аналітики, адже вся суть — у їхніх «сліпих зонах».
Рівень трафіку (Fathom, Plausible, GA) знає, звідки приходять люди і що вони переглядають. Він бачить utm_campaign, реферери та pageviews. Чого він принципово не бачить, так це грошей. Fathom та Plausible за замовчуванням не працюють із доходами; GA у найкращому разі фіксує подію конверсії на стороні клієнта, але навіть ці дані на 30–50% обрізаються блокувальниками реклами.
Рівень доходів (ChartMogul, Baremetrics, ProfitWell) детально бачить гроші. Кожна транзакція, апгрейд чи скасування підписки перетворюються на MRR, churn та LTV. Але цей рівень нічого не знає про маркетингові канали. Stripe не бачить ваші utm_campaign, тому й інструменти побудовані над ним — теж.
Рівень атрибуції (пікселі Meta або Google) намагається поєднати ці два світи, але робить це лише в інтересах рекламних платформ і тільки на стороні клієнта. Він спрацьовує під час конверсії, передає дані платформі та блокується тими ж ad-blockers. Він оптимізує показ реклами, але не дає вам чесної таблиці прибутковості кожного каналу.
У результаті ви маєте три дашборди, кожен з яких показує лише третину картини, та щоквартальний звіт у таблицях, де хтось намагається звести ці дані вручну.
# Чому три окремі інструменти — це погано
Здається, що «три інструменти для трьох завдань — це нормально». Але показники, які реально керують підписочним бізнесом, знаходяться між інструментами, а не всередині них:
- Яка кампанія приводить клієнтів, що залишаються з нами надовго? Потрібні дані про трафік (канал) та доходи (retention). Жоден інструмент не має обох показників.
- Яка реальна цінність клієнта з розсилки? Потрібна атрибуція каналу та LTV. Ці дані розкидані по двох сервісах, які не мають спільного ID.
- Чи прибуткова ця кампанія з урахуванням витрат на рекламу та відтоку? Потрібні всі три рівні одночасно.
Кожне з цих питань вимагає об’єднання даних, які ніколи не проектувалися для спільної роботи. І це об’єднання болюче: інструмент трафіку ідентифікує людей за cookie, сервіс доходів — за Stripe customer ID, а піксель — за власним анонімним ID. Синхронізація стає ручною роботою, що призводить до втрати даних і втрачає актуальність у момент завершення.
Такий стек скаже вам, скільки у вас трафіку та скільки доходу, але ніколи надійно не пов’яже конкретне євро прибутку з конкретною кампанією, яка його принесла. Цей зв'язок — найцінніше, що аналітика може дати для SaaS, і структура з трьох інструментів просто не здатна його забезпечити.
# Один фактор, що об’єднує все
SimpleStats використовує інший підхід. Замість трьох інструментів, що спостерігають за окремими частинами ззовні, він відстежує весь шлях клієнта як єдиний ланцюг на стороні сервера всередині вашого Laravel-додатка:
відвідувач → реєстрація → логін → оплата
Оскільки всі чотири етапи фіксуються в одному місці та прив’язані до одного відвідувача, кожен наступний показник автоматично успадковує контекст залучення. Платіж — це не просто цифра, це оплата від користувача, який прийшов через utm_campaign=spring-sale з Німеччини шість тижнів тому. Нічого не потрібно зводити постфактум, бо дані ніколи не були розділені.
А оскільки це відбувається на сервері, вам не потрібні пікселі, банери про згоду на cookie для аналітики, а дані не зникають через блокувальники реклами. Ви отримуєте повну картину, що є головною умовою довіри до цифр.
# Весь стек в одному місці
Ось як три звичні рівні інтегруються в один серверний інструмент.
# Аналітика трафіку (заміна Fathom)
Унікальні відвідувачі, джерела, кампанії, країни, пристрої та конверсія. Це веб-аналітика, орієнтована на приватність, що відповідає нормам GDPR і не боїться ad-blockers. Це база вашої воронки, і будь-яку метрику над нею можна сегментувати за цими ж параметрами.

# Метрики підписок (заміна ChartMogul)
MRR та ARR, динаміка MRR (нові підписки, розширення, скорочення, відтік, реактивація), Net та Gross Revenue Retention, Quick Ratio, відтік доходу та LTV. Це повноцінний дашборд підписок, за який ви зазвичай платите окремо. Різниця в тому, що кожен показник можна відфільтрувати за маркетинговим каналом.

# Прибутковість кампаній (правильна робота пікселя)
Вкажіть витрати на рекламу для кожної кампанії, і ви отримаєте ROAS, CAC, чистий прибуток, LTV:CAC та період окупності CAC по кожному каналу. Ці дані базуються на реальних доходах, вже атрибутованих до конкретної кампанії. Це саме те, що мав би давати рекламний піксель, але ніколи не давав повноцінно.

# Retention за каналами (те, чого немає в інших)
Ви отримуєте когортний аналіз retention з фільтрацією за каналами. Питання змінюється з «чи повертаються користувачі?» на «який канал приводить тих, хто повертається?». Також доступні показники stickiness та user churn.

# Питання, на які нарешті є відповідь
Коли всі рівні працюють на базі однієї системи, складні звіти перетворюються на один клік фільтра:
«Який MRR у клієнтів із нашої розсилки, скільки з них активні через 90 днів і чи стала кампанія прибутковою після врахування витрат на рекламу?»
Інструмент трафіку або сервіс доходів окремо не дадуть відповіді. Піксель — тим паче. Об’єднаний стек дає відповідь миттєво, бо це завжди був один набір даних.
# Просто запитайте свою аналітику
У SimpleStats інтегровано AI-помічника. Ви можете ставити запитання так само, як колезі:
- «Який канал привів клієнтів, що залишаються активними через 90 днів?»
- «Який MRR у користувачів, що прийшли через розсилку?»
- «Чи окупилася весняна кампанія з урахуванням витрат на рекламу?»
Асистент виконує реальні запити до вашої бази даних і видає точні цифри, а не прогнози, зазначаючи часовий діапазон та проект.
Для тих, хто постійно працює з кодом, SimpleStats пропонує хостинговий MCP-сервер. Підключіть його до Claude Code однією командою:
claude mcp add --transport http simplestats https://simplestats.io/mcp \
--header "Authorization: Bearer API_TOKEN_HERE"
Тепер питання на кшталт «Чи вплинув вівторковий деплой на конверсію?» можна ставити прямо в редакторі коду. Це також працює з Cursor та Claude Desktop.
# Як налаштувати
Вам не потрібно інтегрувати три різні сервіси. Достатньо встановити один Composer-пакет у свій Laravel-додаток:
composer require simplestats-io/laravel-client
Пакет фіксує відвідувачів, а ви просто вказуєте на існуючі моделі User та оплати для відстеження реєстрацій і платежів. Після цього весь стек — трафік, підписки, прибуток від кампаній та AI-асистент — наповнюється даними на стороні сервера. Налаштування Stripe, Paddle або Lemon Squeezy займає лічені хвилини.
Використовуйте рекламні платформи для закупівлі трафіку, а білінг-провайдерів — для прийому грошей. Але для розуміння того, чи працює ваш бізнес, один цілісний серверний стек завжди кращий за три розрізнені дашборди.
Бажаєте побачити свої дані у зв'язці? Спробуйте SimpleStats — перші відвідувачі з’являться в системі вже за кілька хвилин після встановлення пакета.
SimpleStats — це платформа серверної аналітики для Laravel. Вона відстежує відвідувачів, реєстрації та платежі з дотриманням GDPR, без впливу ad-blockers та з повною UTM-атрибуцією.