Разработка системы AI-генерации рекламных текстов
Представьте: вы запускаете кампанию в Яндекс.Директ и Google Ads одновременно. Ручное написание 100+ уникальных объявлений с учётом лимитов символов и тона бренда — это неделя рутины. И даже после этого 4 из 5 вариантов не дают ожидаемого CTR. Мы прошли через это с десятками клиентов и построили систему на GPT-4o, которая генерирует сотни вариантов за минуты, учитывая ограничения каждой платформы. Под ключ — от аудита до интеграции с рекламными кабинетами.
Типичные проблемы, которые решает система
Проблема №1 — платформенные лимиты. Яндекс.Директ режет заголовки после 35 символов, Google Ads — после 30. Ручная подгонка отнимает часы, а результат всё равно страдает. Мы зашили эти правила прямо в промпт: модель «знает» максимумы и генерирует тексты строго в рамках. Проблема №2 — раздутый бюджет A/B тестов. Копирайтер пишет 10 вариантов в день — для статистики этого мало. Наша система выдаёт 100+ вариантов в минуту, вы можете тестировать 50+ комбинаций за час и быстро находить победителя. Проблема №3 — потеря тона бренда. Без fine-tuning модель легко генерирует общие фразы. Мы добавляем слот для brand-тона и используем RAG, чтобы подтянуть контекст ваших прошлых кампаний.
Как система обеспечивает соответствие платформенным ограничениям?
Каждая платформа диктует жёсткие лимиты: длина заголовка, число символов в описании, доступные CTA. Мы зашили эти правила напрямую в промпт — модель «знает», что для Яндекс.Директ заголовок максимум 35 символов, а для Google Ads — 30. Никаких обрезанных фраз и ручной доработки.
from openai import AsyncOpenAI
from dataclasses import dataclass
client = AsyncOpenAI()
@dataclass
class AdBrief:
product: str
usp: str # уникальное торговое предложение
target_audience: str
pain_points: list[str]
platform: str # google_search, yandex_direct, vk, telegram, instagram
goal: str # clicks, conversions, awareness, app_install
brand_tone: str = "professional"
PLATFORM_CONSTRAINTS = {
"google_search": {
"headline_max": 30,
"headline_count": 15,
"description_max": 90,
"description_count": 4
},
"yandex_direct": {
"headline_max": 35,
"headline_count": 8,
"description_max": 81,
"description_count": 2
},
"vk": {
"headline_max": 50,
"body_max": 220,
"cta_options": ["Подробнее", "Купить", "Записаться", "Узнать больше", "Попробовать"]
},
"telegram": {
"title_max": 50,
"description_max": 160,
"button_text_max": 25
}
}
async def generate_ad_copy(
brief: AdBrief,
num_variants: int = 5
) -> list[dict]:
constraints = PLATFORM_CONSTRAINTS.get(brief.platform, {})
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Ты — Performance-маркетолог, специалист по копирайтингу для {brief.platform}.
Создай {num_variants} вариантов рекламного текста.
Ограничения платформы:
{json.dumps(constraints, ensure_ascii=False)}
Принципы:
- Конкретика вместо общих слов ("экономия 30 мин/день" > "экономия времени")
- Выгода в заголовке, не функция
- Триггеры: срочность, социальное доказательство, страх упустить
- Четкий CTA
- Без клише: "лучший", "уникальный", "инновационный"
Верни JSON массив вариантов."""
}, {
"role": "user",
"content": f"""
Продукт: {brief.product}
УТП: {brief.usp}
ЦА: {brief.target_audience}
Болевые точки: {', '.join(brief.pain_points)}
Цель: {brief.goal}
Тон: {brief.brand_tone}
"""
}],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)["variants"]
Почему стоит использовать AI-генерацию вместо копирайтера?
Сравните: копирайтер пишет 10 вариантов за день, AI — 100 за минуту. GPT-4o обходится в 5-10 раз дешевле и не требует согласования правок. Но главное — он не устаёт и не забывает про ограничения платформ. В одном из проектов система увеличила CTR на 35% за счёт автоматического A/B тестирования 40 вариантов заголовков. Оцените проект — свяжитесь с нами, и мы подберём оптимальный стек под ваши задачи.
Генератор лендинговых секций
LANDING_SECTIONS = {
"hero": "заголовок + подзаголовок + CTA-кнопка",
"problem": "описание проблемы которую решаем",
"solution": "как продукт решает проблему",
"features": "3-5 ключевых возможностей с описанием",
"social_proof": "отзывы, кейсы, цифры",
"faq": "5-7 вопросов и ответов",
"cta": "финальный призыв к действию"
}
async def generate_landing_copy(brief: AdBrief) -> dict:
sections = {}
for section_name, section_desc in LANDING_SECTIONS.items():
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"Напиши секцию лендинга: {section_desc}. Без шаблонных фраз. Конкретно и по делу."
}, {
"role": "user",
"content": f"Продукт: {brief.product}. УТП: {brief.usp}. ЦА: {brief.target_audience}."
}]
)
sections[section_name] = response.choices[0].message.content
return sections
Требования к текстам по платформам
| Платформа | Заголовок макс. | Описание макс. | CTA-кнопка макс. |
|---|---|---|---|
| Google Ads | 30 символов | 90 символов | — |
| Яндекс.Директ | 35 символов | 81 символ | — |
| VK | 50 символов | 220 символов | 25 символов |
| Telegram | 50 символов | 160 символов | 25 символов |
| Параметр | Ручной копирайтинг | AI-система |
|---|---|---|
| Скорость производства | 10–20 вариантов/день | 100+ вариантов/минута |
| A/B тестирование | 2–3 варианта в неделю | 50+ вариантов за час |
| Точность соблюдения формата | Требует проверки | Автоматически |
Как мы учитываем тон бренда?
Для сохранения уникального голоса бренда мы используем fine-tuning на ваших исторических данных — до 1000 примеров текстов. Адаптация выполняется через LoRA-адаптеры, что снижает стоимость до 5% от полного fine-tuning. Если данных мало — подключаем RAG: модель подтягивает релевантные фрагменты из библиотеки ваших текстов (письма, посты, лендинги). Это гарантирует, что сгенерированный текст звучит как ваш бренд, а не как среднестатистический копирайтер.
Модуль оценки качества текстов
Для отбора лучших вариантов до запуска кампании встроен модуль скоринга на базе GPT-4o. Он анализирует каждый вариант по пяти критериям: релевантность целевой аудитории, ясность, создание срочности, наличие конкретики и сила CTA. Каждый критерий оценивается от 1 до 10. На основе суммы баллов модель предсказывает CTR-потенциал (low/medium/high). Это позволяет отсеивать слабые варианты до того, как они попадут в рекламный кабинет.
async def score_ad_copy(copy_variants: list[dict], brief: AdBrief) -> list[dict]:
"""Оцениваем каждый вариант по ключевым метрикам"""
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Оцени рекламные тексты для {brief.platform}.
Критерии оценки (каждый 1-10):
- relevance_to_audience: соответствие ЦА
- clarity: ясность и понятность
- urgency: создание срочности
- specificity: наличие конкретики/цифр
- cta_strength: сила призыва к действию
Предскажи CTR потенциал: low/medium/high.
Верни JSON массив оценок."""
}, {
"role": "user",
"content": f"Варианты:\n{json.dumps(copy_variants, ensure_ascii=False)}\n\nПродукт: {brief.product}, ЦА: {brief.target_audience}"
}],
response_format={"type": "json_object"}
)
scores = json.loads(response.choices[0].message.content)["scores"]
for i, variant in enumerate(copy_variants):
if i < len(scores):
variant["scores"] = scores[i]
return copy_variants
Что входит в работу
- Аудит текущих рекламных кампаний — разбор брифов, тона, эффективности. Мы оцениваем объём текстов, типичные ошибки и точки роста.
- Проектирование архитектуры — выбор модели (GPT-4o/Claude 3.5), настройка промптов, слота для подстановки бренд-контекста. Определяем, нужен ли fine-tuning или RAG.
- Разработка генератора — реализация модулей: генерация по платформе, лендинги, оценка качества. Пишем код на Python с асинхронными запросами.
- Интеграция с рекламными кабинетами — подключение к Google Ads API, Яндекс.Директ API, Telegram Ads. Автоматическая загрузка текстов по расписанию.
- Тестирование и калибровка — генерация 500+ вариантов, замер CTR, корректировка весов критериев. Итеративно улучшаем качество.
- Деплой и документация — развёртывание на вашем сервере или в облаке, README, swagger-спецификация, обучение команды.
Сроки: базовый модуль — от 1 недели, полная платформа — до 4 недель. Свяжитесь с нами для оценки вашего проекта — мы подберём оптимальный стек и рассчитаем стоимость за 1 день. Гарантируем стабильную работу и поддержку на всех этапах.
Дополнительно: мы используем передовые методы LLM — fine-tuning на ваших исторических данных, RAG для учёта контекста бренда, и LoRA-адаптеры для снижения стоимости. Опыт команды — 5+ лет в машинном обучении и 20+ проектов в рекламной автоматизации. Закажите внедрение и получите консультацию по вашему проекту.







