Автогенерация объявлений из семантического ядра
Генерация объявлений работает, когда генератору дают две вещи: реальные поисковые запросы и жёсткие ограничения. Без запросов получается текст «ни для кого», без ограничений — красивое сочинение с выдуманными свойствами товара. Расскажу, как мы шли к этому в платформе Papa BU через три версии, каждая из которых была хуже, чем казалась.
Что было до автоматизации
Объявления писал человек, и это была основная работа оператора. На позицию уходило от пяти до пятнадцати минут: посмотреть характеристики, придумать заголовок, набрать описание, заполнить параметры.
При десятке позиций в день это терпимо. При сотне — рабочий день целиком, и к вечеру тексты становятся всё короче, а заголовки всё однообразнее.
Отдельная беда была в заголовках. Человек называет вещь так, как называет её сам, а покупатель ищет другими словами, и объявление просто не показывается.
Версия первая: генератор без ядра
Мы начали с очевидного: отдать модели карточку товара и попросить написать объявление.
Получили ровно то, что заслужили.
Заголовок: «Отличный стул в хорошем состоянии». Описание: «Предлагаем вашему вниманию удобный стул. Отличное качество, приятная цена. Звоните, отвечу на все вопросы».
Текст грамотный и абсолютно нерабочий. В нём нет ни одного слова, которое человек набирает в поиске, и ни одной характеристики, по которой можно принять решение.
Проблема была не в модели, а во входе. Карточка отвечала на вопрос «что это», а объявление должно попадать в вопрос «что ищут».
Подключили Вордстат и сломали заголовки
Дальше мы приделали к генератору сбор поискового ядра: система забирает частотность из Вордстата, отсекает мусор, группирует близкие формулировки по категории.
Заголовки сразу стали попадать в спрос. И тут же появилась новая беда: генератор начал впихивать в заголовок все найденные формулировки сразу.
«Стул компьютерный кресло офисное на колёсиках купить недорого» — так выглядел типичный результат. Формально в нём есть частотные слова, по-человечески читать это невозможно.
Вторая проблема того же захода — лимит длины. Площадка обрезает заголовок, и обрезанный вариант выглядел ещё хуже: фраза обрывалась на середине слова.
Пришлось вводить правила: одна главная формулировка в заголовке, остальные уходят в описание и в параметры, длина проверяется до отправки, а не после.
Модель начала придумывать
Когда тексты стали читаемыми, мы расслабились и пропустили партию объявлений с меньшей проверкой.
В одном описании обнаружилось «гарантия 12 месяцев». Гарантии не было ни в карточке, ни в договорённостях продавца. Модель добавила её, потому что в таких текстах она обычно встречается.
Это худший тип ошибки: она выглядит правдоподобно и не режет глаз при беглом чтении. Ловится только сравнением текста с исходной карточкой.
Починили запретом на свойства, которых нет в данных. Генератор получает список полей и правило: описывать только то, что пришло в этих полях, пустое поле не заполнять догадкой, при нехватке данных писать короче.
Плюс появилась автоматическая сверка. Перед отправкой текст проверяется на присутствие числовых утверждений, которых нет в карточке, и такие объявления уходят человеку с пометкой.
Как это работает сейчас
Порядок получился такой.
- Система собирает ядро запросов по категории товара и держит его в актуальном виде.
- Из карточки берутся характеристики: тип, состояние, размеры, материал, комплектность.
- Генератор собирает заголовок из одной главной формулировки ядра и опорной характеристики.
- Описание строится по фиксированному каркасу: что это, состояние, характеристики списком, условия сделки.
- Проверки: длина под лимит площадки, отсутствие выдуманных свойств, наличие обязательных для категории параметров.
- Готовое объявление попадает в очередь на проверку человеком, и только оттуда — на размещение.
Пятнадцать минут на позицию превратились в несколько секунд генерации и примерно двадцать секунд на взгляд человека. Ручной шаг мы оставили сознательно.
Разница на одном товаре
Возьмём одну позицию: офисное кресло, ткань, регулировка высоты, состояние бывшее в употреблении.
Первая версия писала так: «Отличное кресло в хорошем состоянии, недорого». Ни типа, ни материала, ни единого слова из тех, что люди набирают в поиске.
Текущая версия собирает заголовок из главной формулировки ядра и опорной характеристики, а описание — по каркасу: что это, состояние, характеристики списком, условия сделки. Материал, регулировка и состояние в тексте есть, потому что они есть в карточке, а всё остальное отсутствует, потому что данных нет.
Разница не в красоте формулировок. Разница в том, что второй текст находится по запросу и отвечает на вопросы, из-за которых обычно пишут в личные сообщения.
Что стало заметно после запуска
Первое: качество текста упирается в качество каталога. Позиция с тремя заполненными полями даёт бедное объявление, и это не лечится настройкой генератора.
Второе: однообразие всплывает не там, где ждали. Похожими становятся не описания, а связки между блоками, и приходится держать несколько вариантов каркаса.
Третье: ядро запросов нужно обновлять. Формулировки меняются, и объявление, собранное по прошлогоднему ядру, постепенно теряет попадание в спрос.
Почему проверка человеком осталась навсегда
Нас несколько раз спрашивали, когда мы уберём ручной шаг. Ответ: не уберём.
Ошибка в объявлении на площадке — это не опечатка на своём сайте. Она уходит к покупателю, порождает спор о том, что было обещано, и иногда стоит блокировки размещения.
Взгляд человека на готовый текст занимает секунды, потому что читать надо не всё подряд, а несовпадения: цифры, состояние, комплектность. Остальное генератор собирает из полей и врать там негде.
Кому это не нужно
Если у вас двадцать позиций и они висят месяцами, генерация не окупится. Написать двадцать хороших текстов руками дешевле и лучше, чем строить конвейер.
Смысл появляется от сотен позиций с регулярным обновлением, когда написание текстов стало отдельной работой отдельного человека. И даже тогда генератор не отменяет проверку: он снимает набор текста, а не ответственность за то, что в этом тексте написано. Другие разборы автоматизации собраны в блоге.
Коротко
Генерация объявлений держится на трёх вещах: поисковое ядро вместо фантазии о названиях, жёсткие ограничения по длине и по составу, запрет описывать то, чего нет в карточке. Мы пришли к этому через пустые тексты, перегруженные заголовки и выдуманную гарантию в описании. Ручная проверка перед публикацией остаётся, потому что ошибка на площадке стоит дороже двадцати секунд внимания.
Первый разговор — разбор задачи: нужна ли вам система или хватит одной страницы. Без обязательств и без счёта.
Частые вопросы
Тексты получаются одинаковыми, если товаров много?
Одинаковыми они получаются тогда, когда карточки товаров одинаковые. Генератор берёт различия из данных, поэтому две позиции с разными характеристиками дают разные тексты, а две пустые карточки — два похожих. Разнообразие текста начинается с разнообразия в каталоге.
Нужно ли проверять каждое объявление руками?
На старте — да, целиком. Через несколько сотен проверок становится видно, где генератор ошибается систематически, и правила уточняются. Мы оставляем ручную проверку как обязательный шаг перед публикацией даже потом: цена ошибки на площадке выше стоимости взгляда.
Можно ли так генерировать описания товаров для своего магазина?
Механика та же: ядро запросов, ограничения, проверка. Разница в том, что в своём магазине нет чужих лимитов по длине и категориям, зато выше требования к уникальности текста. Задача решаемая, но это отдельный проект, а не настройка.
Те, что не помогают, мы переписываем — по этой кнопке и решаем, какие именно.
Ещё по теме
Что малому бизнесу от CRM реально нужно, чем готовая система отличается от своей внутри сайта и по каким признакам выбирать между ними.
тем, кто заказывает CRM купили, а работать в ней не стали: разбор причинШесть ошибок, из-за которых оплаченная CRM превращается в пустую базу, и что делать с каждой, пока подписка ещё действует.
тем, кто заказывает Freedom Gym: клубная система с абонементами и расписаниемИстория одного проекта: как из журнала на ресепшене выросла клубная система с абонементами, расписанием и правами тренеров, и что пошло не так.
тем, кто заказывает