Сквозная аналитика для бота и сайта - источники заявок, воронка и окупаемость

Ссылка на работу
image image
Задача Заказчик лил рекламу на телеграм-бота из четырёх каналов и не понимал, какой из них окупается. В кабинетах площадок он видел клики, в выписке платёжки видел деньги, сходились они только у него в голове. Заявки в боте приходили обезличенными: человек нажал старт, а откуда пришёл, спрашивать уже поздно. Задача - дотянуть цепочку от объявления до оплаты и считать по каждому объявлению стоимость заявки и возврат вложений. Что сделал Разметка построена на deep-link: каждое объявление получает свою ссылку на бота со своим кодом. Метка присваивается человеку при первом касании и дальше не переписывается, повторный старт атрибуцию не ломает. Каждое событие - шаг анкеты, заявка, счёт, оплата - пишется с тем же идентификатором. События лежат в PostgreSQL сырыми, чтобы воронку можно было пересобрать задним числом и не переписывать историю при смене отчёта. Дашборд на FastAPI и React: заявки и оплаты по источникам, воронка по шагам с отвалом на каждом, стоимость заявки и стоимость оплаты, окупаемость за выбранный период, выгрузка в Excel. Результат Через три недели данных стало видно, что два канала из четырёх дают заявки и почти не дают оплат. Бюджет с них сняли, при том же месячном расходе оплат стало больше примерно на треть. Воронка вскрыла ещё одно: четверть людей уходила на шаге, где бот просил телефон до показа цены. Шаги поменяли местами, доходимость до заявки поднялась с 38 до 52 процентов.