Обзор

Что такое BlackMoney

BlackMoney TDS (Traffic Distribution System) это платформа фильтрации и распределения трафика для performance-маркетологов, media buyers и команд, работающих с платным трафиком. Система анализирует каждый входящий визит и принимает решение: направить посетителя на целевую страницу (Offer) или показать безопасную страницу (White).

BlackMoney анализирует каждого посетителя по нескольким параметрам:

  • User-Agent сигнатуры (45+ паттернов ботов, краулеров, модераторов)
  • IP-репутация (datacenter, VPN, Tor, residential)
  • Лимиты визитов по IP (частота и окно)
  • Гео-фильтрация по странам
  • Анализ referrer (пустой referrer в strict/moderation режимах)
  • Фильтрация по устройствам и ОС

Если посетитель признан релевантным, он направляется на целевую (offer) страницу. Если посетитель не соответствует правилам кампании, BlackMoney показывает безопасную (white) страницу.

Как работает BlackMoney

BlackMoney работает как точка входа для всего входящего трафика. Каждый визит анализируется до того, как пользователь увидит какой-либо контент.

Поток обработки трафика

  1. Пользователь кликает по рекламе или ссылке
  2. Запрос попадает в index.php или другой интеграционный скрипт
  3. Скрипт отправляет данные визита на API BlackMoney (/api/v1/check)
  4. BlackMoney проверяет User-Agent, IP, geo, referrer, лимиты
  5. На основе вердикта (pass или block) скрипт перенаправляет посетителя:
    • pass → посетитель видит Offer Page
    • block → посетитель видит White Page

Система оценки

BlackMoney не полагается на один сигнал. Оценка посетителя включает несколько слоёв проверок, глубина которых зависит от выбранного режима cloaking:

  • Сигнатурный анализ User-Agent (45+ паттернов ботов в базе)
  • IP-лимиты (количество визитов за окно времени)
  • Гео-фильтрация (белый список стран)
  • Анализ referrer (пустой referrer = подозрительно)
  • Фильтры инфраструктуры (VPN, Tor, Datacenter, Abusers)
  • Фильтры устройств и операционных систем

White Page и Offer Page

Целевая страница (Offer) это основной контент, предназначенный для релевантных посетителей.

White Page это безопасная версия страницы, которая показывается:

  • Ботам и краулерам
  • Модераторам рекламных сетей
  • Автоматизированному и нечеловеческому трафику
  • Посетителям из нецелевых гео
  • IP-адресам, превысившим лимит визитов
  • Трафику через VPN, Tor или прокси (если фильтры включены)
Быстрый Старт

Что нужно перед началом

White Page и Offer Page

BlackMoney работает с двумя типами страниц:

  • White Page безопасная страница, показываемая автоматизированному, нечеловеческому или несоответствующему трафику
  • Offer Page основной контент, предназначенный для реальных пользователей

Обе страницы могут быть:

  • Локальными файлами на вашем сервере (например: /white/index.html)
  • Внешними сайтами или URL
Для White Page настоятельно рекомендуется использовать локальные файлы, размещённые на том же сервере, где установлен index.php. Это снижает количество редиректов, помогает избежать проблем с кэшем и улучшает общую стабильность.

Хостинг или VPS

Подойдёт любой хостинг или VPS, если он:

  • Поддерживает PHP 5.6+ (рекомендуется 8.1+)
  • Разрешает POST-запросы
  • Не блокирует исходящие HTTP(S)-соединения
  • Не применяет агрессивное серверное кэширование к index.php

Домен и SSL

  • Нужен домен, направленный на ваш сервер
  • Нужен SSL-сертификат (HTTPS)
  • Использование CDN (например Cloudflare) допустимо, если index.php не кэшируется, пользовательские заголовки сохраняются, а POST-запросы не блокируются

Системные требования

ТребованиеМинимумРекомендуется
Версия PHP5.6+8.1+
HTTPSОбязательноОбязательно
Расширенияcurl, json, openssl, mbstringТо же + стандартные core-расширения
Функцииcurl_*, json_*, file_get_contents, http_build_queryВсе перечисленные включены
Исходящий HTTP(S)Должен быть включёнФаервол/WAF не блокирует исходящие запросы
POST-запросыДолжны быть разрешеныWAF/CDN не блокируют POST
Пользовательские заголовкиОбязательно (X-Key header)Прокси/WAF не удаляют заголовки
Отсутствие кэшаДля index.phpНет page-/proxy-cache
Shared hosting, агрессивное кэширование CDN или строгие правила WAF могут нарушить выполнение скрипта. После установки запустите Debug тест, чтобы проверить хостинг, кэш, cookies и соединение с API.

6 шагов к запуску

Шаг 1: Регистрация

Создайте аккаунт в BlackMoney. После регистрации вы получите:

  • API-ключ (формат: BM-XXXXXXXXXXXXXXXX)
  • Доступ к панели управления
  • 1 кампания на бесплатном плане

Шаг 2: Создание кампании

Каждая кампания представляет собой отдельный поток трафика (домен + страницы + логика фильтрации). Укажите название, домен, источник трафика, URLs страниц и параметры фильтрации.

Шаг 3: Выбор режима cloaking

Выберите режим в зависимости от источника трафика и уровня риска. Подробнее в разделе Настройки Кампании.

Шаг 4: Настройка страниц

Укажите URL для White Page и Offer Page. Рекомендуется размещать White Page локально.

Шаг 5: Интеграция

Откройте вкладку Integration в кампании, скачайте index.php и загрузите в корень вашего домена.

Весь входящий трафик должен проходить через index.php.

Шаг 6: Самотест

Перед запуском трафика выполните проверку:

  • Откройте домен в обычном браузере → должна загрузиться Offer Page
  • Используйте VPN / proxy → должна загрузиться White Page
  • Проверьте аналитику в панели на корректную маршрутизацию
Не запускайте платный трафик, пока самотест не пройден.
Настройки Кампании

Общие

Название

Понятное человеку название вашей кампании внутри панели BlackMoney. Можно использовать любые символы. Это название видите только вы.

Примеры: Nutra - Keto Gummies - US / Dating - FR / Finance - LoanApp / Crypto - Binance Funnel - Global

Домен

Домен, на котором вы установили index.php и на который планируете направлять трафик. HTTPS настоятельно рекомендуется.

Источник (Source)

Короткая метка для организации и отслеживания источников трафика внутри кампании.

Примеры: Facebook, GoogleAds, TikTok, Push, Native

Страницы

White Page

Страница, которая показывается автоматизированному, нечеловеческому или несоответствующему трафику. Можно использовать как полный URL, так и локальный путь к файлу.

Примеры: https://white-page.com / white-page.html / pages/white-page.php

Offer Page

Ваши целевые landing pages. Показываются только валидированным посетителям.

Примеры: https://offer-page.com / offer-page.html / pages/offer-page.php

Метод редиректа

МетодОписание
302Стандартный HTTP 302 редирект. Браузер переводит пользователя на целевой URL. Самый простой и надёжный вариант.
JSРедирект через JavaScript (window.location). Позволяет динамически собирать URL. Сложнее обнаружить в статическом анализе.
Используйте HTTP 302 Redirect, если только вы точно не знаете, зачем нужен другой метод.

Режимы cloaking

Режимы cloaking определяют, как BlackMoney анализирует посетителей и решает, показывать White Page или Offer Page. Каждый режим представляет разный уровень фильтрации.

Basic

Режим Basic это лёгкий режим фильтрации с базовой защитой трафика. Он блокирует распространённых ботов, краулеров, абузный трафик, подозрительные клики, fraud-трафик и высокочастотные шаблоны запросов.

Что блокирует:

  • Автоматизированных краулеров и сканирующий трафик
  • Базовых ботов и автоматизированные скрипты
  • Click-fraud трафик и аномальные шаблоны обновлений страниц
  • Трафик периода ревью, определяемый по IP и сетевым сигналам
  • Повторяющихся подозрительных посетителей и простые abuse-паттерны
  • Высокочастотные запросы в стиле DDoS
  • Инструменты мониторинга и повторяющийся анализирующий трафик
Рекомендуется для стандартной фильтрации трафика в распространённых источниках платного трафика, где достаточно лёгкой защиты.

Smart

Режим Smart это интеллектуальный режим фильтрации с адаптивным анализом трафика. Он оценивает несколько сигналов и паттернов трафика, чтобы точнее определять и фильтровать нежелательный трафик, сохраняя при этом реальных пользователей.

Что блокирует:

  • Продвинутых ботов и интеллектуальных краулеров
  • Эмуляторы, виртуальные машины и нестандартные окружения
  • Трафик периода ревью, определяемый по продвинутым сигналам
  • Автоматизированные системы сканирования и мониторинга
  • Инструменты автоматизации и click-manipulation трафик
  • Поведенческие аномалии по сравнению с нормальными пользовательскими паттернами
  • Весь трафик, блокируемый режимом Basic
Рекомендуется для средне- и высокорисковых трафик-сред, где rule-based фильтрации уже недостаточно.

Strict

Режим Strict это самый агрессивный уровень фильтрации с максимальной строгостью. Он предназначен для high-risk трафика и продвинутых сценариев, применяя более глубокий анализ для минимизации нежелательных и подозрительных визитов.

Что блокирует:

  • Весь трафик, блокируемый режимами Basic и Smart
  • High-stealth нестандартные окружения
  • Продвинутые proxy- и анонимные окружения
  • Крупномасштабные fraud-системы и автоматизированные источники трафика
  • Sandboxed и instrumented окружения
  • High-risk сканирующий и анализирующий трафик
  • Посетителей с пустым referrer (прямые заходы)
Рекомендуется для high-risk кампаний и продвинутых условий трафика, где требуется максимальная фильтрация. Может блокировать часть легитимного трафика.

Moderation

Режим Moderation это временный режим, предназначенный для чувствительных фаз кампании. Он снижает показ target pages в периоды валидации перед переключением на стандартный режим фильтрации.

Что блокирует:

  • Автоматизированный ревью- и валидационный трафик
  • Сканирующую и анализирующую активность на ранних этапах кампании
  • Нестандартные окружения и неконсистентные паттерны трафика
  • VPN- или proxy-трафик в периоды валидации
  • Автоматизированные инструменты и scripted visits
  • Трафик, похожий на раннее инспектирование или валидационное поведение

Для чего не предназначен:

  • Не подходит для долгой работы с live-трафиком
  • Не предназначен как постоянный production-режим
  • После завершения валидации переключайтесь на Basic, Smart или Strict
Избегайте тестирования своей кампании из недоверенных окружений во время этого режима, так как трафик может быть отфильтрован как нестандартный.

Off

Режим Off полностью отключает cloaking. Весь трафик направляется на White Page. Рекомендуется для:

  • Сбора аналитики без перенаправления на офферы
  • Безопасной проверки рендера страниц
  • Временной паузы cloaking без удаления кампании

Таргетинг-фильтры

Таргетинг-фильтры позволяют управлять тем, какие посетители смогут видеть Offer Page, на основе их технических характеристик.

Каждый фильтр поддерживает два режима:

  • Allow только выбранные значения разрешены, все остальное блокируется
  • Exclude выбранные значения блокируются, все остальное разрешено

Если посетитель не соответствует заданным правилам, он автоматически перенаправляется на White Page.

Страны

Выберите, какие страны должны быть разрешены или исключены. Полезно для GEO-специфичных кампаний. Указывайте ISO-коды через запятую: US,GB,DE,FR

Устройства

Фильтруйте посетителей по типу устройства: mobile, desktop или all.

OS

Выберите, какие операционные системы должны быть разрешены или заблокированы. Полезно, если кампания рассчитана только на определённые платформы, например только iOS.

Доступные значения: all, windows, macos, android, ios

Пустой Referer

Простой переключатель, связанный с фильтрацией referer. Блокирует или разрешает посетителей без referrer вообще. Полезно для остановки прямого трафика, ботов или визитов со скрытым referrer.

В режимах Strict и Moderation пустой referrer блокируется автоматически.

Фильтры трафика

Фильтры трафика позволяют блокировать или разрешать посетителей на основе типа их сети. Каждый фильтр это простой переключатель, который включает защиту от определённых сетевых категорий, часто связанных с автоматизированным, нечеловеческим, ограниченным или privacy-ориентированным трафиком.

Abuser

Блокирует IP-адреса с историей подозрительной или вредоносной активности. Этот фильтр выявляет посетителей, связанных с известными шаблонами злоупотреблений, включая фрод, скрапинг, автоматизированные атаки и подозрительное поведение. Помогает предотвращать повторный вредоносный трафик.

VPN

Блокирует трафик, приходящий через VPN-сервисы.

Tor

Блокирует посетителей, использующих сеть анонимности Tor.

Datacenter / Hosting

Блокирует IP-адреса, принадлежащие дата-центрам, хостинг-провайдерам и облачным платформам (Hetzner, OVH, DigitalOcean, AWS, GCP и т.д.).

Лимит посещений оффера

Лимит посещений оффера позволяет контролировать, сколько раз один посетитель может открыть Offer Page за выбранный период времени. Если посетитель превышает допустимое количество визитов, BlackMoney перестаёт отправлять его на Offer и вместо этого перенаправляет на White Page.

Как это работает:

  • Max Visit максимальное количество разрешённых посещений Offer Page для одного уникального посетителя
  • Duration как долго действует лимит после первого визита
  • Time Unit единица измерения времени для duration: 1h (1 час), 1d (1 день), 7d (7 дней)
  • BlackMoney считает визиты по уникальному IP-адресу
Пример:
Max Visit: 5, Duration: 1, Time Unit: Days
Посетитель может открыть Offer до 5 раз за 24 часа, после чего будет видеть White Page, пока временное окно не сбросится.
Рекомендуется для предотвращения abuse оффера, уменьшения повторных невалидных кликов и защиты офферов со строгими anti-fraud требованиями.

Сетевой фильтр

Сетевой фильтр позволяет явно разрешать или блокировать конкретные IP-адреса или целые CIDR-диапазоны.

Whitelist

IP-адреса, добавленные в Whitelist, всегда разрешены и обходят все остальные правила фильтрации.

Blacklist

IP-адреса, добавленные в Blacklist, всегда блокируются, независимо от режима cloaking и других фильтров.

Оба списка поддерживают:

  • Одиночные IP (например, 192.168.1.10)
  • CIDR-диапазоны (например, 192.168.0.0/16)
  • IPv4 и IPv6

Расписание оффера

Расписание оффера позволяет контролировать, когда будет показана Offer Page. Если время посетителя не соответствует заданному расписанию, BlackMoney автоматически отправляет его на White Page.

Как это работает:

  • Timezone выберите часовой пояс, в котором должно работать расписание
  • Time Range задайте разрешённый интервал времени, например 09:00-18:00
  • Days выберите конкретные дни недели, когда оффер активен
  • Визиты вне разрешённого часового пояса, временного диапазона или дней автоматически перенаправляются на White Page
Интеграция

PHP-интеграция

BlackMoney использует лёгкий интеграционный скрипт index.php, который передаёт данные о посетителе в вашу кампанию и возвращает правильную White или Target Page на основе результатов фильтрации.

Как установить

  • Создайте кампанию в панели BlackMoney
  • Откройте вкладку Integration и скачайте файл index.php
  • Загрузите index.php в корневую папку вашего домена (например, /public_html/ или /www/)
  • Направьте источник трафика, рекламу, трекеры или ссылки на ваш домен
  • BlackMoney будет обрабатывать каждый визит через этот файл и маршрутизировать пользователей в соответствии с настройками cloaking

Доступный URL

Убедитесь, что файл доступен по адресу:

https://your-domain.com/index.php

Требования

  • Минимум PHP 5.6+, рекомендуется PHP 8.1+
  • cURL включён
  • HTTPS настоятельно рекомендуется
  • Без кэширования для index.php
<?php
// BlackMoney TDS Integration

$api  = 'https://api.blackmoney.work/api/v1/check';
$key  = 'BM-ВАШ_API_КЛЮЧ';
$camp = 'camp_ВАШ_CAMPAIGN_ID';

$data = json_encode([
  'ip'   => $_SERVER['REMOTE_ADDR'],
  'ua'   => $_SERVER['HTTP_USER_AGENT'] ?? '',
  'ref'  => $_SERVER['HTTP_REFERER'] ?? '',
  'lang' => $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '',
  'url'  => ($_SERVER['HTTPS']?'https':'http')
           .'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],
  'camp' => $camp,
]);

$ch = curl_init($api);
curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => $data,
  CURLOPT_HTTPHEADER     => ['Content-Type: application/json', 'X-Key: '.$key],
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT        => 3,
]);

$r = json_decode(curl_exec($ch), true);
curl_close($ch);

header('Location: '.($r['verdict']==='pass'?$r['offer']:$r['white']),true,302);
exit();

Блочная интеграция (PHP)

Блочная интеграция позволяет подключить BlackMoney прямо внутри конкретной PHP-страницы вместо использования его как основной точки входа домена. Это полезно, когда вы хотите защищать только отдельные страницы или потоки, не затрагивая весь сайт.

Как это работает

  • Скачайте стандартный интеграционный файл index.php
  • Переименуйте его, например, в blackmoney.php
  • Подключите его в начало вашей PHP-страницы после тега <?php и до вашей собственной логики
  • Этот метод позволяет защищать конкретную PHP-страницу вместо того, чтобы делать BlackMoney точкой входа для всего сайта

Результат выполнения

После выполнения BlackMoney предоставляет глобальный объект результата. Он возвращает allow = true или false, который вы можете использовать в своей PHP-логике для редиректа пользователя, изменения контента или нативной обработки запроса внутри вашего приложения.

<?php
require __DIR__ . '/blackmoney.php';

$result = $_GLOBALS['__BLACKMONEY_RESULT__'] ?? null;

if ($result && $result['allow'] === false) {
  header("Location: https://white-page.com", true, 302);
  exit();
}

Интеграция с Keitaro (Filter)

BlackMoney также может использоваться как фильтр внутри трекера Keitaro, позволяя применять cloaking-логику прямо на уровне трекера.

Как это работает

  • Скачайте файл фильтра blackmoney.php
  • Загрузите его в директорию фильтров Keitaro: /var/www/keitaro/var/filters/blackmoney.php
  • Создайте и настройте кампанию в BlackMoney
  • Откройте вкладку Integration и скопируйте ID вашей кампании
  • Вставьте ID кампании в настройки фильтра Keitaro, используя формат campaign-id-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Nginx интеграция (OpenResty)

Для серверов с OpenResty (nginx + Lua). Самый быстрый вариант: проверка на уровне nginx до обработки запроса.

# BlackMoney TDS nginx integration

location / {
  access_by_lua_block {
    local http = require("resty.http")
    local h = http.new()
    local r = h:request_uri(
      "https://api.blackmoney.work/api/v1/check", {
      method  = "POST",
      headers = {
        ["Content-Type"] = "application/json",
        ["X-Key"] = "BM-ВАШ_API_КЛЮЧ",
      },
      body = cjson.encode({
        ip   = ngx.var.remote_addr,
        ua   = ngx.var.http_user_agent,
        ref  = ngx.var.http_referer,
        camp = "camp_ВАШ_CAMPAIGN_ID",
      })
    })
    local d = cjson.decode(r.body)
    return ngx.redirect(
      d.verdict=="pass" and d.offer or d.white)
  }
}

JS интеграция (клиентская)

Для случаев, когда серверная интеграция невозможна. Работает на стороне браузера.

<!-- BlackMoney TDS JS integration -->
<script>
(async()=>{
  const r=await fetch('https://api.blackmoney.work/api/v1/check',{
    method:'POST',
    headers:{'Content-Type':'application/json','X-Key':'BM-ВАШ_API_КЛЮЧ'},
    body:JSON.stringify({
      camp:'camp_ВАШ_CAMPAIGN_ID',
      url:location.href,
      ref:document.referrer
    })
  });
  const d=await r.json();
  if(d.verdict==='pass'&&d.offer)location.replace(d.offer);
})();
</script>
JS интеграция менее безопасна, так как API-ключ виден в исходном коде страницы. Используйте только когда PHP/Nginx невозможны.

Уникальная обфускация

Каждый скачанный через панель скрипт уникален:

  • Случайные имена переменных для каждого скачивания
  • Инъекция мёртвого кода (dead code injection)
  • Ваш API-ключ и Campaign ID уже вшиты в скрипт
  • Уникальный хеш-комментарий для трассировки

Postback (отслеживание конверсий)

Postback позволяет BlackMoney получать события конверсии от вашего оффера или affiliate network. Каждый клик, обработанный через BlackMoney, получает уникальный CLICK_ID. Этот ID автоматически добавляется в ваш Offer URL, если это не отключено в настройках.

Как это работает

  • Посетитель кликает по вашей рекламе. BlackMoney присваивает CLICK_ID
  • BlackMoney сопоставляет этот ID и атрибутирует конверсию вашей кампании
  • Оффер или affiliate network возвращает конверсию и отправляет запрос на ваш postback URL

Postback URL

Используйте следующий формат URL:

https://api.blackmoney.work/api/v1/postback?cid={CLICK_ID}

Использование

  • Скопируйте сгенерированный postback URL
  • Замените {CLICK_ID} на соответствующий макрос вашей affiliate network, например {clickid}, {sub1} или ##CLICK_ID##
  • Вставьте ссылку в настройки postback вашего оффера или affiliate network
Debug

Debug

Инструмент Debug помогает быстро проверить, корректно ли работает интеграция index.php на вашем хостинге.

Когда вы нажимаете Debug рядом с index.php во вкладке Integration, BlackMoney отправляет специальный диагностический запрос на ваш сайт, где установлен скрипт. Скрипт выполняет внутренние проверки и возвращает структурированный отчет с системными ошибками и диагностикой страниц.

Что проверяет Debug

PHP-окружение

  • Версию PHP и совместимость
  • Необходимые расширения и core-функции (cURL, OpenSSL, JSON, setcookie, file functions, http_build_query)

Исходящее соединение с API BlackMoney

  • Возможность подключения к хосту API BlackMoney
  • Корректный HTTP-статус и валидный JSON-ответ

Кэширование и прокси

  • Включено ли кэширование страниц или прокси, которое мешает динамическим ответам
  • Поддержка пользовательских заголовков (используются для диагностики)

Cookies

  • Возможность устанавливать и читать cookies на вашем домене

White / Offer Pages

  • Каждый настроенный White или Offer URL либо локальный файл проверяется на доступность, HTTP-ошибки и проблемы файловой системы

Результат Debug

Если всё прошло успешно, вы увидите сообщение вроде Integration test completed successfully.

В противном случае отчет будет содержать один или несколько кодов ошибок.

Тестовый запрос через curl

curl -X POST https://api.blackmoney.work/api/v1/check \
  -H "Content-Type: application/json" \
  -H "X-Key: BM-ВАШ_API_КЛЮЧ" \
  -d '{"ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0) Chrome/126.0","camp":"camp_ВАШ_ID"}'

Ожидаемый ответ

{
  "verdict": "pass",
  "offer": "https://your-offer.com",
  "white": "https://your-white.com"
}

Тест с бот-UA

curl -X POST https://api.blackmoney.work/api/v1/check \
  -H "Content-Type: application/json" \
  -H "X-Key: BM-ВАШ_API_КЛЮЧ" \
  -d '{"ip":"8.8.8.8","ua":"Googlebot/2.1","camp":"camp_ВАШ_ID"}'

Ожидаемый ответ: "verdict": "block" с reason "bot: googlebot"

Аналитика

Analytics

Раздел Analytics предоставляет полную детализацию эффективности трафика вашей кампании, включая статистику кликов, показатели качества трафика, географическое распределение, анализ платформ, эффективность офферов и подробные логи кликов. Каждый виджет и график помогает понять, откуда приходит ваш трафик, насколько хорошо он работает и насколько эффективно BlackMoney фильтрует нежелательные визиты.

Campaign Summary

Краткая сводка всех ключевых метрик за выбранный диапазон дат, включая общее количество кликов, уникальные клики, соотношение good и bad, конверсии и тренды эффективности.

  • Clicks общее количество визитов в кампанию
  • Good посетители, успешно прошедшие фильтрацию и попавшие на целевую страницу
  • Bad посетители, заблокированные правилами фильтрации (автоматизация, proxy/VPN, несоответствие таргетингу и т.д.)
  • Unique уникальные посетители на основе IP-идентификации
  • Conversions количество конверсий, полученных через Postback

Traffic Overview

График по времени, показывающий ежедневное количество Good, Bad и Conversions. Помогает визуализировать пики, подозрительную активность и изменения в эффективности за выбранный период.

Traffic Performance

Показывает общую оценку качества трафика вашей кампании.

Traffic Quality Score

Traffic Quality объединяет несколько факторов:

  • Соотношение good-трафика
  • Соотношение отфильтрованного (bad) трафика
  • Conversion rate
  • Сигналы уникальности и поведения

Дополнительные индикаторы

BlackMoney также показывает следующие индикаторы:

  • Bots процент визитов, помеченных как боты
  • Filtered процент визитов, заблокированных правилами (VPN, Proxy, OS или Device filters, targeting filters и т.д.)
  • CR общий conversion rate

Traffic By Country

Таблица, показывающая эффективность по странам:

  • Clicks общее количество визитов
  • Good разрешённый трафик
  • Bad заблокированный трафик
  • Conv конверсии
  • Share процент от общего трафика

Полезно для GEO-оптимизации и выявления fraud-активности, связанной с конкретными GEO.

Traffic By Platform

Показывает распределение трафика по:

  • Device Desktop, Mobile, Tablet, Smart TV и т.д.
  • OS Windows, MacOS, iOS, Android, Linux и т.д.

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

Traffic Sources

Показывает, откуда приходит ваш трафик:

  • Source домен или referrer
  • Clicks все клики
  • Good good-клики
  • Bad bad-клики
  • Share процент от общего трафика

Полезно для определения лучших источников и выявления вредных.

Live Feed

Поток входящих запросов в реальном времени. Каждое событие показывает:

  • Время запроса
  • IP-адрес посетителя
  • Кампания
  • Гео (страна)
  • Вердикт (PASS / BLOCK)
  • Причина блокировки

Clicks

Полная таблица всех записей о посетителях:

  • Дата и время
  • IP-адрес
  • Страна
  • Источник
  • Платформа (Device, OS)
  • Статус (Good или Bad)
  • Причина (Bot, VPN, TOR, Proxy и т.д.)
  • Страница (White или Offer)

Статусы кликов

  • Good посетитель успешно прошёл все фильтры и был перенаправлен на целевую страницу
  • Good (Yellow) посетитель потенциально является good, но был перенаправлен на White Page, потому что сейчас активен Moderation Mode. Этот статус появляется только когда Moderation Mode переопределяет обычную cloaking-логику
  • Bad посетитель был заблокирован фильтрами (бот, трафик периода ревью, VPN, proxy, несоответствие targeting rules и т.д.) и отправлен на White Page

Этот раздел позволяет изучать отдельные визиты и понимать, почему именно они были разрешены или заблокированы.

Bot Intelligence PRO

Расширенная аналитика по ботам и угрозам. Доступна на планах Pro и Enterprise.

  • Known Signatures количество паттернов ботов в базе
  • Blocked Today количество заблокированных ботов за сутки
  • Accuracy процент заблокированных от общего трафика
  • Top Threats самые частые причины блокировки за 24 часа
Тарифы и биллинг

Тарифы и биллинг

Раздел Тарифы и Биллинг содержит всё, что связано с вашей подпиской BlackMoney: доступные планы, лимиты, способы оплаты и историю платежей. Эта страница позволяет управлять подпиской и повышать тариф при необходимости.

Тарифные планы

Free — $0 / месяц

Базовый доступ для тестирования и знакомства с платформой.

Включает:

  • 1 кампания
  • 5,000 кликов в месяц
  • Режимы cloaking: Off, Basic
  • PHP, JS, Nginx интеграции
  • API доступ

Pro — $49 / месяц

Полнофункциональный план для профессиональных media buyers.

Включает все из Free, а также:

  • 10 кампаний
  • 500,000 кликов в месяц
  • Все режимы cloaking (Off, Basic, Smart, Strict, Moderation)
  • Bot Intelligence (аналитика по ботам)
  • Продвинутые фильтры таргетинга
  • Гибкие IP-лимиты
  • Приоритетная поддержка

Enterprise — $199 / месяц

Топовый уровень для команд и агентств с максимальными объёмами.

Включает все из Pro, а также:

  • Неограниченное количество кампаний
  • Неограниченный трафик
  • Все режимы cloaking
  • Bot Intelligence
  • Приоритетная обработка данных
  • Приоритетная поддержка
  • Ранний доступ к новым функциям
FREEPROENTERPRISE
Цена$0/мес$49/мес$199/мес
Кампании110Без ограничений
Клики/мес5,000500,000Без ограничений
РежимыOff, BasicВсеВсе
Bot IntelligenceДаДа
API доступДаДаДа
ИнтеграцииPHP, JS, NginxPHP, JS, NginxPHP, JS, Nginx
При превышении лимита кликов API возвращает статус 429. Upgrade на следующий план для увеличения лимитов.

Способы оплаты

BlackMoney поддерживает криптовалютные платежи для сохранения анонимности пользователей.

  • Банковские карты и традиционные платежные процессоры не используются
  • Платежи обрабатываются через встроенный крипто-шлюз

Поддерживаемые монеты

  • USDT (TRC20 / BEP20 / ERC20)
  • USDC
  • BTC
  • ETH

История платежей

В этом разделе отображается список предыдущих платежей.

  • Сохраняется только базовая нечувствительная информация о транзакции (дата, сумма, монета, статус)
  • Адреса кошельков, приватные ключи, хэши транзакций и идентифицирующие данные не сохраняются
  • BlackMoney разработан с учетом приватности
REST API

Обзор

REST API BlackMoney предоставляет полный программный доступ ко всем функциям платформы. С его помощью вы можете:

  • Создавать, обновлять и удалять кампании
  • Настраивать режимы клоакинга, фильтры трафика и таргетинг
  • Генерировать уникальные интеграционные файлы
  • Получать статистику, live feed и данные Bot Intelligence
  • Управлять IP-листами, расписаниями и лимитами
  • Массовые операции: удаление нескольких кампаний за один запрос
Все запросы и ответы используют формат application/json. Все временные метки в формате Unix timestamp (секунды).

Аутентификация

BlackMoney использует две схемы аутентификации в зависимости от типа запроса:

JWT Token (управление)

Все запросы к API управления (кампании, статистика, профиль) должны содержать заголовок Authorization с JWT-токеном, полученным при регистрации или логине.

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Токен действителен 30 дней с момента выдачи. После истечения необходимо повторно авторизоваться через /auth/login.

API Key (клоакинг)

Эндпоинт /check, вызываемый интеграционными скриптами, использует API-ключ через заголовок X-Key.

X-Key: BM-A1B2C3D4E5F6789012345678ABCDEF01

API-ключ генерируется автоматически при регистрации и доступен в ответе /me. Формат: BM- + 32 символа hex в верхнем регистре.

Никогда не передавайте JWT-токен или API-ключ в URL-параметрах. Используйте только заголовки.

Base URL

https://api.blackmoney.work/api/v1

Все эндпоинты ниже указаны относительно base URL. Полный URL запроса: https://api.blackmoney.work/api/v1/campaigns

Auth

POST/auth/register
Регистрация нового пользователя. Возвращает JWT-токен и API-ключ.

Endpoint

POST https://api.blackmoney.work/api/v1/auth/register

Request

# cURL
curl -X POST https://api.blackmoney.work/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "securepassword",
    "username": "myname"
  }'
ПолеТипОбязательноОписание
emailstringДаEmail. Уникальный в системе.
passwordstringДаПароль. Минимум 6 символов.
usernamestringНетОтображаемое имя. По умолчанию: часть email до @.

Response 200

{
  "token": "eyJhbGciOiJIUzI1NiJ9.eyJ1aWQiOjEsImVtYWlsIjoidXNlckBleGFtcGxlLmNvbSJ9...",
  "api_key": "BM-447487D0D892AE909EB1487E4951DAA5",
  "user_id": 1
}
Сохраните api_key сразу. Он понадобится для интеграционных скриптов. Токен нужен для всех остальных запросов API.
POST/auth/login
Авторизация существующего пользователя. Возвращает новый JWT-токен.

Request

# cURL
curl -X POST https://api.blackmoney.work/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "securepassword"
  }'

Response 200

{
  "token": "eyJhbGciOiJIUzI1NiJ9...",
  "api_key": "BM-447487D0D892AE909EB1487E4951DAA5",
  "user_id": 1
}
GET/me
Текущий пользователь: профиль, план, лимиты, использование.

Request

# cURL
curl https://api.blackmoney.work/api/v1/me \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  "id": 1,
  "email": "user@example.com",
  "username": "user",
  "api_key": "BM-447487D0D892AE909EB1487E4951DAA5",
  "plan": "pro",
  "plan_limits": {
    "campaigns": 10,
    "clicks_mo": 500000,
    "bot_intel": true,
    "modes": ["off", "basic", "smart", "strict", "moderation"]
  },
  "clicks_this_month": 14283,
  "created_at": 1722960000
}

Объект кампании

Объект кампании представляет полную конфигурацию: домен, страницы (white/offer), режим клоакинга, фильтры трафика, таргетинг, IP-лимиты и метод редиректа. Ниже приведена полная структура payload, используемая при создании и обновлении кампаний.

Полный справочник payload

{
  // === Общие настройки ===
  "name": "My Campaign",
  "domain": "example.com",
  "source": "Facebook",

  // === Страницы ===
  "white_url": "https://safe-page.com",
  "offer_url": "https://offer.com/landing",

  // === Клоакинг ===
  "cloaking_mode": "smart",
  "redirect_method": "302",

  // === Таргетинг ===
  "countries": "US,GB,DE,FR",
  "devices": "all",
  "os_filter": "all",

  // === Фильтры трафика ===
  "block_vpn": 1,
  "block_tor": 1,
  "block_dc": 1,
  "block_abusers": 1,

  // === Лимит посещений ===
  "max_visits_ip": 5,
  "visit_window": "1d"
}

Детальное описание полей

ПолеТипПо умолчаниюОписание
namestring""Название кампании. Произвольная строка для идентификации в панели.
domainstring""Домен, на котором размещена кампания. Используется для группировки и фильтрации.
sourcestring""Источник трафика: Facebook, Google, TikTok, и т.д.
white_urlstring""URL безопасной страницы (white page). Показывается ботам и модераторам.
offer_urlstring""URL оффера. Показывается реальным пользователям, прошедшим фильтрацию.
cloaking_modestring"basic"Режим клоакинга. См. Настройки кампании.
redirect_methodstring"302"Метод редиректа на оффер.
countriesstring""ISO-коды стран через запятую. Пустая строка = все страны.
devicesstring"all"Фильтр устройств.
os_filterstring"all"Фильтр операционных систем.
block_vpninteger1Блокировать VPN-трафик. 1 = да, 0 = нет.
block_torinteger1Блокировать Tor-трафик.
block_dcinteger1Блокировать трафик из дата-центров (хостинги, серверы).
block_abusersinteger1Блокировать IP с чрезмерной активностью.
max_visits_ipinteger5Максимум визитов с одного IP за временное окно.
visit_windowstring"1d"Временное окно для подсчета визитов с IP.
statusstring"active"Статус кампании: active или paused.

Поддерживаемые значения (enums)

ПолеДопустимые значенияПримечание
cloaking_modeoff basic smart strict moderationFree: только off, basic. Pro/Enterprise: все режимы.
redirect_method302 js302 = HTTP redirect, js = JavaScript redirect
devicesall desktop mobileПустая строка = all
os_filterall windows macos android ios linuxМожно указать несколько через запятую: windows,macos
visit_window1h 6h 12h 1d 3d 7d 30dПериод, за который считаются визиты с одного IP
statusactive pausedПриостановленная кампания отвечает white на все запросы
sourceПроизвольная строкаРекомендуемые: Facebook Google TikTok Twitter Taboola Other

Campaigns CRUD

GET/campaigns
Получить список всех кампаний текущего пользователя

Request

# cURL
curl https://api.blackmoney.work/api/v1/campaigns \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  "campaigns": [
    {
      "camp_id": "camp_5045e36808c1ea8d",
      "name": "US Facebook Campaign",
      "domain": "example.com",
      "source": "Facebook",
      "white_url": "https://safe-page.com",
      "offer_url": "https://offer.com/landing",
      "cloaking_mode": "smart",
      "redirect_method": "302",
      "countries": "US,GB",
      "devices": "all",
      "os_filter": "all",
      "block_vpn": 1,
      "block_tor": 1,
      "block_dc": 1,
      "block_abusers": 1,
      "max_visits_ip": 5,
      "visit_window": "1d",
      "status": "active",
      "clicks_total": 12847,
      "clicks_passed": 9421,
      "clicks_blocked": 3426,
      "conversions": 247,
      "created_at": 1722960000
    }
  ]
}
GET/campaigns/{camp_id}
Получить одну кампанию по ID

Request

# cURL
curl https://api.blackmoney.work/api/v1/campaigns/camp_5045e36808c1ea8d \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

Возвращает полный объект кампании (см. структуру выше).

POST/campaigns
Создать новую кампанию. Возвращает сгенерированный camp_id.

Request

# cURL
curl -X POST https://api.blackmoney.work/api/v1/campaigns \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "US Facebook Campaign",
    "domain": "example.com",
    "source": "Facebook",
    "white_url": "https://safe-page.com",
    "offer_url": "https://offer.com/landing",
    "cloaking_mode": "smart",
    "redirect_method": "302",
    "countries": "US,GB",
    "devices": "all",
    "block_vpn": 1,
    "block_tor": 1,
    "block_dc": 1,
    "block_abusers": 1,
    "max_visits_ip": 5,
    "visit_window": "1d"
  }'

Response 200

{
  "camp_id": "camp_a1b2c3d4e5f6g7h8",
  "created": true
}
Обязательные поля для создания: name, white_url, offer_url. Все остальные поля имеют значения по умолчанию.
PUT/campaigns/{camp_id}
Полное обновление кампании. Передайте все поля.

Request

# cURL
curl -X PUT https://api.blackmoney.work/api/v1/campaigns/camp_5045e36808c1ea8d \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "US Facebook Campaign v2",
    "cloaking_mode": "strict",
    "countries": "US,GB,CA",
    "block_vpn": 1,
    "max_visits_ip": 3,
    "visit_window": "12h"
  }'

Response 200

{
  "camp_id": "camp_5045e36808c1ea8d",
  "updated": true
}
Передавайте только те поля, которые хотите изменить. Поля, не указанные в запросе, сохраняют текущие значения.
DELETE/campaigns/{camp_id}
Удалить одну кампанию. Операция необратима.

Request

# cURL
curl -X DELETE https://api.blackmoney.work/api/v1/campaigns/camp_5045e36808c1ea8d \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  "deleted": true,
  "camp_id": "camp_5045e36808c1ea8d"
}
Удаление кампании удаляет все связанные события и статистику. Интеграционные скрипты, установленные на серверах, перестанут работать и будут возвращать 404.

Cloaking Check

POST/check
Основной эндпоинт фильтрации трафика. Вызывается интеграционными скриптами при каждом посещении.

Это ключевой эндпоинт BlackMoney. Интеграционные скрипты (PHP, Nginx, JS) отправляют данные о посетителе, а API возвращает вердикт: пропустить на оффер или показать white page.

Request

# cURL
curl -X POST https://api.blackmoney.work/api/v1/check \
  -H "Content-Type: application/json" \
  -H "X-Key: BM-447487D0D892AE909EB1487E4951DAA5" \
  -d '{
    "ip": "203.0.113.45",
    "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/126.0.0.0 Safari/537.36",
    "ref": "https://facebook.com/ads/click?id=123",
    "country": "US",
    "camp": "camp_5045e36808c1ea8d"
  }'

Поля запроса

ПолеТипОбязательноОписание
ipstringДаIPv4/IPv6 адрес посетителя. Используется для geo-фильтрации, IP-лимитов, VPN/Tor-детекции.
uastringДаПолный User-Agent. Анализируется для бот-детекции, OS/device фильтрации, headless-browser detection.
refstringНетHTTP Referer. В режимах strict/moderation пустой referer = блокировка.
countrystringНетISO 3166-1 alpha-2 код страны. Если не указан, определяется по IP на стороне сервера.
campstringДаID кампании. Формат: camp_ + 16 hex-символов.

Response: Visitor passed (пропущен на оффер)

{
  "verdict": "pass",
  "offer": "https://offer.com/landing",
  "white": "https://safe-page.com"
}

Response: Visitor blocked (показан white)

{
  "verdict": "block",
  "offer": "https://offer.com/landing",
  "white": "https://safe-page.com",
  "reason": "bot: googlebot"
}

Возможные значения reason

ReasonОписание
bot: {name}UA содержит сигнатуру бота из базы (45+ паттернов)
headless browserОбнаружен headless Chrome, PhantomJS, Puppeteer, Selenium, Playwright, WebDriver
geo blockedСтрана посетителя не входит в разрешенный список
device blockedТип устройства не соответствует фильтру (desktop/mobile)
os blockedОС посетителя не входит в разрешенный список
ip limitПревышен лимит визитов с одного IP за временное окно
empty refererПустой referer (только в режимах strict и moderation)
campaign pausedКампания приостановлена
cleanВердикт pass, посетитель чист
Оба URL (offer и white) всегда возвращаются в ответе. Интеграционный скрипт использует verdict для выбора, куда направить посетителя.

Stats

GET/stats
Сводная статистика по всем кампаниям текущего пользователя

Request

# cURL
curl https://api.blackmoney.work/api/v1/stats \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  "clicks": 45892,
  "passed": 31247,
  "blocked": 14645,
  "conversions": 1847,
  "unique_ips": 28103,
  "campaigns": 5
}
ПолеОписание
clicksОбщее количество проверок (pass + block)
passedКоличество пропущенных на оффер
blockedКоличество заблокированных (показан white)
conversionsПодтвержденные конверсии (через postback)
unique_ipsУникальные IP-адреса за весь период
campaignsКоличество активных кампаний

Live Feed

GET/feed?limit=50
Последние события фильтрации в реальном времени

Request

# cURL
curl "https://api.blackmoney.work/api/v1/feed?limit=50" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Query-параметры

ПараметрТипПо умолчаниюОписание
limitinteger50Количество событий. Максимум: 200.

Response 200

{
  "events": [
    {
      "id": 48291,
      "camp_id": "camp_5045e36808c1ea8d",
      "ip": "203.0.113.45",
      "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/126.0",
      "referer": "https://facebook.com",
      "country": "US",
      "verdict": "pass",
      "reason": "clean",
      "ts": 1722960847
    },
    {
      "id": 48290,
      "camp_id": "camp_5045e36808c1ea8d",
      "ip": "66.249.73.12",
      "ua": "Googlebot/2.1 (+http://www.google.com/bot.html)",
      "referer": "",
      "country": "US",
      "verdict": "block",
      "reason": "bot: googlebot",
      "ts": 1722960842
    }
  ]
}

Bot Intelligence PRO

GET/botintel
Аналитика по ботам и угрозам. Только Pro и Enterprise.

Request

# cURL
curl https://api.blackmoney.work/api/v1/botintel \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response 200

{
  "total_signatures": 48,
  "blocked_today": 2847,
  "accuracy": 93.2,
  "top_threats": [
    {"reason": "bot: googlebot", "cnt": 847},
    {"reason": "headless browser", "cnt": 623},
    {"reason": "bot: facebookexternalhit", "cnt": 412},
    {"reason": "bot: semrushbot", "cnt": 189},
    {"reason": "bot: ahrefsbot", "cnt": 142}
  ]
}
ПолеОписание
total_signaturesКоличество паттернов в базе бот-сигнатур
blocked_todayБотов заблокировано за сегодня
accuracyТочность детекции в процентах
top_threatsТоп угроз с количеством срабатываний
Эндпоинт доступен только на планах Pro и Enterprise. На плане Free возвращается 403.

Code Generation

GET/code/{camp_id}?fmt=php
Генерация уникального интеграционного скрипта, привязанного к пользователю и кампании

Request

# cURL — получить PHP-скрипт
curl "https://api.blackmoney.work/api/v1/code/camp_5045e36808c1ea8d?fmt=php" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Nginx конфигурация
curl "https://api.blackmoney.work/api/v1/code/camp_5045e36808c1ea8d?fmt=nginx" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# JavaScript
curl "https://api.blackmoney.work/api/v1/code/camp_5045e36808c1ea8d?fmt=js" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Query-параметры

ПараметрТипПо умолчаниюДопустимые значенияОписание
fmtstringphpphp nginx jsФормат интеграционного скрипта

Response 200

{
  "code": "<?php\n$aX7 = 'BM-447487D0...';\n$qR3 = 'camp_5045e368...';\n...",
  "format": "php",
  "camp_id": "camp_5045e36808c1ea8d"
}
Каждый вызов генерирует уникальный скрипт с обфусцированными именами переменных и инжектированным мертвым кодом. Два вызова для одной кампании дадут структурно разные файлы. API-ключ и camp_id зашиты в скрипт и привязаны к вашему аккаунту.

Различия форматов

ФорматГде использоватьМетод интеграции
phpЛюбой PHP-хостинг, WordPress, лендингиЗагрузите файл в корень сайта, подключите через include или замените index.php
nginxVPS с Nginx + OpenResty (Lua)Добавьте конфигурацию в server-блок Nginx
jsСтатические сайты, SPA, конструкторыВставьте тег <script> перед </body>

Template и Metadata

GET/campaigns/template
Получить шаблон payload для создания кампании со всеми полями и значениями по умолчанию

Response 200

{
  "template": {
    "name": "",
    "domain": "",
    "source": "",
    "white_url": "",
    "offer_url": "",
    "cloaking_mode": "basic",
    "redirect_method": "302",
    "countries": "",
    "devices": "all",
    "os_filter": "all",
    "block_vpn": 1,
    "block_tor": 1,
    "block_dc": 1,
    "block_abusers": 1,
    "max_visits_ip": 5,
    "visit_window": "1d"
  }
}
GET/campaigns/metadata
Получить списки допустимых значений для всех enum-полей кампании

Response 200

{
  "cloaking_modes": ["off", "basic", "smart", "strict", "moderation"],
  "redirect_methods": ["302", "js"],
  "devices": ["all", "desktop", "mobile"],
  "os_filters": ["all", "windows", "macos", "android", "ios", "linux"],
  "visit_windows": ["1h", "6h", "12h", "1d", "3d", "7d", "30d"],
  "sources": ["Facebook", "Google", "TikTok", "Twitter", "Taboola", "Other"]
}

Ошибки

При ошибке API возвращает JSON с полем detail, содержащим описание проблемы.

Формат ошибки

{
  "detail": "campaign not found"
}

Коды ошибок

КодЗначениеКогда возвращается
400Bad RequestНевалидный JSON, отсутствуют обязательные поля, некорректные значения enum
401UnauthorizedОтсутствует или невалидный JWT-токен / API-ключ. Истекший токен.
403ForbiddenАккаунт заблокирован. Попытка использовать режим/функцию, недоступную на текущем плане. Превышен лимит кампаний для плана.
404Not FoundКампания с указанным camp_id не найдена или принадлежит другому пользователю.
409ConflictEmail уже зарегистрирован (при /auth/register).
422Unprocessable EntityДанные прошли валидацию формата, но семантически некорректны (пустой offer_url, невалидный URL).
429Too Many RequestsМесячный лимит кликов для плана исчерпан. Upgrade для увеличения.
500Internal Server ErrorВнутренняя ошибка сервера. Повторите запрос. При повторении свяжитесь с поддержкой.

Типичные ошибки и решения

detailПричинаРешение
missing Authorization headerЗаголовок не переданДобавьте Authorization: Bearer TOKEN
token expiredJWT истек (30 дней)Получите новый через /auth/login
invalid tokenПоврежденный или чужой токенПроверьте корректность токена
bannedАккаунт заблокирован администраторомСвяжитесь с поддержкой
campaign limit reachedДостигнут лимит кампаний для планаУдалите неиспользуемые кампании или перейдите на Pro/Enterprise
mode not available on your planРежим клоакинга недоступен на FreeИспользуйте off или basic, либо upgrade до Pro
monthly click limit exceededИсчерпан месячный лимит кликовЛимит сбрасывается 1-го числа каждого месяца. Upgrade для увеличения.

Rate Limits

API использует rate limiting для защиты от злоупотреблений. Лимиты зависят от эндпоинта и плана.

ЭндпоинтFreeProEnterprise
/check100 req/min1,000 req/min10,000 req/min
/campaigns (CRUD)30 req/min60 req/min120 req/min
/stats, /feed30 req/min60 req/min120 req/min
/code/{id}10 req/min30 req/min60 req/min
/auth/*5 req/min (для всех планов)

При превышении rate limit API возвращает 429 Too Many Requests с заголовком Retry-After, указывающим количество секунд до сброса.

HTTP/1.1 429 Too Many Requests
Retry-After: 30
Content-Type: application/json

{"detail": "rate limit exceeded, retry after 30s"}

Примечания

  • Все временные метки в формате Unix timestamp (секунды с 1 января 1970 UTC).
  • Все строковые значения в UTF-8.
  • Максимальный размер тела запроса: 1 MB.
  • API использует HTTP/1.1. Поддерживается keep-alive.
  • CORS включен для всех origin с Access-Control-Allow-Origin: *.
  • Ответы сжимаются gzip при наличии Accept-Encoding: gzip.
SDK и библиотеки. Официальных SDK пока нет. API спроектирован для простой интеграции через стандартные HTTP-библиотеки: curl, fetch, requests, Guzzle. Интеграционные скрипты (PHP/Nginx/JS) генерируются автоматически через эндпоинт /code и не требуют ручного написания кода.