CPA для тех, кто не в теме

CPA (Cost Per Action) — модель оплаты за действие. Ты размещаешь ссылку на продукт, пользователь переходит и что-то делает (покупает, регистрируется, оставляет заявку), ты получаешь деньги. Не за показы, не за клики — за конкретный результат.

Примеры офферов из Admitad:

НишаДействиеКомиссия
Онлайн-курсыПокупка курса1 500–5 000 ₽
БанкиОформление кредитной карты800–2 500 ₽
МаркетплейсыПервый заказ200–600 ₽
Хостинг/ VPSПокупка тарифа300–1 200 ₽
Нейросети / AI сервисыРегистрация + платный тариф700–3 000 ₽

Ниша нейросетей — золотая жила прямо сейчас. Рынок растёт на 30% в год, офферы свежие, конкуренция низкая. Я сижу именно здесь.

Архитектура: как автоматизировать

Ручной CPA — это ад: заходишь в Admitad, ищешь офферы, генеришь ссылки, ведёшь табличку. Я автоматизировал процесс в 3 шага:

┌────────────────┐
│   Admitad API  │──▶ Забираем список офферов
└───────┬────────┘
        │
        ▼
┌────────────────┐
│  Alice LLM     │──▶ Анализирует: какой оффер под какую статью
└───────┬────────┘     Подбирает по теме, комиссии, конверсии
        │
        ▼
┌────────────────┐
│   PHP скрипт   │──▶ Генерит deep-link с UTM-метками
└───────┬────────┘     Вставляет в контент
        │
        ▼
┌────────────────┐
│  Статистика    │──▶ Ежедневный отчёт в Telegram: клики, лиды, доход
└────────────────┘

Шаг 1: Получаем токен Admitad

Регистрация на admitad.com → личный кабинет → Инструменты → API. Создаёшь приложение, получаешь client_id и client_secret.

Admitad использует OAuth2. Токен можно обновлять автоматически:

<?php
// admitad_auth.php — получение токена
function getAdmitadToken(): string {
    $clientId = getenv("ADMITAD_CLIENT_ID");
    $clientSecret = getenv("ADMITAD_CLIENT_SECRET");
    
    $auth = base64_encode("{$clientId}:{$clientSecret}");
    
    $ch = curl_init("https://api.admitad.com/token/");
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query([
            "grant_type" => "client_credentials",
            "scope" => "advcampaigns websites",
        ]),
        CURLOPT_HTTPHEADER => [
            "Authorization: Basic {$auth}",
            "Content-Type: application/x-www-form-urlencoded",
        ],
        CURLOPT_RETURNTRANSFER => true,
    ]);
    
    $data = json_decode(curl_exec($ch), true);
    return $data["access_token"] ?? "";
}

Шаг 2: Парсим офферы и подбираем под контент

API Admitad отдаёт список активных офферов. Фильтруем по нише, комиссии, типу оплаты:

<?php
// admitad_offers.php — получение и фильтрация офферов
function getHighPayingOffers(string $token): array {
    $ch = curl_init("https://api.admitad.com/advcampaigns/website/ТВОЙ_SITE_ID/?limit=50");
    curl_setopt_array($ch, [
        CURLOPT_HTTPHEADER => ["Authorization: Bearer {$token}"],
        CURLOPT_RETURNTRANSFER => true,
    ]);
    
    $data = json_decode(curl_exec($ch), true);
    $offers = [];
    
    foreach ($data["results"] ?? [] as $offer) {
        // Фильтр: только оплата за продажу (CPA), от 500 ₽
        if (($offer["action_type"] ?? "") !== "sale") continue;
        if (($offer["cr"] ?? 0) < 500) continue;
        
        $offers[] = [
            "id" => $offer["id"],
            "name" => $offer["name"],
            "commission" => $offer["cr"],
            "category" => $offer["category"]["name"] ?? "",
            "goto_link" => $offer["goto_link"],
        ];
    }
    
    return $offers;
}

Шаг 3: Alice LLM подбирает оффер к статье

Самое интересное. У тебя есть статья «Как я генерирую картинки нейросетями» и 50 офферов. Какой вставить? Отправляю статью + список офферов в Alice, получаю рекомендацию:

<?php
function matchOfferToArticle(string $articleTitle, array $offers): array {
    $offersJson = json_encode($offers, JSON_UNESCAPED_UNICODE);
    
    $prompt = <<<PROMPT
Ты — эксперт по CPA-маркетингу. К статье «{$articleTitle}» подбери 3 лучших оффера из списка.
Верни JSON: [{"offer_id": 123, "reason": "почему подходит", "strong_match": true}]
Учитывай: релевантность теме, размер комиссии, конверсию.

Список офферов:
{$offersJson}
PROMPT;

    $result = callAliceLLM($prompt);
    return json_decode($result, true) ?? [];
}

Alice анализирует: «Эта статья про генерацию картинок → оффер сервиса генерации изображений → комиссия 1 200 ₽ → 🔥». Дальше PHP генерит deep-link и вставляет в статью.

Генерация deep-link с UTM-метками

Deep-link — это ссылка, которая ведёт на оффер через Admitad + содержит UTM-метки для аналитики:

<?php
function buildDeeplink(array $offer, string $articleSlug): string {
    // Admitad deep-link формат
    $params = [
        "utm_source" => "bbb2",
        "utm_medium" => "cpa",
        "utm_campaign" => "article_" . $articleSlug,
        "utm_content" => "offer_" . $offer["id"],
    ];
    
    return $offer["goto_link"] . "?" . http_build_query($params);
}

Автоматический отчёт в Telegram

Cron каждый день в 9:00 собирает статистику из Admitad API и присылает в личку:

<?php
// cpa_daily_report.php — ежедневный отчёт
function sendDailyReport(string $token, string $botToken, string $chatId): void {
    $yesterday = date("Y-m-d", strtotime("-1 day"));
    
    $ch = curl_init("https://api.admitad.com/statistics/actions/?date_start={$yesterday}&date_end={$yesterday}");
    curl_setopt_array($ch, [
        CURLOPT_HTTPHEADER => ["Authorization: Bearer {$token}"],
        CURLOPT_RETURNTRANSFER => true,
    ]);
    
    $data = json_decode(curl_exec($ch), true);
    $stats = $data["results"][0] ?? [];
    
    $clicks = $stats["clicks"] ?? 0;
    $actions = $stats["actions"] ?? 0;
    $revenue = $stats["payment_sum"] ?? 0;
    
    $text = "📊 CPA-отчёт за {$yesterday}\n"
          . "👆 Кликов: {$clicks}\n"
          . "✅ Действий: {$actions}\n"
          . "💰 Доход: " . number_format($revenue, 2) . " ₽\n"
          . "📈 Конверсия: " . ($clicks > 0 ? round($actions/$clicks*100, 1) : 0) . "%";
    
    file_get_contents("https://api.telegram.org/bot{$botToken}/sendMessage?" . http_build_query([
        "chat_id" => $chatId,
        "text" => $text,
    ]));
}

Реальные цифры с bbb2.ru

После автоматизации связки «статьи → CPA-офферы» за июнь 2026:

ПоказательЗначение
Статей с CPA-ссылками12
Кликов по ссылкам847
Целевых действий34
Конверсия4.0%
Доход18 460 ₽
Затраты на API~2 ₽ (на подбор офферов)
Затраты времени1 час (настройка автоматизации)

18 460 ₽ за месяц. Это не золотые горы, но это пассивно. Я один раз настроил — и каждый день отчёт приходит в Telegram. Статьи работают сами.

Масштабирование: с одного сайта на сетку

Если один сайт приносит 18 000 ₽, то 10 сайтов-сателлитов с уникальным контентом — 180 000 ₽/мес. Контент генерится нейросетями, офферы подбираются автоматом, deep-link'и вставляются скриптом.

Схема сателлита:

  1. Покупаешь домен за 300 ₽
  2. Генеришь 30 статей Alice LLM по нише
  3. YandexART делает картинки
  4. Скрипт вставляет CPA-ссылки в каждую статью
  5. Заливаешь на хостинг (VPS за 600 ₽/мес — там же и основной сайт)
  6. Через 4-6 месяцев — поисковый трафик из Яндекса

Один сателлит: ~1 000 ₽ вложений, 10 000–30 000 ₽/мес потенциального дохода.

Что это значит для вас: CPA через Admitad — не «разместил ссылку и забыл». Это система: API → нейросеть → deep-link → отчёт. Когда автоматизировано — приносит деньги на автомате. Мой июнь: 18 460 ₽ с 12 статей. Ваш может быть больше.