[Автоматизация бизнеса · Аналитика · Backend-продукт]
TrackLink — трекинг и маркетинговая аналитика
Система отслеживаемых ссылок и маркетинговых событий: ссылки кампаний, идентификаторы источников, обработка кликов и событий, собственные домены и аналитика в Telegram-инструментах.
01Обзор проекта
TrackLink отвечает на практический бизнес-вопрос: какие источники приводят людей и как далеко те проходят. Он создаёт отслеживаемые ссылки, обрабатывает клики и события и превращает их в аналитику и отчёты.
Это отдельный от Astra Raven продукт, который показывает те же навыки бэкенда и интерфейсов в маркетинге и автоматизации бизнеса.
02Инженерная задача
Трекинг стоит на критическом пути клика пользователя. Он должен быть быстрым и надёжным, а сохраняемые данные — достаточно чистыми, чтобы на них можно было опираться в решениях.
- A
Быстро перенаправлять, надёжно записывая событие.
- B
Сохранять согласованность идентификаторов источников между ссылками и доменами.
- C
Проверять и дедуплицировать события до попадания в аналитику.
- D
Показывать результаты в виде, удобном для маркетологов.
03Архитектура решения
Наведите или нажмите на этап.
Ссылка кампании
Отслеживаемая ссылка с идентификаторами источника, при необходимости на собственном домене.
04Основные компоненты
- 01
Управление ссылками
Создание отслеживаемых ссылок и управление идентификаторами источников.
- 02
Собственные домены
Ссылки, работающие на доменах клиента.
- 03
Обработка событий
Быстрая обработка кликов и проверка последующих событий.
- 04
Движок аналитики
Агрегации по источникам, этапам конверсии и периодам.
- 05
Mini App
Telegram-интерфейс для ссылок, аналитики и отчётов.
- 06
Тестирование
Тесты на Playwright и диагностика критичных сценариев.
05Технологический стек
Бэкенд
- Python
- aiohttp
- Event tracking
Данные
- SQL
- State handling
- Aggregations
Интерфейс и QA
- Telegram Mini App
- Linux deployment
- Playwright
06Интерактивная демонстрация
Аналитика кампании
ИллюстрацияДемо-данные — сгенерированный пример. Никаких реальных клиентов, кампаний и показателей конверсии.
Клики
—
Уникальные посетители
—
Запуски бота
—
Отфильтровано дублей
—
Динамика · клики в день
Этапы конверсии
Источники
| Источник | Клики | Запуски бота | Открытия Mini App | Доля |
|---|
07Инженерные решения
- 01
Сначала записать, потом быстро перенаправить
Клик фиксируется минимальной работой в пути запроса; тяжёлая обработка выполняется после.
- 02
События проверяются как входные данные
Дедупликация и проверка сохраняют достоверность аналитики.
- 03
Там, где уже работают пользователи
Аналитика доставляется внутри Telegram, где пользователи уже находятся.
08Надёжность и тестирование
- Тесты Playwright для создания ссылок и редиректов.
- Дедупликация повторяющихся событий.
- Диагностика неудачных или подозрительных событий.
09Пример кода
from aiohttp import web
async def track_and_redirect(request: web.Request) -> web.StreamResponse:
slug = request.match_info["slug"]
link = await request.app["links"].get(slug)
if link is None:
raise web.HTTPNotFound()
# Keep the hot path small: enqueue, don't aggregate here.
await request.app["events"].put({
"link_id": link.id,
"source": request.query.get("src", link.default_source),
"kind": "click",
})
raise web.HTTPFound(link.target_url)Иллюстрация Иллюстративный инженерный пример — обработчик «записать и перенаправить» на aiohttp.
Исходный код продукта закрыт. Примеры показывают инженерный подход, а не внутреннюю логику. Больше — в Engineering Lab.
10Возможное развитие
- Webhook-интеграции с CRM-системами.
- Отправка отчётов по расписанию.
- Когортные отчёты по источникам и периодам.