API интеграция сайта с CPA сетью leadbit.com

API интеграция сайта с CPA сетью leadbit.com API интеграции с ПП

Привет, гуру арбитражного мира! 🚀

Сегодня мы погружаемся в мир API интеграций, раскрывая секреты работы с партнёрской программой Leadbit.com. 🌐

Рассмотри как настроить постбеки в кейтаро с cpa сетью leadbit, как настроить форму для передачи лидов в партнерку, так же настроим апи файл ПП leadbit.

Leadbit — это проверенная временем партнёрка с крутым support’ом и справедливыми ставками. У них куча инхаус офферов для разных ГЕО, и с выплатами проблем не возникает. Так что, друзья, можно смело заливаться и ждать хороших ROI! 💸

🔧 Настройка API и постбеков в Кейтаро для Leadbit:

Начнем с настройки постбеков в кейтаро с ПП leadbit.com

  1. Кейтаро:
    • Шаблон: Если нет предустановленного шаблона для Leadbit, используйте такие настройки:
      • Название: Leadbit.com
      • Параметры для оффера: sub1={subid}
      • Postback URL: ВАШ_Домен/postback?subid={sub1}&payout={cost}&status={status}&currency=usd&tid={id}&offer_landing={landing}&flow={flow}&lead_status=new&sale_status=confirm&rejected_status=reject,decline,invalid,trash&from=leadbit.com
  2. Партнёрская программа Leadbit:
    • В разделе ГЛОБАЛЬНЫЙ ПОСТБЭК введите разные типы Postback в зависимости от статуса лида:
      • Новый лид, подтверждение, отклонение, невалидные и треш лиды.

Postback при новом лиде — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=new&currency=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com

Postback при подтверждении лида – ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=confirm&currency=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com

Postback при отклонении лида — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=decline&currency=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com

Postback на невалидный лид — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=invalid&currency=usd&tid={id}&offer_landing={landing}&flow={flow}&from=leadbit.com

Postback на треш лид — ВАШ_Домен/postback?subid={sub1}&payout={cost}&status=trash&currency=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 завершена. Всем удачных заливов!

Оцените статью
BoostClicks