Интеграция по API: заказы со своего лендинга (ручной режим)

4 мин чтения Читать на: English
На этой странице
  1. Что понадобится
  2. Где взять данные для API
  3. Как отправить заказ
  4. Ответ и ошибки
  5. Защита от спама
  6. Как проверить статус заказов
  7. Как проверить интеграцию
  8. Читайте также

Интеграция по API позволяет отправлять заказы в AFF1 со своего лендинга или с лендинга, размещённого на вашем хостинге. Ваш сервер принимает форму заказа и передаёт заказ в AFF1 POST-запросом.

Настроить интеграцию можно двумя способами:

  • Архив — скачать готовый лендинг AFF1 с уже настроенным API и загрузить его на хостинг. Самый простой способ, см. Интеграция по API: готовый архив.
  • Ручная (экспертный режим) — запрос вы пишете сами. Об этом способе — эта статья.

Что понадобится

  • API работает только для целей офферов с интеграцией по API. В списке офферов у таких целей есть зелёная иконка API (Доступна интеграция по API).
  • Нужен доступ к цели оффера. Если оффер По запросу, сначала запросите доступ.
  • Нужен серверный скрипт (на PHP или любом другом языке), который принимает форму заказа. Запрос отправляется с вашего сервера, а не из браузера посетителя.

Никогда не вставляйте API ключ в HTML или JavaScript страницы: любой может открыть код страницы и отправлять заказы с вашим ключом. Ключ должен храниться только на сервере.

Где взять данные для API

  1. Откройте страницу оффера и нажмите API на панели внизу.
  2. В окне API интеграция откройте вкладку Ручная (экспертный режим).
Окно «API интеграция», вкладка «Ручная (экспертный режим)»: API ключ, цель, код страны, hash цели, адрес запроса и доступные поля
Данные для запроса без привязки к потоку

Что есть на вкладке:

  • Api ключ (api_key) — ваш персональный ключ, один для всех офферов.
  • Привязать к потоку — лиды будут попадать в один из ваших потоков. Выберите Поток, и вместо Hash цели (target_hash) окно покажет Hash потока (flow_hash). В списке только потоки, цели которых имеют API интеграцию.
  • Цель и таблица Страна / Код (country_code) — цель и коды её стран.
  • Hash цели (target_hash) — идентификатор цели, который передаётся в запросе.
  • Создать лид — адрес запроса: POST https://api.aff1.com/v3/lead.create.
  • Доступные поля — поля, которые можно передавать, и пример на PHP под таблицей.

Полное описание всех методов и полей — в Инструменты → API.

Кнопка Получить новый выпускает новый API ключ, и текущий ключ сразу перестаёт работать. Все лендинги и скрипты со старым ключом перестанут отправлять заказы, пока вы не замените в них ключ.

Как отправить заказ

Отправьте POST-запрос на https://api.aff1.com/v3/lead.create с полями формы:

ПолеОбязательноеЧто передавать
api_keyдаваш API ключ
target_hash или flow_hashдаhash цели или hash потока, если привязываете лиды к потоку
phoneдателефон из формы, от 6 до 24 символов
country_codeкод страны ISO 3166-1 alpha-2 (PE, PH…), по нему определяется гео цель
nameполное имя клиента
ip, user_agent, referer, browser_localeIP посетителя, User-Agent, адрес страницы и двухбуквенный язык браузера
clickidid клика вашего трекера, возвращается в постбеках как {clickid}
data1…data4ваши параметры, до 32 символов каждый
fbclid, fbpxдля Facebook Conversions API

Адрес, email, комментарий, количество, удобное время звонка и другие поля описаны в Инструменты → API.

Пример запроса через curl (подставьте свои значения):

curl https://api.aff1.com/v3/lead.create \
  -F api_key=YOUR_API_KEY \
  -F target_hash=AbCd1234 \
  -F country_code=PE \
  -F name="Juan Perez" \
  -F phone=51900000000 \
  -F clickid=abc123

В примере на PHP на вкладке Ручная (экспертный режим) уже подставлены ваш ключ и hash, а также передаются IP, User-Agent, referer и язык посетителя.

Ответ и ошибки

Успешный ответ:

{"status":"success","data":{"lead_hash":"..."}}

Сохраните lead_hash — это id заказа в AFF1, по нему проверяется статус.

Если что-то не так, в ответе будет "status":"error" и поля error_code, error_message, error_fields:

ОшибкаЧто значит
FORBIDDEN_ERRORДоступ с этим API ключом запрещён: ключ неверный или был заменён
VALIDATION_ERRORПоле не передано или в неверном формате; какое — видно в error_fields
NOT_VALID_TARGET_HASHНеверный target_hash
CANNOT_DETECT_TARGET_GEOAFF1 не смог определить гео цель — передайте country_code одной из стран цели
LEAD_DOUBLEДубль: заказ с тем же телефоном на ту же гео цель уже приходил менее 30 минут назад. В error_fields — lead_hash первого заказа
HTTP 429Слишком много заказов, сработала защита от спама (см. ниже)
SERVER_ERRORОшибка на стороне AFF1, повторите запрос позже

Защита от спама

Стандартные лимиты на количество добавляемых заказов:

  • 20 лидов в минуту;
  • 60 лидов за последние 5 минут;
  • 100 лидов за последние 15 минут.

Если превысить лимит, добавление заказов блокируется на следующий час (HTTP 429). Для интенсивных потоков валидных заказов лимиты можно изменить или отключить — обратитесь к личному менеджеру.

Как проверить статус заказов

GET https://api.aff1.com/v3/lead.info с параметрами api_key и hashes — один или несколько lead_hash через запятую.

СтатусЗначение
newзаказ добавлен и ещё не обработан
approvedзаказ подтверждён
cancelledзаказ отменён
trashedзаказ отменён как трэш: невалидные данные, дубль или тест

Чтобы получать статусы сразу, используйте постбек, а не регулярные запросы к lead.info.

Баланс: GET https://api.aff1.com/v3/my.balance с api_key возвращает balance_usd, balance_eur, hold_usd и hold_eur.

Как проверить интеграцию

  1. Отправьте форму на своём лендинге и проверьте, что скрипт получил ответ с lead_hash.
  2. Найдите заказ в Статистика → Лиды.
  3. Если настроен постбек, проверьте, что он пришёл в трекер.

Тестовые заказы уходят в трэш. Если нужно проверить всю воронку до колл-центра, заранее согласуйте тест с личным менеджером.

Остались вопросы?

Личный менеджер и поддержка AFF1 отвечают в Telegram 24/7.