Привет, гуру арбитражного мира! 🚀
Сегодня мы погружаемся в мир 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 завершена. Всем удачных заливов!