Skip to main content

Official SDK for the AnyAds advertising platform for Telegram bots.

Project description

Официальный Python SDK для легкой интеграции вашего Telegram-бота с рекламной платформой AnyAds.online. Начните монетизировать вашу аудиторию уже сегодня!

🚀 Быстрый старт

Этот гайд поможет вам интегрировать SDK и подготовить вашего бота к заработку менее чем за 5 минут.

Шаг 1: Установка

Установите пакет, используя pip. Если вы работаете с фреймворком Aiogram, мы настоятельно рекомендуем установить SDK с дополнительными зависимостями для упрощенной интеграции.

# Для Aiogram
pip install "anyads[aiogram]"

# Стандартная установка (для других фреймворков)
pip install anyads

Шаг 2: Получение API Key

  1. Зарегистрируйтесь на anyads.online.
  2. Перейдите в раздел "Площадки" и добавьте вашего бота, указав его @username.
  3. Для вашей новой площадки будет сгенерирован уникальный API_KEY, начинающийся с anyads_.... Скопируйте его. Он понадобится на следующем шаге.

Шаг 3: Интеграция в код (Пример для Aiogram 3.x)

В главном файле вашего бота, где происходит его запуск, добавьте следующий код:

import asyncio
import os
import logging
from aiogram import Bot, Dispatcher, types

# 1. Импортируем AnyAds SDK
import anyads

# --- Конфигурация ---
# Рекомендуется хранить ключи в переменных окружения, а не в коде
ANYADS_API_KEY = os.getenv("ANYADS_API_KEY")
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")

# Настраиваем базовое логирование для отладки
logging.basicConfig(level=logging.INFO)

# --- Инициализация Aiogram ---
dp = Dispatcher()
bot = Bot(TELEGRAM_BOT_TOKEN)

# 2. Инициализируем SDK AnyAds
# SDK автоматически запустит фоновый опрос рекламных задач
sdk = anyads.init(api_key=ANYADS_API_KEY)

# 3. Регистрируем обработчики AnyAds (для верификации)
# Эта простая строчка позволит нашим модераторам верифицировать вашего бота
anyads.integrations.aiogram.register_anyads_handlers(dp)


# 4. Создаем обработчик для полученной рекламы
@sdk.on_broadcast_received
async def handle_ad_task(task_data: dict):
    """
    Эта функция будет автоматически вызвана SDK, когда с сервера
    придет новая задача на рассылку.
    """
    logging.info(f"Получена новая задача на рассылку: {task_data.get('task_id')}")

    creative = task_data.get("creative", {}).get("content", {})
    text = creative.get("text")

    if not text:
        logging.error("Ошибка: в задаче отсутствует текст для рассылки.")
        return

    # !!! ВАЖНО: Здесь должна быть ваша логика получения списка ID пользователей
    # user_ids = await get_all_active_users_from_your_database()
    user_ids = [] # Заглушка, замените на реальный код

    sent_count = 0
    for user_id in user_ids:
        try:
            await bot.send_message(user_id, text)
            sent_count += 1
            await asyncio.sleep(0.05)
        except Exception as e:
            logging.warning(f"Не удалось отправить сообщение пользователю {user_id}: {e}")

    logging.info(f"Рассылка завершена. Отправлено {sent_count} из {len(user_ids)} сообщений.")


# --- Основная функция запуска ---
async def main():
    # Запускаем фоновый опрос AnyAds
    await sdk.start()

    # Запускаем бота
    try:
        await dp.start_polling(bot)
    finally:
        # Корректно останавливаем SDK при завершении работы бота
        await sdk.stop()
        logging.info("Бот и AnyAds SDK остановлены.")

if __name__ == "__main__":
    if not ANYADS_API_KEY or not TELEGRAM_BOT_TOKEN:
        raise RuntimeError("Необходимо установить переменные окружения ANYADS_API_KEY и TELEGRAM_BOT_TOKEN")

    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("Бот остановлен вручную.")

4. Верификация

После того как вы запустите бота с интегрированным SDK, его статус в личном кабинете AnyAds.online будет "Ожидает верификации". Наша команда модераторов проверит интеграцию и активирует вашу площадку. После этого ваш бот начнет получать рекламные задачи.

⚙️ Универсальная интеграция (для других фреймворков)

Если вы не используете aiogram, вы можете легко интегрировать SDK вручную.

  1. Установите ядро SDK: pip install anyads
  2. Инициализируйте и запустите SDK, как в примере выше (anyads.init(...), await sdk.start()).
  3. Обработайте команду верификации: Вам нужно самостоятельно поймать сообщение, начинающееся с /verify_anyads_, и передать его в SDK.
# Пример обработчика
async def handle_messages(message):
    if message.text and message.text.startswith('/verify_anyads_'):
        sdk = anyads.get_sdk_instance()
        success = await sdk.process_verification_code(message.text)
        if success:
            # Ответить пользователю об успехе
            pass

❓ Нужна помощь?

Если у вас возникли вопросы, обратитесь в нашу поддержку или изучите полную документацию на docs.anyads.online.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anyads-0.1.1.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anyads-0.1.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file anyads-0.1.1.tar.gz.

File metadata

  • Download URL: anyads-0.1.1.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for anyads-0.1.1.tar.gz
Algorithm Hash digest
SHA256 526cf73b7985600b69208b1ade64d24f3220d140bb11464c35ba164f62432830
MD5 da283e56eb7376a8f42e64d9f8b7eb22
BLAKE2b-256 51befbf5d15c08f4970c24bf3486e3c500e05b2340e1ced2701057e3a3ca7418

See more details on using hashes here.

File details

Details for the file anyads-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: anyads-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for anyads-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 437934ec438efaeb505bbdcb30e68a9fd3bfc9e949e73976d75707fc91a03d8f
MD5 e2a405d9cfb119dc137a266cb88ddd2a
BLAKE2b-256 d5e2f6f213bafe4df06879bf7b1fa564e4b6199e78ba4d8b00f9163b74a1368d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page