API интеграция с партнеркой m1.top: Настройка постбеков в Кейтаро

Настройка api партнерка m1.top API интеграции с ПП

Всем привет! В этой статье я подробно разберу процесс настройки API интеграций с CPA-сетью m1.top. Поделюсь полезными советами и помогу настроить работу с партнерской сетью без лишних сложностей, чтобы у вас было больше времени на заливку трафика.

Добавлю, что команда m1.top особенно сильна в обработке трафика в Европе и демонстрирует высокие показатели апрува. Это одна из топовых сетей в сфере нутры, с множеством эксклюзивных офферов и круглосуточным колл-центром. Эти факторы значительно улучшают показатели апрува и общую эффективность работы. m1.top – это проверенная временем партнерская программа с профессиональными и отзывчивыми менеджерами, которые всегда готовы помочь. Она определенно заслуживает внимания арбитражников.

Ну а теперь перейдем к делу и настроим интеграцию с партнерской программой m1.top.

Задача: Настройка API интеграции с партнерской программой m1.top

Будем настраивать постбеки в Кейтаро и партнерской программе, а также передачу лидов по API.

Настройка постбеков в Кейтаро

В Кейтаро уже есть встроенный шаблон для m1.top. Если вы используете другой трекер или по каким-то причинам шаблона нет, вот настройка:

  • Название: m1.top
  • Параметры для оффера: w={subid}

Postback URL: ВАШ_Домен/postback?subid={w}&status={status}&sale_status=approved&lead_status=new&rejected_status=declined&payout={web_total}&from=m1.top

Теперь перейдем в партнерскую программу:

  1. Идем в ПП → Инструменты → Глобальный Postback.
  2. Метод передачи: GET
  3. Ставим галочки: Создание заказа, Подтверждение заказа, Отмена заказа
  4. В поле postbackURL вписываем наш постбек: ВАШ_Домен/postback?subid={w}&status={status}&sale_status=approved&lead_status=new&rejected_status=declined&payout={web_total}&from=m1.top

После этого нажимаем кнопку «Сохранить».

Первый этап настройки завершен

Постбеки в партнерской сети m1.top и Кейтаро настроены. Теперь приступим к самой интеграции.

Интеграция API на лендинге

Идем на наш лендинг и находим форму. В форму вставляем макрос с sub_id для корректной работы постбеков:

<input type="hidden" name="sub1" value="{subid}">

Пример формы:

<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

Теперь разберем файл api.php, на который ссылается наша форма, для отправки лидов в ПП. Этот скрипт написан на PHP и выполняет следующие основные функции:

  1. Проверка дублирования лидов (заявок) по номеру телефона.
  2. Очистка номера телефона от лишних символов.
  3. Отправка данных заявки на внешний сервер через cURL.
  4. Перенаправление пользователя на страницу успеха или ошибки в зависимости от ответа сервера.

Разбор кода

Функция 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;
    }
}
  1. Проверка существования файла leads.txt:
    • Если файл не существует, он создается с пустым содержимым.
  2. Чтение содержимого файла leads.txt:
    • Содержимое файла читается в строку.
  3. Проверка наличия номера телефона в файле:
    • Номер телефона экранируется для безопасного использования в регулярном выражении.
    • Проверяется наличие номера телефона в файле с помощью регулярного выражения.
    • Если номер найден, возвращается true (дубликат).
    • Если номер не найден, он добавляется в файл, и функция возвращает false.

Функция cleanPhoneNumber

function cleanPhoneNumber($phoneNumber)
{
    return preg_replace('/[^0-9]/', '', $phoneNumber);
}
  1. Очистка номера телефона:
    • Удаляются все символы, кроме цифр, из строки номера телефона.

Основной скрипт

$cleanedPhone = cleanPhoneNumber($_POST['phone']);

if (isDuplicateLead($cleanedPhone)) {
    header('Location: error.php');
    exit;
}
  1. Очистка номера телефона:
    • Введенный пользователем номер телефона очищается от лишних символов.
  2. Проверка на дубликат:
    • Если номер телефона уже существует в файле leads.txt, пользователь перенаправляется на страницу ошибки error.php.

Отправка данных на внешний сервер

$url = 'http://m1.top/send_order/';
$data = [
    'ref' => Ваш_ref_в_ПП,
    'api_key' => 'АПИ_Ключ',
    'product_id' => ID_оффера_Из_ПП,
    'phone' => $_REQUEST['phone'],
    'name' => $_REQUEST['name'],
    'ip' => $_SERVER['REMOTE_ADDR'],
    's' => $_REQUEST['sub2'],
    'w' => $_REQUEST['sub1'],
    't' => $_REQUEST['sub3'],
    'p' => $_REQUEST['sub4'],
    'm' => $_REQUEST['sub5'],
];
$data['langCode'] = 'Страна_Оффера';

$process = curl_init();
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR
1.1.4322; Media Center PC 4.0)");
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($process, CURLOPT_TIMEOUT, 20);
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($process, CURLOPT_POST, true);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_URL, $url);

echo $return = curl_exec($process);
curl_close($process);
  1. Настройка данных для отправки:
    • Создается массив данных для отправки на внешний сервер.
  2. Настройка cURL для отправки POST-запроса:
    • Инициализация cURL.
    • Настройка различных параметров cURL, таких как URL, тип запроса (POST), данные для отправки, таймаут и т.д.
  3. Выполнение запроса и получение ответа:
    • Запрос отправляется на внешний сервер.
    • Ответ сохраняется в переменную $return.
    • Соединение cURL закрывается.

Обработка ответа от сервера

$arr = json_decode($return, true);

if (!$arr['error']) {
    header('location: ./success.php?pxl=' . $_POST['pxl'] . '');
} else {
    echo $return;
}

Декодирование JSON ответа:

  • Ответ сервера декодируется из JSON в массив.

Проверка наличия ошибки:

  • Если ошибки нет ('error' => false), пользователь перенаправляется на страницу успеха success.php.
  • Если ошибка есть, ответ сервера выводится на экран.

Этот скрипт служит для обработки заявок на на нашем лендинге. Он проверяет, был ли уже отправлен номер телефона, чтобы избежать дубликатов, очищает номер телефона, отправляет данные заявки на внешний сервер партнерки m1.top, и обрабатывает ответ сервера, перенаправляя пользователя на страницу успеха или ошибки в зависимости от результата.


Надеюсь, эта статья помогла вам лучше понять процесс настройки API интеграций с CPA-сетью m1.top. Мы разобрали настройку постбеков в Кейтаро, интеграцию API на лендинге и поделились полезными советами.

Не забывайте добавить страницы: Спасибо за заказ и страницу Ошибки. Мультиязычные страницы находятся внутри данных ссылок.

Готовый файл API и бонус

Для вашего удобства, прикрепляю готовый файл api.php, чтобы вы могли быстро настроить интеграцию. Также, как бонус, делюсь хорошим лендингом, на который мы залили много трафика и получили отличный результат на оффере IdealFit (ГЕО: Испания).

Если у вас возникнут вопросы или предложения, не стесняйтесь делиться ими в нашем чате. Буду рад помочь!

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