API данных лида по клику
Как привязать контакты к клику через /api/v1/lead без файлового журнала формы.
Адрес /api/v1/lead сохраняет email, телефон и имя в данных клика. Он работает без API-токена на домене трекинга и доменах кампаний. Это отдельная функция аналитики и CAPI: она не отправляет заявку партнёрской сети и не создаёт файловый журнал формы.
Привязка данных к клику
Адрес /api/v1/lead принимает GET и POST. Данные передаются в параметрах адреса или в теле запроса: обычной формой или FormData.
| Параметр | Что передать |
|---|---|
click_id, subid или aff_sub | ID клика. Обязателен |
email | |
phone | Телефон |
first_name, name или fname | Имя |
last_name или lname | Фамилия |
secret | Действующий секрет сети или прежний секрет источника, если задан |
Нужно хотя бы одно поле с данными. На POST трекер отвечает текстом ok, на GET — прозрачной картинкой 1×1.
Данные можно отправлять скриптом, как в заготовке ниже, или обычной HTML-формой и пикселем. В HTML-коде страницы, открытой по ссылке кампании, пути от корня в атрибутах action и src трекер направляет в папку страницы, но адрес /api/v1/lead не меняет: запись action="/api/v1/lead" дойдёт до трекера — см. Локальный хостинг.
Готовая форма в редакторе
- Откройте Офферы или Лендинги.
- В строке локальной страницы нажмите Редактор.
- Нажмите + Файл.
- В блоке Заготовка выберите HTML + форма лида.
- Проверьте Путь файла. Редактор подставит
index.html, а если такой файл уже есть —page.html. - Нажмите Создать.
В файле появится страница с формой из полей first_name и phone и скриптом отправки:
<form id="lead-form">
<input name="first_name" placeholder="Имя" required>
<input name="phone" placeholder="Телефон" required>
<button type="submit">Отправить</button>
</form>
<script>
document.getElementById('lead-form').addEventListener('submit', function (e) {
var fd = new FormData(e.target);
fd.append('click_id', '{click_id}');
navigator.sendBeacon('/api/v1/lead', fd);
});
</script>Макрос {click_id} заменяется ID клика на странице, открытой по ссылке кампании. В предпросмотре настоящего клика нет. Проверяйте приём данных по ссылке тестовой кампании, а не через предпросмотр. Работа с файлами — на странице Редактор файлов, версии и экспорт.
Секрет и повторные отправки
/api/v1/lead проверяет секрет входящего постбэка: сначала сеть выданного оффера, а при отсутствии новой настройки — прежнюю защиту источника. Неверный или отсутствующий обязательный секрет возвращает 401. Заготовка формы секрет сама не добавляет.
Без обязательного секрета запрос заполняет только пустые поля. При верно переданном действующем секрете пришедшие поля могут заменить сохранённые, не переданные сохраняются. Не публикуйте секрет в доступном посетителям коде формы.
Где видны данные лида
Блок видят владелец и администратор.
- Откройте статистику кампании.
- Перейдите на вкладку Лог кликов.
- Нажмите на строку клика.
В окне клика есть блок Данные лида со строками Email, Телефон, Имя, Фамилия. Пустые строки не показываются. Если форма по клику не отправлялась, в блоке написано «нет данных (лид не отправлял форму)». В карточке клика раздела Логи контакты не выводятся — там показано только время обновления данных формы.
Эти же данные трекер подставляет в событие Facebook Conversions API, когда email, телефон или имя не пришли в постбеке.
В выпуске 20261101.1 HTTP 200 означает, что запрос сохранён в очереди данных лида; контакты могут появиться в карточке клика позже. Успешный ответ очереди не гарантирует отдельную запись в Логи → Postbacks. Проверяйте карточку клика, а для владельца или администратора доступен GET /api/v1/maintenance/lead-queue со счётчиками без контактов.
Лимиты
- 600 запросов в минуту с одного IP.
- 1 МиБ на тело запроса.
- Принимаются параметры GET, обычная POST-форма и
multipart/form-data; JSON не является форматом этого адреса.
Ошибки и проверка
| HTTP | Сообщение | Что проверить |
|---|---|---|
| 400 | click_id (или subid) обязателен | Передан ID клика |
| 400 | invalid form encoding | Тело запроса — корректная форма или multipart/form-data |
| 404 | click not found | Клик существует; макрос не остался текстом |
| 401 | invalid secret | Действующий обязательный секрет передан серверным обработчиком |
| 413 | lead form exceeds 1 MiB | Тело запроса не больше 1 МиБ |
| 422 | нет данных лида (email/phone/name) | Передано хотя бы одно поле контактов |
| 422 | Данные лида превышают допустимый размер | Email не длиннее 512 байт, телефон — 128 байт, имя и фамилия — 256 байт |
| 429 | слишком много запросов, попробуйте позже | Лимит запросов с IP |
| 503 | temporary error, retry later | Временный сбой: лид не удалось поставить в очередь или проверить клик. В ответе заголовок Retry-After: 5 — повторите запрос |
| 503 | clickhouse unavailable | Доступность аналитики и сервера |
Проверяйте на тестовом клике и получателе: ответ запроса, блок данных клика и получение заявки партнёркой — разные проверки. Вызов navigator.sendBeacon сам по себе не подтверждает приём сервером. Не повторяйте реальную заявку только из-за отсутствия страницы благодарности.
Файлового журнала формы больше нет. Пользовательский обработчик leads.php сохраняется как обычный PHP-файл страницы; правила PHP и защита страниц действуют отдельно.