Привет, гуру арбитражного мира! 🚀
Сегодня мы погружаемся в мир API интеграций, раскрывая секреты работы с партнёрской программой Leadbit.com. 🌐
Рассмотри как настроить постбеки в кейтаро с cpa сетью leadbit, как настроить форму для передачи лидов в партнерку, так же настроим апи файл ПП leadbit.
Leadbit — это проверенная временем партнёрка с крутым support’ом и справедливыми ставками. У них куча инхаус офферов для разных ГЕО, и с выплатами проблем не возникает. Так что, друзья, можно смело заливаться и ждать хороших ROI! 💸
- 🔧 Настройка API и постбеков в Кейтаро для Leadbit:
- Начнем с настройки постбеков в кейтаро с ПП leadbit.com
- Интеграция API на лендинге:
- Разбор файла api.php для отправки лидов в Leadbit:
- Описание кода
- 1. Функция isDuplicateLead
- 2. Функция cleanPhoneNumber
- 3. Основная логика
- 4. Функция send_the_order
- Полный код файла api.php для передачи лидов в CPA сеть leadbit
🔧 Настройка API и постбеков в Кейтаро для Leadbit:
Начнем с настройки постбеков в кейтаро с ПП leadbit.com
- Кейтаро:
- Шаблон: Если нет предустановленного шаблона для Leadbit, используйте такие настройки:
- Название: Leadbit.com
- Параметры для оффера: sub1={subid}
- Postback URL: ВАШ_Домен/postback?subid={sub1}&payout={cost}&status={status}¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&lead_status=new&sale_status=confirm&rejected_status=reject,decline,invalid,trash&from=leadbit.com
- Шаблон: Если нет предустановленного шаблона для Leadbit, используйте такие настройки:
- Партнёрская программа Leadbit:
- В разделе ГЛОБАЛЬНЫЙ ПОСТБЭК введите разные типы Postback в зависимости от статуса лида:
- Новый лид, подтверждение, отклонение, невалидные и треш лиды.
- В разделе ГЛОБАЛЬНЫЙ ПОСТБЭК введите разные типы Postback в зависимости от статуса лида:

Postback при новом лиде — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=new¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com
Postback при подтверждении лида – ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=confirm¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com
Postback при отклонении лида — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=decline¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com
Postback на невалидный лид — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=invalid¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com
Postback на треш лид — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=trash¤cy=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com

🔗 После настройки не забудьте сохранить изменения!
Интеграция API на лендинге:
- Вставьте в форму на лендинге макрос с sub_id для корректной работы постбеков:
<form action="api.php" method="POST">
<input class="wheel_input" name="name" placeholder="Nombre" type="text" required>
<input class="wheel_input" name="phone" placeholder="Numero de telefono" type="tel" required>
<button class="main-link">КУПИТЬ</button>
<input type="hidden" name="sub1" value="{subid}">
<input type='hidden' name='pxl' value="<?php echo $_GET['pxl']; ?>" />
</form>
💡 Пример выше показывает типичную форму, в которую добавлены сабайди и код пикселя.
Разбор файла api.php для отправки лидов в Leadbit:
Этот скрипт обрабатывает форму, отправляет данные на удаленный сервер и ведет лог всех отправленных лидов. Также он проверяет, был ли уже отправлен лид с таким же номером телефона, чтобы избежать дублирования.
Описание кода
1. Функция isDuplicateLead
Эта функция проверяет, был ли уже зарегистрирован лид с данным номером телефона.
function isDuplicateLead($phone) {
$file = 'leads.txt';
if (!file_exists($file)) {
file_put_contents($file, '');
}
$leads = file_get_contents($file);
$escapedPhone = preg_quote($phone, '/');
$phonePattern = '/' . $escapedPhone . "\n/";
if (preg_match($phonePattern, $leads)) {
return true;
} else {
file_put_contents($file, $phone . "\n", FILE_APPEND);
return false;
}
}
isDuplicateLead($phone): Проверяет, дублируется ли номер телефона.file_exists($file): Проверяет, существует ли файлleads.txt.file_put_contents($file, ''): Создает файлleads.txt, если его нет.file_get_contents($file): Считывает содержимое файлаleads.txt.preg_quote($phone, '/'): Экранирует специальные символы в номере телефона для использования в регулярных выражениях.preg_match($phonePattern, $leads): Проверяет, есть ли номер телефона в файле.file_put_contents($file, $phone . "\n", FILE_APPEND): Если номера телефона нет в файле, добавляет его.
2. Функция cleanPhoneNumber
Эта функция очищает номер телефона от всех символов, кроме цифр.
function cleanPhoneNumber($phoneNumber) {
return preg_replace('/[^0-9]/', '', $phoneNumber);
}
preg_replace('/[^0-9]/', '', $phoneNumber): Удаляет все символы, кроме цифр.
3. Основная логика
Сначала очищается номер телефона, затем проверяется на дублирование. Если номер уже существует, перенаправляет на error.php. Если нет, отправляется заказ.
$cleanedPhone = cleanPhoneNumber($_POST['phone']);
if (isDuplicateLead($cleanedPhone)) {
header('Location: error.php');
exit;
}
if (!empty($_REQUEST["phone"])) {
send_the_order($_REQUEST);
}
cleanPhoneNumber($_POST['phone']): Очищает номер телефона.isDuplicateLead($cleanedPhone): Проверяет, дублируется ли номер телефона.header('Location: error.php'): Перенаправляет наerror.php, если номер телефона уже есть в базе.send_the_order($_REQUEST): Отправляет заказ, если номер телефона новый.
4. Функция send_the_order
Эта функция отправляет данные заказа на удаленный сервер и ведет лог.
function send_the_order($request) {
$params = array(
"flow_hash" => $request["hash"],
"landing" => $request["landing"],
"phone" => $request["phone"],
"name" => $request["name"],
"country" => $request["country"],
"referrer" => $request["referrer"],
"address" => $request["address"],
"email" => $request["email"],
"lastname" => $request["lastname"],
"comment" => $request["comment"],
"layer" => $request["layer"],
'sub1' => $request['sub1'],
'sub2' => $request['sub2'],
'sub3' => $request["sub3"],
"sub4" => $request["sub4"],
"sub5" => $request["sub5"],
);
// запись ВСЕХ лидов в файл log.txt
$date = date("Y-m-d H:i:s");
$string = 'Дата/Время: ' . $date . ' Имя: ' . $_REQUEST["name"] . ' Телефон: ' . $_REQUEST["phone"] . ' Сабайди: ' . $_REQUEST["sub1"] . ' id Сотрудника: ' . $_REQUEST["sub4"] . ' Pixel: ' . $_REQUEST["subid6"] . PHP_EOL;
file_put_contents('./log.txt', $string, FILE_APPEND);
$url = "http://wapi.leadbit.com/api/pub/new-order/_АПИ_КЛЮЧ";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$return = curl_exec($ch);
curl_close($ch);
header('location: ./success.php?pxl=' . $_POST['pxl'] . '');
}
$params: Массив с данными заказа.date("Y-m-d H:i:s"): Текущая дата и время.file_put_contents('./log.txt', $string, FILE_APPEND): Запись данных в лог-файлlog.txt.curl_init(),curl_setopt(),curl_exec(),curl_close(): Инициализация и выполнение запроса cURL для отправки данных заказа на удаленный сервер.header('location: ./success.php?pxl=' . $_POST['subid6'] . ''): Перенаправление на страницу успеха после отправки заказа.
Этот скрипт обрабатывает форму, проверяет на дублирование номеров телефонов, ведет лог всех отправленных лидов и отправляет данные заказа на удаленный сервер.
Полный код файла api.php для передачи лидов в CPA сеть leadbit
<?php
function isDuplicateLead($phone) {
$file = 'leads.txt';
if (!file_exists($file)) {
file_put_contents($file, '');
}
$leads = file_get_contents($file);
$escapedPhone = preg_quote($phone, '/');
$phonePattern = '/' . $escapedPhone . "\n/";
if (preg_match($phonePattern, $leads)) {
return true;
} else {
file_put_contents($file, $phone . "\n", FILE_APPEND);
return false;
}
}
function cleanPhoneNumber($phoneNumber) {
return preg_replace('/[^0-9]/', '', $phoneNumber);
}
$cleanedPhone = cleanPhoneNumber($_POST['phone']);
if (isDuplicateLead($cleanedPhone)) {
header('Location: error.php');
exit;
}
if (!empty($_REQUEST["phone"])) {
send_the_order($_REQUEST);
}
function send_the_order($request)
{
$params = array(
"flow_hash" => $request["hash"],
"landing" => $request["landing"],
"phone" => $request["phone"],
"name" => $request["name"],
"country" => $request["country"],
"referrer" => $request["referrer"],
"address" => $request["address"],
"email" => $request["email"],
"lastname" => $request["lastname"],
"comment" => $request["comment"],
"layer" => $request["layer"],
'sub1' => $request['sub1'],
'sub2' => $request['sub2'],
'sub3' => $request["sub3"],
"sub4" => $request["sub4"],
"sub5" => $request["sub5"],
);
//запись ВСЕХ лидов в файл log.txt
$date = date("Y-m-d H:i:s");
$string = 'Дата/Время: ' . $date . ' Имя: ' . $_REQUEST["name"] . ' Телефон: ' . $_REQUEST["phone"] . ' Сабайди: ' . $_REQUEST["sub1"] . ' id Сотрудника: ' . $_REQUEST["sub4"] . ' Pixel: ' . $_REQUEST["subid6"] . PHP_EOL;
file_put_contents('./log.txt', $string, FILE_APPEND);
$url = "http://wapi.leadbit.com/api/pub/new-order/_АПИ_КЛЮЧ";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$return = curl_exec($ch);
curl_close($ch);
header('location: ./success.php?pxl=' . $_POST['pxl'] . '');
}
НЕ ЗАБЫВАЙТЕ УКАЗЫВАТЬ СВОЙ API KEY ИЗ ЛИЧНОГО КАБИНЕТА ПП
Так же прикрепляю файл интеграции с партнеркой, ниже можно по кнопке его скачать.
На этом настройка интеграции с партнерской сетью leadbit.com завершена. Всем удачных заливов!



