← Площадки

Реклама после полезного ответа

Подключите CPC на сервере своего бота. Токен BotFather остаётся у вас. Регистрация зрителя в PixorAds не нужна.

1. Подготовьте площадку

  1. Добавьте бота, подтвердите управление и дождитесь модерации.
  2. Выпустите ключ PixorAds в кабинете и сохраните его в переменной окружения PIXORADS_API_KEY. Секрет не должен попасть в Git или код Mini App.
  3. Скачайте SDK: Python / aiogram или Node.js / Telegraf. Для Python установите httpx, сохраните файл как pixorads_bot.py.

2. Отправьте тест только себе

Этот endpoint выдаёт демонстрационный материал без кампании, бюджета и дохода. Нажатия не оплачиваются. Вызовите отправку из своего серверного скрипта один раз.

import os, httpx
from aiogram import Bot

async def test_to_yourself(your_telegram_id):
    async with httpx.AsyncClient(timeout=5) as client:
        response = await client.post(
            "https://pixora-ads.com/api/v1/ad-network/publisher-api/bot/test",
            headers={"X-PixorAds-Key": os.environ["PIXORADS_API_KEY"]},
        )
        response.raise_for_status()
        async with Bot(os.environ["BOT_TOKEN"]) as bot:
            for message in response.json()["telegram_messages"]:
                await bot.send_message(
                    chat_id=your_telegram_id, **message["payload"]
                )

3. Добавьте вызов после результата

import os
from pixorads_bot import PixorAdsBot
ads = PixorAdsBot(os.environ["PIXORADS_API_KEY"])

# AFTER delivering the useful reply; private chats only
if message.chat.type == "private":
    await ads.after_result(
        bot, message.from_user.id,
        event_id=f"result:{message.from_user.id}:{message.message_id}",
        language="ru",
    )

Используйте настоящий ID отправителя Telegram и постоянный ID события. Один и тот же результат не должен получать новый ID при повторной обработке.

import {pixorAdsAfterResult} from "./pixorads-bot.mjs";

if (ctx.chat.type === "private") {
    await pixorAdsAfterResult({
        apiKey: process.env.PIXORADS_API_KEY,
        telegramUserId: ctx.from.id,
        eventId: `result:${ctx.update.update_id}`,
        language: "ru",
        send: (method, payload) => ctx.telegram.callApi(method, payload),
    });
}

В кабинете включите рекламу и сохраните настройки. По умолчанию — автоматический подбор и одно объявление человеку в сутки в вашем боте. Согласование кампаний можно включить.

Как считается доход

Ошибки и повторная обработка

source: none — штатный ответ: неподходящая кампания, лимит или отключённая площадка. Продолжайте работу бота.

SDK резервирует попытку отправки через /offers/{offer_id}/claim. При неопределённом результате Telegram не повторяйте отправку автоматически. Если сообщение доставлено, но report_pending: true, повторяйте только отчёт:

POST /api/v1/ad-network/publisher-api/bot/offers/{offer_id}/report
X-PixorAds-Key: YOUR_SERVER_KEY
Content-Type: application/json

{"outcome":"sent"}

Определённый отказ Telegram можно сообщить как {"outcome":"failed"}. Отчёт идемпотентен и не создаёт оплаты. Регистрацию, оплату, ошибки и групповые чаты оставляйте без рекламы.