Приём лидов из форм
Как передать имя, телефон и email из формы страницы в трекер и как вести журнал лидов локального оффера.
Трекер принимает данные из формы по двум адресам: /api/v1/lead закрепляет email, телефон и имя за кликом, /api/v1/lead-file дописывает лид строкой в журнал leads.php локального оффера. Оба адреса работают без авторизации на домене трекинга и на доменах кампаний, поэтому страница отправляет данные на свой же домен.
Что выбрать
| Способ | Куда попадают данные | Кто видит |
|---|---|---|
/api/v1/lead | Блок Данные лида в окне клика | Владелец и администратор |
/api/v1/lead-file | Файл leads.php в редакторе локального оффера | Владелец, администратор и сотрудник, которому принадлежит оффер |
Способы не зависят друг от друга: запись в журнал не заполняет блок Данные лида, и наоборот. Одна форма может отправлять данные на оба адреса.
В обоих запросах клик передаётся в параметре click_id, subid или aff_sub. На локальной странице, открытой по ссылке кампании, значение подставляет макрос {click_id}.
Привязка данных к клику
Адрес /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-коде страницы, открытой по ссылке кампании, путь от корня в атрибутах action и src трекер направляет в папку страницы, и запись 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 принимает запрос только с верным параметром secret. Иначе ответ — 401. Форма из заготовки секрет не передаёт. Как задать секрет — на странице Входящий постбек. Адрес /api/v1/lead-file секрет не проверяет.
Повторная отправка на /api/v1/lead по тому же клику:
- секрет у источника не задан — заполняются только пустые поля, сохранённые значения не меняются;
- секрет задан и передан верно — пришедшие поля заменяют прежние, а не переданные остаются как были.
Где видны данные лида
Блок видят владелец и администратор.
- Откройте статистику кампании.
- Перейдите на вкладку Лог кликов.
- Нажмите на строку клика.
В окне клика есть блок Данные лида со строками Email, Телефон, Имя, Фамилия. Пустые строки не показываются. Если форма по клику не отправлялась, в блоке написано «нет данных (лид не отправлял форму)». В карточке клика раздела Логи контакты не выводятся — там показано только время обновления данных формы.
Эти же данные трекер подставляет в событие Facebook Conversions API, когда email, телефон или имя не пришли в постбеке.
Каждый принятый запрос оставляет запись в Логи → Postbacks: «Данные лида закреплены за … (email/телефон/имя)». Если запрос не изменил сохранённые данные, запись другая: «Данные лида за … уже сохранены — без секрета источника не перезаписываются». На месте многоточия — ID клика.
Журнал лидов локального оффера
Адрес /api/v1/lead-file принимает только POST. Данные передаются в теле запроса: обычной формой, FormData или JSON-объектом с заголовком Content-Type: application/json.
| Параметр | Что передать |
|---|---|
click_id, subid или aff_sub | ID клика. Обязателен |
offer | ID локального оффера. Обязателен. Должен совпадать с оффером этого клика |
lead_id | Свой номер лида, необязательно |
email | |
name либо first_name и last_name | Имя |
phone либо phonecc и phone_national | Телефон целиком либо код страны и номер отдельно |
ID оффера виден в адресе редактора: https://panel.example.com/offers/<ID оффера>/editor.
Нужно хотя бы одно из трёх: email, телефон или имя. Каждое значение обрезается до 256 символов. При успехе трекер отвечает ok и пишет в Логи → Postbacks: «Лид оффера … записан в leads.php».
Запрос отправляет скрипт страницы оффера — так же, как в заготовке выше, но на адрес /api/v1/lead-file и с полем offer. Обычный PHP страницы исходящих запросов не делает — см. PHP в локальных страницах и доступ в сеть.
Файл leads.php
Трекер создаёт журнал в корне оффера при первом лиде. Файл виден в дереве файлов редактора. Первая строка служебная, дальше одна запись — одна строка JSON:
{"ts":"2026-10-04T12:30:00Z","click_id":"k3m9x2pq7wzt","conversions_tracking":"abc123","lead_id":"1024","email":"[email protected]","name":"Иван Петров","phone":"+1 2025550123"}Время в ts — UTC. В conversions_tracking попадает значение токена источника conversions_tracking, а если его нет — токена external_id.
- Журнал открывают владелец, администратор и сотрудник, которому принадлежит оффер. Остальным он в редакторе не показывается.
- По прямому адресу журнал не отдаётся: запрос к
leads.phpполучает ответ 404, при выключенном PHP — 403. - Когда в
leads.phpнабирается 5 МиБ, файл переименовывается вleads-<дата и время UTC>.php, запись продолжается в новыйleads.php. - Хранится до 10 таких частей. После этого новые лиды не записываются, пока вы не удалите старые части в редакторе.
- Переименовать журнал нельзя. Удалить можно. У оффера с флажком PHP с доступом в сеть журнал удаляют только владелец и администратор.
- При загрузке нового ZIP журнал сохраняется. В копию оффера, в версии кода и в Экспорт ZIP он не попадает.
- Не меняйте первую строку журнала и не кладите в корень архива свой файл
leads.php. В файл без служебной первой строки трекер лиды не дописывает, запросы получают ответ 500.
Когда журнал заполнен, запросы получают ответ 500 и лиды не сохраняются. В Логи → Системный лог появляется запись «Журнал лидов оффера … достиг потолка — новые лиды не пишутся». Откройте старые части журнала в редакторе, скопируйте нужные записи и удалите эти файлы.
Лимиты
- 600 запросов в минуту с одного IP — общий счётчик для обоих адресов.
- 5 записей в час в журнал по одному клику одного оффера.
- 1 МиБ на тело запроса.
Ошибки и их причины
Ответ с ошибкой — JSON с полями code и message. В таблице — значение message.
| Код | Сообщение | Причина |
|---|---|---|
| 400 | click_id (или subid) обязателен | Параметр с ID клика не передан или пуст |
| 404 | click not found | Клика с таким ID нет. Так же отвечает запрос, в котором макрос {click_id} остался текстом |
| 401 | invalid secret | У источника задан секрет, а параметр secret не передан или не совпал. Только /api/v1/lead |
| 422 | нет данных лида (email/phone/name) | Все поля с данными пустые. Проверьте имена полей формы |
| 404 | offer not found | Параметр offer не передан, оффер не локальный или не совпадает с оффером клика. Только /api/v1/lead-file |
| 429 | слишком много лидов по этому клику | Больше 5 записей в час по одному клику. Только /api/v1/lead-file |
| 429 | слишком много запросов, попробуйте позже | Больше 600 запросов в минуту с одного IP |
| 500 | cannot save lead | Запись не сохранена. Для /api/v1/lead-file: журнал заполнен или в корне оффера лежит файл leads.php без служебной первой строки |
| 503 | temporary error, retry later, try again later | Временный сбой. Повторите запрос позже |