Предпросмотр объявления
preview.py создаёт автономную HTML-страницу с сочетаниями заголовков и текстов, изображениями и миниатюрами видео. Можно проверить существующее объявление или подготовить вариант без записи в кабинет. Изображения по умолчанию загружаются и встраиваются в файл; готовая страница открывается без сети. Это предварительный вид для проверки содержания и состава; размещение в выдаче может отличаться.
Откуда взять объявление
Существующее комбинаторное или текстово-графическое объявление:
uv run scripts/preview.py matrix --ad 123 --account LOGIN --no-cache --out cache/preview-before--no-cache обновляет данные объявления. Читаются заголовки, тексты, изображения, миниатюры видео, быстрые ссылки, уточнения и цена PriceExtension. Команда сохраняет страницы в cache/preview-before/ad-123/; без --out используется каталог предпросмотров в кеше скилла.
Сохранённая JSON-выгрузка:
uv run scripts/preview.py matrix --from-json ads.json --ad 123 --out cache/preview-savedПоддерживаются исходная запись объявления, массив записей, ответ result.Ads, вывод ads.py с ad.raw или ads[].raw, а также файл карточки с ad. Если объявление одно, --ad можно опустить. API Директа при импорте не вызывается; связанные объекты используются из файла, недостающие явно перечисляются. Адреса изображений и миниатюр из выгрузки по умолчанию загружаются, поэтому для полностью автономной сборки добавь --no-images.
Ручной материал берётся из --brief либо из --title и --text. Чтобы видеть картинку, передай её адрес, а не только хеш:
uv run scripts/preview.py matrix --brief brief.json --image-url https://example.com/banner.jpg--image-url HTTPS_URL повторяется и заменяет изображения источника. --no-images отключает загрузку всех изображений и миниатюр, оставляя подписи; для визуальной проверки содержания этот режим неполон.
Сравнить до и после
Флаги --title, --text, --sitelink, --callout, --href, --display-url-path, --vcard, --price и параметры изображений заменяют соответствующие данные только в предпросмотре. Повторяемый флаг задаёт весь новый список. Сохраняй варианты в разные каталоги --out.
uv run scripts/preview.py pair --ad 123 --account LOGIN --pair 1x1 --text "Новый текст объявления" --out cache/preview-aftermatrix показывает все сочетания, pair --pair 3x1 — третий заголовок с первым текстом; --pair можно повторять. Оба режима принимают --ad, --from-json и ручной материал. --brief не совмещается с объявлением или выгрузкой.
Места показа
| Значение | Что показано |
|---|---|
search_desktop |
Поиск на компьютере: заголовок, текст, ссылка, быстрые ссылки с описаниями, уточнения, контакты |
search_mobile |
Поиск на телефоне: компактная карточка, быстрые ссылки строкой, мобильный предел уточнений |
network |
Сети: изображение, заголовок, текст, ссылка и дополнения |
product_gallery |
Товарная галерея: изображение, цена, заголовок и ссылка |
Актуальный список выводит preview.py placements; --placement выбирает формат и может повторяться. В галерее основной текст не показывается, поэтому одинаковые заголовки объединены в одну карточку; это подписано на странице.
В карточке используется первое доступное изображение. Все переданные изображения и миниатюры видео показаны отдельно в блоке «Медиакомплект», с идентификаторами и ошибками загрузки. Совпавшие файлы помечены как повторы. Одинаковые миниатюры не доказывают, что сами ролики одинаковы.
Что проверять на странице
Прочитайте всю матрицу «заголовок × текст»: любая пара должна понятно описывать предложение, без повторов, противоречий и незаконченных фраз. Предпросмотр одной пары удобен для исправления конкретного замечания.
При аудите содержания откройте HTML и визуально проверьте все изображения в медиакомплекте, включая надписи внутри них. Сверяйте предложение целиком: например, месяцы и сроки акции, цены, названия моделей. Первая картинка в карточке не заменяет проверку остальных. По каждому замечанию укажите ID объявления и изображения; ошибки загрузки и невоспроизведённые элементы перечислите как непроверенные.
Видео нужно просмотреть целиком, включая сменяющиеся надписи и звук, либо явно оставить непроверенным. Здесь показана только миниатюра. По одному кадру, текстовым полям или неполному набору материалов нельзя заключать, что устаревших сведений больше нет. Автоматического распознавания надписей и проверки видеороликов команда не выполняет.
Текст за допустимым пределом поля зачёркивается. Это означает, что значение требуется исправить: Директ отклоняет превышение лимита, а не сохраняет обрезанный вариант. Длины считаются теми же функциями и по тем же данным limits.json, что используются перед записью.
Заголовок считается с узкими символами; у текста объявления для узких символов действует отдельный предел. Решётки шаблона #…# не увеличивают длину. Замечания также относятся к быстрым ссылкам, уточнениям, отображаемой ссылке и количеству изображений. Сумма уточнений зависит от устройства.
Предпросмотр не задаёт искусственную границу видимого текста: настоящее обрезание зависит от площадки и ширины экрана. Переносы строк на странице могут отличаться от выдачи. Если отображаемая ссылка не задана, подстановка заголовка показывается с отдельным пояснением.
Материалы и ограничения
- Пустой блок означает «не передано или не загружено», а не «отсутствует в кабинете». Проверьте замечания на странице: визитка, организация
BusinessId, телефон, карусель и кнопка могут быть связаны с объявлением, но не воспроизведены. Дополнительный заголовок старогоTextAdтакже указан отдельно, если его нет в макете. Если Директ прислал дополнительные структуры объявления, они перечисляются в замечаниях; миниатюры их креативов включаются в медиакомплект. - Из объявления берутся адреса
ImageUrlи миниатюрыThumbnailUrl; при необходимости API дочитывает сведения об изображениях и креативах. Если адрес недоступен или загрузка не удалась, остаётся подпись с причиной. Один хеш из ручного материала не позволяет показать изображение. - Загружаются PNG, JPEG, GIF и WebP с публичных HTTPS-сайтов: до 10 МБ на файл и до 50 МБ на сборку. Локальные адреса, SVG и HTML не принимаются.
- Цена берётся из объявления либо из введённого значения; соответствие фиду и странице товара нужно проверить отдельно.
- Шаблоны
#…#отображаются как записаны. Подстановки фраз проверяются командойads_generate.py checkи описаны в TEMPLATES.md. - Суммарный предел длин быстрых ссылок, который Директ отдаёт через
Dictionaries.get → Constants, без загруженного справочника неизвестен. Допустимость каждой ссылки по отдельности не гарантирует допустимость всего набора. - Страница не выносит решение модерации и не проверяет все требования к содержанию: см. AD_CONTENT.md.
Темы: автоматическая по настройке системы, --theme light и --theme dark. Оформление находится в page.html.
Для просмотра настоящего размещения используйте «Нацелиться на объявление» в кабинете, когда объявление прошло модерацию и кампания работает.