Быстрый старт: от установки до первой конверсии
Весь путь делается в панели: чек-лист «С чего начать» показывает, что уже готово, мастер
«Запустить кампанию» собирает оффер, источник, поток и домен в одну связку и отдаёт
ссылку для рекламного кабинета и постбек-URL для партнёрской сети. Тот же путь через
публичный API (curl, MCP-сервер) — в приложении «Тот же путь через API» в конце.
Инстанс ещё не установлен — сначала установите его (ключа нет — там же пробный период на 7 дней и бесплатные домены inotrack).
1. Войти в панель
Откройте домен панели, который вы указали установщику (или бесплатный, который он выдал), и войдите под первым администратором — логин и пароль из одноразовой сводки в конце установки.
2FA для admin. Если второй фактор у администратора ещё не включён, сразу после входа панель откроет экран «Подключите второй фактор» (QR-код → код из приложения → резервные коды). Вход этим не блокируется, но экран будет появляться при каждом входе, пока фактор не подключён (подробнее — FAQ).
2. «С чего начать»: чек-лист запуска
Пока у трекера нет данных, на дашборде вместо графика — список шагов запуска: что уже сделано (зачёркнуто) и какой шаг следующий, с кнопкой туда, где он делается. Тот же следующий шаг одной строкой показывает пустой отчёт. Шаги:
| Шаг | Готов, когда | Где делается |
|---|---|---|
| Источник трафика | есть хотя бы один источник | «Источники» или мастер |
| Оффер | есть хотя бы один оффер | «Офферы» или мастер |
| Поток с оффером | есть поток, в котором есть оффер | мастер или «Потоки» → «Новый поток» |
| Трекер-домен | подключён домен под клики | «Домены» |
| Первые клики | по потокам пришли клики | ссылка потока в объявлении |
| Постбек рекламодателя | есть подключение сети в «Постбеках» | «Постбеки» → «Подключить сеть» |
| Первые конверсии | пришла хотя бы одна конверсия | «Постбеки» (проверка, карантин) |
Шаги «Трекер-домен» и «Постбек рекламодателя» — настройка команды, их делает
администратор; баеру они не показываются. Все шаги до потока проще всего пройти одним
заходом — мастером: кнопка «Запустить кампанию» под пустым графиком дашборда, в сайдбаре
и на странице «Потоки» (горячая клавиша g j).
3. Мастер «Запустить кампанию» (/launch)
Пять шагов, между ними можно ходить вперёд и назад; черновик сохраняется сам, так что мастер можно закрыть и вернуться к нему позже.
- Оффер — выберите существующий или создайте новый прямо в мастере (рекламодатель
заводится в той же шторке). Можно взять несколько офферов — трафик поделится по весам.
URL оффера — с макросами (Справочник макросов);
{clickid}обязателен, без него постбек будет нечем сматчить с кликом. - Источник — откуда трафик. Источник задаёт click-id площадки, sub-макросы и шаблон ссылки для рекламного кабинета; при создании нового пресет площадки подставится сам. Без шаблона ссылка получится без макросов площадки, а в отчётах не будет её кампаний и объявлений.
- Поток — название, веса офферов, по желанию ленд (посетитель сначала видит его,
ссылка
/f/…) и фильтр ботов (отсев ботов и модерации; набор правил выбирает администратор — сразу или позже на странице потока). ⚠️ Поле мастера «Запасной URL (traffic-back)» и выбор смартлинка рядом с ним сохраняются вtrafficback_urlпотока, который клик-путь сегодня не читает, — это не запасной вариант для клика без оффера. Такие клики (другая страна, ни один оффер не подошёл) уходят в «Запасной вариант» потока, а если он не задан — на общий фоллбэк инстанса. Задайте его после запуска на странице потока: «Запасной адрес и уникальность» → «Запасной вариант» (свой URL, смартлинк, поток или оффер). - Домен и регион — на какой трекер-домен строить ссылку и из каких стран принимать
трафик; клики из других стран уйдут в запасной вариант потока (см. выше). По умолчанию
ссылка строится на основном домене пула («Домены»); если пул пуст — на
INOTRACK_PUBLIC_URLиз.envустановщика. Нет ни того, ни другого — мастер напишет «Домен не настроен»: добавьте домен в «Домены». - Запуск — сводка «Проверьте и запустите»; после подтверждения мастер создаёт поток.
Роль viewer видит мастер только для чтения: создавать сущности может admin и buyer.
4. Ссылка для рекламного кабинета
После создания потока мастер показывает «Ссылку для кабинета площадки»: полную
трекинговую ссылку https://<трекер-домен>/go/<token> уже с макросами площадки из шаблона
источника. Скопируйте её целиком и вставьте в объявление. Если в потоке есть ленд, рядом —
ссылка через ленд; если подключены edge-ноды по регионам — ссылки по регионам.
Проверить, куда попадёт посетитель, можно кнопкой «Проверить» в чек-листе (проверка клика на странице потока) или вручную:
curl -sI "https://<трекер-домен>/go/<token>?sub1=test-site"
# HTTP/2 302, Location: <URL оффера с подставленными макросами>
5. Постбек для партнёрской сети
Ниже ссылки — «Постбек-URL для кабинета сети»: адрес https://<трекер-домен>/pb/<token>
по каждому рекламодателю выбранных офферов и параметры, которые ждёт трекер (ID клика,
статус, выплата). Значения параметров подставьте макросами сети в её личном кабинете.
Если у рекламодателя ещё нет подключения, мастер так и пишет. Подключение создаёт администратор: «Постбеки» → «Подключить сеть» — выбрать пресет сети (маппинг параметров подставится сам) или настроить вручную. ⚠️ Проверьте, что в маппинге есть параметр суммы — без него выплата запишется нулём. Детали форматов, статусной модели и дедупа — Постбеки.
Убедиться, что постбек разбирается правильно, можно до первой реальной конверсии: в списке подключений кнопка «Проверить» отправляет пробный постбек без записи — с clickid последнего реального клика по офферам сети — и показывает поток, оффер и сумму.
6. Чек-лист запуска и первая конверсия
Под ссылками — «Чек-лист запуска»: часть пунктов трекер проверяет сам (шаблон ссылки площадки, фильтр ботов, подключение постбека, передача конверсий в площадку), часть отмечаете вы (ссылка вставлена в кабинет, постбек-URL вставлен в кабинет сети, проверка клика, первый клик, расходы).
- Первый клик — кнопка «Открыть в отчётах» ведёт в отчёт по этому потоку. Клики пишутся в ClickHouse батчами раз в 1–2 секунды: если строки нет сразу, обновите через пару секунд.
- Первая конверсия — появляется в живой ленте «Конверсии» и в отчётах. Клики есть, а конверсий нет — чек-лист «С чего начать» подсветит шаг «Первые конверсии»: проверьте постбек (шаг 5) и карантин в «Постбеках» — туда попадают постбеки, которые трекер не смог разобрать или сматчить с кликом.
- Расходы — cost-sync рекламного кабинета или ручной ввод, из карточки источника.
Приложение: тот же путь через API
Всё то же самое можно сделать публичным API — для скриптов, массового заведения и
MCP-сервера (работа с трекером из Claude Code, Публичный API). API-токен удобнее выпустить
в панели: «Настройки» → «API-токены» (права «Запись» — только у admin); ниже — как
получить его без панели.
0. Войти и получить API-токен
Первый администратор создан установщиком (Установка), логин/пароль — из одноразовой сводки в конце установки.
TRACKER=https://panel.example.com
# логин — сохраняем куку сессии в файл
curl -s -c cookies.txt -X POST "$TRACKER/api/internal/auth/login" \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]","password":"<пароль из сводки установщика>"}'
# выпуск API-токена под этой сессией (scope read+write, чтобы управлять сущностями)
curl -s -b cookies.txt -X POST "$TRACKER/api/v1/tokens" \
-H 'Content-Type: application/json' \
-d '{"name":"quickstart","scopes":["read","write"]}'
Значение поля token из ответа — сохраните его, оно показывается один раз (дальше
хранится только хэш). Дальше все примеры используют его как $TOKEN.
2FA для admin. Если у администратора второй фактор ещё не включён, ответ
/login содержит "must_setup_2fa": true, и панель сразу после входа открывает экран
«Подключите второй фактор» (QR-код → код из приложения → резервные коды). Вход этим не
блокируется: сессия уже выдана, и curl из этого раздела работает как обычно. Через API
второй фактор подключается так: POST /2fa/setup → POST /2fa/confirm (см. Публичный API,
FAQ). Пока он не подключён, экран будет появляться при каждом входе.
1. Завести рекламодателя
curl -s -X POST "$TRACKER/api/v1/advertisers" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"name": "Тестовая CPA-сеть",
"kind": "cpa_network",
"currency": "USD",
"hold_days": 30,
"is_active": true
}'
В ответе — id рекламодателя, он понадобится офферу.
2. Завести оффер
curl -s -X POST "$TRACKER/api/v1/offers" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"advertiser_id": 1,
"name": "Тестовый оффер RU",
"url": "https://advertiser.example.com/landing?clickid={clickid}&sub1={sub1}",
"geo": ["RU"],
"payout_model": "cpa",
"payout": 25,
"currency": "USD",
"status": "active"
}'
URL оффера — с макросами (полный список — в справочнике макросов); {clickid} обязателен,
без него постбек будет нечем сматчить с кликом.
3. Завести источник трафика
curl -s -X POST "$TRACKER/api/v1/sources" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"name": "Мой сайт",
"kind": "seo_site",
"sub_mapping": "{\"sub1\": \"site\", \"sub2\": \"page\"}"
}'
⚠️ sub_mapping (как и cost_credentials, pixel_config) принимается только как JSON,
закодированный строкой — не как вложенный объект. Объект в этом поле ручка отклонит
(400 bad_request, json: cannot unmarshal object into Go struct field ... of type string).
В ответе на создание/чтение источника то же поле, наоборот, отдаётся как обычный вложенный
объект — асимметрия входа/выхода, известная шероховатость API, а не опечатка в примере.
4. Завести поток и получить трекинговую ссылку
Поток связывает источник с офферами. Токен потока (token в ответе) — это и есть
короткая ссылка /{token} и полная /go/{token}.
curl -s -X POST "$TRACKER/api/v1/flows" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"name": "RU — тестовый оффер",
"source_id": 1,
"mode": "redirect_302",
"default_url": "https://example.com/no-offer",
"offers": [{"offer_id": 1, "weight": 100, "is_active": true}]
}'
default_url — обязательный fallback: если ни один оффер не подошёл по гео/весам/капам,
трафик уходит сюда, а не на 404 (трафик оплачен, терять его нельзя).
Получившаяся трекинговая ссылка:
https://<трекер-домен>/go/<token>?sub1=<site>&sub2=<page>
Без sub1/site_id сайт определяется по привязке потока к единственному сайту, если Referer не определил его раньше. При нескольких привязанных сайтах сайт не угадывается.
Проверка вручную:
curl -sI "https://<трекер-домен>/go/<token>?sub1=test-site"
# HTTP/2 302, Location: <URL оффера с подставленными макросами>
5. Настроить приём постбеков от партнёрской сети
Подробности форматов, макросов и пресетов сетей — Постбеки. Минимальный шаг:
создать postback-эндпоинт с токеном под конкретную сеть (эндпоинт для CRUD постбеков
проксируется через /api/v1/postback/...):
curl -s -X POST "$TRACKER/api/v1/postback/endpoints" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"AdvertiserID": 1,
"Name": "Тестовая CPA-сеть",
"Preset": "custom",
"ParamMapping": {"clickid": "clickid", "status": "status", "sum": "sum",
"status_values": {"lead": "lead", "approved": "approve", "reject": "reject"}},
"IsActive": true
}'
⚠️ Обратите внимание на регистр ключей: верхний уровень тела (AdvertiserID, Name,
Preset, ParamMapping, IsActive) — с заглавной буквы, а поля внутри ParamMapping (clickid, status, sum, status_values) —
с маленькой. Разное соглашение в одном теле — известная шероховатость API, а не опечатка
в этом примере.
⚠️ Не забудьте параметр суммы (sum) в маппинге — без него выплата запишется нулём.
Детали и защита от этого — Постбеки.
В ответе — токен эндпоинта в поле Token (ответ, как и тело запроса, — с заглавными
ключами: ID, Token, Name…; jq -r .token вернёт null). Ссылка для сети:
https://<трекер-домен>/pb/<token>?clickid={clickid}&status=approved&sum=25
Пропишите её (или соответствующий пресет) в личном кабинете сети.
6. Увидеть первый клик в отчёте
Кликните по трекинговой ссылке из шага 4 (или прогоните curl несколько раз), затем:
curl -s -X POST "$TRACKER/api/v1/reports/query" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{
"dimensions": ["flow_id", "offer_id"],
"metrics": ["clicks", "uniques"],
"date_from": "2026-09-24",
"date_to": "2026-09-25"
}'
⚠️ /reports/query принимает только POST с JSON-телом (GET вернёт 405), и
обязательно нужны date_from/date_to (YYYY-MM-DD, включительно) — без них 400 bad_request. Имена измерений — flow_id/offer_id, а не flow/offer (полный список —
GET /api/v1/reports/dims, список метрик — GET /api/v1/reports/metrics).
Клики пишутся в буфер и батчатся в ClickHouse раз в 1–2 секунды — если строка не
появилась сразу, подождите пару секунд и повторите запрос. Точный набор путей отчётного
модуля (/api/v1/reports/...) — см. Публичный API и спецификацию
GET /api/v1/openapi.yaml.
Дальше
- Полный справочник макросов ссылок офферов и постбеков — Справочник макросов.
- Детали постбеков (статусная модель, дедуп, пресеты сетей) — Постбеки.
- Публичный API и MCP-сервер (работа с трекером из Claude Code) — Публичный API.
- Обслуживание инстанса.
- Покупка, пробный период, оплата USDT и бесплатные домены — FAQ.