Перейти к содержанию

Как автоматизировать поиск нулевого апрува в Keitaro? Делаем бота

В этой статье рассказывается, как с помощью простого скрипта можно оперативно выявлять нулевые апрувы в Keitaro и уведомлять об этом команду через Telegram. Приведён реальный кейс…

Как автоматизировать поиск нулевого апрува в Keitaro? Делаем бота

В этой статье рассказывается, как с помощью простого скрипта можно оперативно выявлять нулевые апрувы в Keitaro и уведомлять об этом команду через Telegram. Приведён реальный кейс и пошаговое описание решения.

Предыстория…

Ситуация, с которой мы столкнулись, произошла примерно через 7 дней после запуска новой ПП (партнёрской программы). Мы завели новую ПП и начали активно лить трафик — около 300 лидов в день. В какой-то момент баер сообщил, что получил нулевой апрув.

При анализе логов в Keitaro выяснилось, что постбек действительно пришёл со значением payout=0. После обращения в ПП получили ответ, что система настроена так, что если IP или телефон не соответствуют целевому ГЕО пользователя, то апрув считается системой нулевым. Несмотря на то, что нулевой апрув был оплачен, ситуация повторялась практически каждый день.

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

Решение: автоматизация через Telegram-бота

Чтобы не вручную искать нулевые апрувы по всем компаниям, было решено написать Telegram-бота, который будет проверять все апрувы. Если сумма апрува окажется меньше заданного порога, бот отправит сообщение в чат с баерами.

Основные шаги решения

  1. Настройка S2S постбека в Keitaro.
    Чтобы не отслеживать вручную все компании, в Keitaro необходимо навесить S2S постбек на источник (или на конкретную кампанию). Затем следует сохранить источник с обновлением во всех нужных компаниях. Пример URL постбека:
    https://ваш-сайт/index.php?campaign_name={campaign_name}&adset_name={{adset.name}}&ad_name={{ad.name}}&offer_id={offer_id}&country={country}&revenue={revenue}&sub_id={subid}
    

    Этот URL передаёт параметры: название кампании, название адсета и объявления, ID оффера, GEO, сумму апрува и SubID.

    2. Написание Telegram-бота.Для написания бота подробности по созданию и получению API токена можно искать отдельно — здесь важна сама логика обработки постбека и отправки уведомлений.

        Ниже приведён пример PHP-кода, который обрабатывает данные из постбека и, при обнаружении суммы апрува меньше 4, отправляет уведомление в Telegram:

        <?php
        
        ini_set('display_errors', 1);
        ini_set('display_startup_errors', 1);
        error_reporting(E_ALL);
        
        // Получение параметров из GET-запроса
        $campaign_name = $_GET['campaign_name'] ?? '';
        $adset_name    = $_GET['adset_name'] ?? '';
        $ad_name       = $_GET['ad_name'] ?? '';
        $offer_id      = $_GET['offer_id'] ?? '';
        $country       = $_GET['country'] ?? '';
        $revenue       = (float) ($_GET['revenue'] ?? 0);
        $sub_id        = $_GET['sub_id'] ?? '';
        
        // Массив мотивационных сообщений для разнообразия уведомлений
        $messages = [
            "✅ Жизнь коротка, успей налить себе чаю!",
            "✅ Кто рано встаёт, тот апрувчик найдёт!",
            "✅ Падай семь раз, апрувь восемь!",
            "✅ Сегодня твой день, не забывай об этом!",
            "✅ Апрув — это маленькая победа над миром!",
            "✅ Улыбайся, пока работаешь, это пугает конкурентов!",
            "✅ Всё получится, даже если не сразу!",
            "✅ Апрув сегодня — миллионы завтра!",
            "✅ Не сдавайся, апрув уже близко!",
            "✅ Рим не за один день строился, а апрув — тем более!",
            "✅ Каждый апрув — это шаг к мечте!",
            "✅ Работаешь усердно? Апрув уже в пути!",
        ];
        
        $random_message = $messages[array_rand($messages)];
        
        // Если обязательные параметры отсутствуют, завершаем выполнение скрипта
        if (empty($campaign_name) || empty($sub_id)) {
            http_response_code(200);
            echo "Missing or invalid parameters";
            exit;
        }
        
        // Если сумма апрува меньше порогового значения (например, меньше 4$), отправляем уведомление в Telegram
        if ($revenue < 4) {
            $telegram_url = "https://api.telegram.org/токен_бота/sendMessage";
        
            $telegram_data = [
                'chat_id' => 'айди_чата',
                'text'    => "<b>💸 Маленький, но апрув!</b>\n\n"
                             . "<b>🏢 Компания:</b> {$campaign_name}\n"
                             . "<b>📊 Адсет и Объявление:</b> {$adset_name}_{$ad_name}\n"
                             . "<b>📋 ID оффера:</b> {$offer_id}\n"
                             . "<b>🌍 GEO:</b> {$country}\n"
                             . "<b>💰 Сумма:</b> {$revenue}$\n"
                             . "<b>🔖 SubID:</b> {$sub_id}\n\n"
                             . $random_message,
                'parse_mode' => 'HTML',
            ];
        
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $telegram_url);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($telegram_data));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
            curl_exec($ch);
            curl_close($ch);
        }
        
        http_response_code(200);
        echo "OK";
        

        Объяснение работы скрипта

        • Получение параметров: Скрипт принимает данные, передаваемые через GET-параметры (название кампании, названия адсета и объявления, ID оффера, GEO, сумма апрува и SubID).
        • Проверка параметров: Если обязательные параметры (например, название кампании или SubID) отсутствуют, скрипт завершает выполнение.
        • Проверка суммы апрува: Если значение revenue оказывается меньше 4 (это может быть нулевой апрув или слишком маленькая сумма), происходит отправка уведомления.
        • Отправка уведомления: Через API Telegram отправляется сообщение в указанный чат с подробной информацией о сделке и случайным мотивационным сообщением для разнообразия.

        Автоматизация поиска нулевых апрувов в Keitaro с помощью Telegram-бота позволяет оперативно выявлять и реагировать на проблемные сделки. Такой подход сокращает время на ручной контроль, помогает избегать потерь и позволяет команде быстрее корректировать ситуации с апрувами.

        Чтобы начать использовать данное решение:

        1. Настройте S2S постбек в Keitaro на нужном источнике или кампании.
        2. Разместите приведённый PHP-скрипт на вашем сервере (например, на поддомене).
        3. Настройте параметры Telegram-бота (API токен и ID чата).

        Если у вас возникнут вопросы по настройке или интеграции, стучитесь в ТГ — буду рад помочь!

        Редакция BoostClicks

        Пишем только то, что сами гоняли на проливах. Разборы источников, клоаки и трекинга без воды и универсальных схем.

        Дальше по теме

        Ещё про источники

        Все материалы
        CPA кейсы Google аннулирует промокредиты после спенда: как устроена промоакция и сколько от неё доходит до аккаунта

        Google аннулирует промокредиты после спенда: как устроена промоакция и сколько от неё доходит до аккаунта

        Google отзывает промокредиты уже после того, как рекламодатель выполнил условие по расходам. Что говорит справка, где кредит сгорает по правилам и расчёт доли по риску бана…

        147 просмотров
        CPA кейсы ИИ-пиксель Meta читает ваш ленд: что пиксель теперь отправляет и как это выключить

        ИИ-пиксель Meta читает ваш ленд: что пиксель теперь отправляет и как это выключить

        Пиксель Meta с весны 2026 сам снимает со страницы товар, цену и данные бизнеса, а новые пиксели ещё и создают события через ИИ. Что это значит для прелендов и клоаки, данные KLO по краулерам…

        304 просмотра
        CPA кейсы Google убирает языковой таргетинг из Поиска: что меняется с конца сентября 2026

        Google убирает языковой таргетинг из Поиска: что меняется с конца сентября 2026

        С конца сентября 2026 Google Ads убирает настройку языка из поисковых кампаний: язык подбирается по объявлению. Что это значит для мультигео и вайтов, данные KLO…

        233 просмотра
        Информационные партнёры

        С кем мы работаем

        Обмениваемся материалами и тестами с площадками и сервисами, которыми пользуемся сами.

        Прайс на рекламу