Автозагрузка

Описание объявления в XML Avito: CDATA, переносы и что ломает фид

Тег Description в XML Avito выглядит безобидно: «просто текст объявления». На практике именно здесь фид чаще всего ломается — из‑за скобок, переносов, чужого HTML и секции CDATA, которую скопировали «как у соседа». Разберём, как площадка читает описание и что чинить, если карточка в отчёте красная, а на витрине текст слипся в одну простыню.

Что такое тег Description в автозагрузке

Description — обязательное текстовое поле объявления. В XML это не «комментарий для себя», а то, что покупатель читает под фото. По правилам автозагрузки строка не длиннее 7500 символов и должна соответствовать правилам площадки: без запрещёнки, без чужих контактов там, где их быть не должно, без противоречия цене и категории.

Автозагрузка не «догадывается», где у вас абзац. Она читает разметку. Если вы пишете описание в Excel и жмёте Enter внутри ячейки, это ещё не абзац на витрине. Если правите сырой XML в блокноте и вставляете сайт целиком — это уже не текст, а чужой код внутри тега.

Отдельно: в Description иногда кладут служебную строку вида «AvitoId: номер». Покупатель её не видит, это якорь для площадки. Не путайте её с рекламным текстом и не копируйте чужой номер из другого кабинета.

Зачем нужна секция CDATA

XML считает символы «меньше» и амперсанд служебными. Если в описании есть фраза «скидка < 10%» или «ООО «Ромашка» & Ко», без защиты парсер может решить, что начался новый тег, и обрезать файл. CDATA как раз говорит: «внутри этой секции текст, не разметка XML».

Выглядит это так: тег Description, внутри <![CDATA[ … ]]>, внутри уже ваш текст или разрешённый HTML. Закрывающая последовательность CDATA — строго ]]>. Если эти три символа встретятся в тексте объявления, секция оборвётся посередине, и фид станет невалидным.

Для вас как для человека это значит: не собирайте CDATA руками в Word. Пишите описание в редакторе, а генератор пусть оборачивает поле сам. В FeedCRM переносы из textarea превращаются в <br>, текст кладётся в CDATA, опасную последовательность ]]> экранируют. Вам не нужно помнить синтаксис — нужно не вставлять в описание сырой XML.

HTML в описании: какие теги вообще можно

Дополнительное форматирование через HTML Avito включает не «для любого файла», а для объявлений, которые соответствуют оплаченному тарифу. И даже тогда это не произвольная вёрстка лендинга. В документации автозагрузки белый список короткий: p, br, strong, em, ul, ol, li.

Нельзя тащить div, span, style, font, таблицу, картинку, iframe, ссылку с UTM и «красивый» HTML из Tilda. Площадка либо выкинет лишнее, либо упадёт строка, либо на витрине останется мусор. Списки — ul/ol и li. Абзацы — p. Жирный и курсив — strong и em. Перенос внутри абзаца — br.

Закрывайте теги. В чужих примерах часто висят незакрытые li — копировать такое нельзя. Кривой HTML внутри CDATA XML не всегда ломает, но карточку может показать криво: список слипнется, жирный «поедет» до конца текста.

  • Можно: p, br, strong, em, ul, ol, li
  • Нельзя: div, table, img, a, style, скрипты
  • HTML имеет смысл только внутри CDATA
  • Ориентир — шаблон категории, не чужой фид

Переносы строк: почему текст слипается

В обычном Description без HTML перевод строки в файле площадка часто превращает в br. Поэтому в простом текстовом фиде Enter ещё может дать абзац. Как только вы обернули поле в CDATA и начали пихать HTML, логика меняется: считаются теги, а не «как красиво было в Excel».

Типичная картина: в таблице три абзаца, в XML всё в одну строку без <p> и без <br> — на Avito простыня. Обратная картина: вставили HTML с десятком <br><br><br>, карточка дырявая, первые три экрана пустые. Для услуг лучше два-три коротких p: оффер, что входит, условия.

Если копируете из Google Docs или с сайта, вместе с текстом едут невидимые переносы, неразрывные пробелы и «умные» кавычки. В редакторе это выглядит нормально, в XML — сюрприз. Перед массовой выгрузкой откройте одну карточку на витрине после цикла автозагрузки, а не только превью в Excel.

Что ломает фид именно в Description

Первая группа — XML, а не смысл текста. Незакрытый тег Description, CDATA без ]]>, вложенная секция CDATA, кусок чужого <Ad> внутри описания. Файл перестаёт быть XML: не открывается в браузере, Avito пишет ошибку разбора, отчёт может ругать не «поле Description», а весь файл.

Вторая группа — содержимое, которое площадка не считает описанием. Телефон и ссылка на мессенджер, если правила категории просят общаться в чате. Цена в тексте, которая спорит с тегом Price. Другой город, чем в Address. Запрещённые формулировки. Тогда XML зелёный, а карточка на модерации.

Третья — длина и пустота. Пустой Description — отказ. Текст на 8000 знаков — обрезка или ошибка. Водяной копипаст на все города без фактов не ломает XML, но ломает отклик и повышает риск дубля, если карточки близнецы.

  • Сломанная CDATA валит файл целиком
  • Запрещённый HTML не делает объявление «ярче»
  • Контакты и чужой город — уже модерация
  • Лимит 7500 символов лучше не тестить вслепую

Символы <, & и последовательность ]]>

Внутри CDATA левую угловую скобку и амперсанд можно писать как есть: XML их не съест. Именно поэтому HTML-теги живут в CDATA, а не с кучей &lt;p&gt; вручную. Если CDATA нет, «<p>» парсер примет за начало тега — и фид развалится.

Исключение одно и злое: ]]> внутри текста. Если клиент вставил в описание фрагмент кода или вы копирнули кусок XML, секция закроется рано. Нормальный генератор режет эту последовательность на безопасные куски. Руками в блокноте это легко пропустить.

Кавычки «ёлочки», тире и буква ё XML не ломают. Ломают попытки «экранировать всё подряд»: &amp;lt;p&amp;gt; на витрине превращается в кашу. Либо простой текст, либо честный короткий HTML в CDATA — не гибрид из трёх экранирований.

Как не превратить описание в свалку разметки

Пишите так, как человеку в чате. Первые строки — что делаете и за сколько по смыслу, без дубля цифры из Price без пояснения. Дальше список «что входит» через ul/li, если тариф позволяет HTML. В конце — зона выезда, срок, ограничения. Не дублируйте заголовок слово в слово.

Не вставляйте в Description фото, прайс-таблицу на 40 строк и юридический договор. Таблица не из белого списка. Длинный договор никто не дочитает, а лимит символов вы сожжёте. Юридические условия — коротко: предоплата, выезд, что не входит.

Для сетки городов шаблон один, факты разные. CDATA не спасёт копипаст «работаем по Москве» в карточке Твери. Это уже не XML-ошибка, а модерация и недоверие покупателя. Разметка и смысл — разные слои: сначала честный текст, потом теги.

Где править, чтобы не сломать XML

Не открывайте боевой фид в блокноте «поправить один абзац». Пропустили слэш — лежат все объявления. Правите Description в таблице или в редакторе CRM. XML должен собираться заново по стабильной ссылке.

В FeedCRM описание живёт в карточке объявления. Сохранили — оно попадает в фид аккаунта с CDATA и переносами. Ссылка автозагрузки не меняется. После крупной правки дождитесь цикла Avito и откройте одну живую карточку: абзацы на месте, нет сырых тегов на витрине, нет обрыва текста.

Если отчёт ругает Description, скопируйте Id из отчёта, найдите строку в редакторе, уберите HTML не из списка, проверьте длину и служебные символы. Не «перезаливайте весь каталог новым файлом с компьютера» — так вы добавите вторую версию правды.

Короткий чеклист перед выгрузкой

Откройте URL фида в браузере: это должен быть XML, а не страница входа. Найдите один Description: есть ли CDATA, закрывается ли она, нет ли внутри второго <Description>. Сверьте, что переносы стали <br> или <p>, а не пропали.

Потом смотрите отчёт автозагрузки, не только витрину. Витрина отстаёт по расписанию. Если отчёт зелёный, а текст старый — вы смотрите другую карточку или другой кабинет. Если отчёт красный на Description — чините поле, а не ListingFee и не фото «на всякий случай».

  • Текст пишем в редакторе, CDATA не собираем руками
  • Только теги из белого списка Avito
  • Никакого ]]> и сырого XML в описании
  • После цикла — живая карточка и отчёт, не Excel

Частые вопросы

Обязательно ли оборачивать Description в CDATA?

Для простого текста без скобок часто хватает обычного тега. CDATA нужна, когда есть HTML, символы < и &, или вы не хотите, чтобы XML принял кусок текста за разметку. В постоянном фиде из CRM CDATA — нормальный безопасный режим.

Почему на Avito описание без абзацев, хотя в Excel они были?

Перенос в ячейке не всегда доезжает как абзац. В HTML-режиме нужны p или br. Проверьте, что генератор фида превращает Enter в теги, а вы не склеили всё в одну строку при копировании.

Можно ли вставить HTML с сайта компании в Description?

Нет, целиком нельзя. Avito принимает только p, br, strong, em, ul, ol, li и только в логике CDATA. Вёрстка лендинга сломает фид или выкинется.

Сколько символов можно в описании XML Avito?

До 7500. Это лимит поля, не «чем длиннее, тем лучше». Для услуг обычно хватает короткого фактажа. Сверх лимита автозагрузка поле не проглотит как надо.

В отчёте ошибка разбора файла, не поля. Это Description?

Часто да: незакрытая CDATA или < внутри текста без секции. Откройте фид в браузере — если XML не открывается, сначала чините разметку Description, не фото.

Нужно ли руками писать &lt; вместо < ?

Внутри CDATA — нет. Снаружи CDATA — да, иначе XML сломается. Проще не смешивать режимы и отдать генерацию CRM.

Следующий шаг

Пишите описание в редакторе, XML соберём сами

FeedCRM оборачивает Description в CDATA, ставит переносы и отдаёт стабильную ссылку фида в автозагрузку Avito.

Попробовать бесплатно

Тарифы

Прозрачно.
Без скрытых условий.

Все ключевые функции CRM доступны с первого дня. Выбирайте тариф по числу кабинетов и сотрудников — без урезанной функциональности.

СтартДля одного оператора
490 / месяц
3 аккаунта 1 владелец
Входит

3 кабинета AvitoПодключаются без доплаты

Все инструменты CRMОбъявления, чаты, воронка, аналитика

Telegram и автоответыЗаявки и ответы со всех Avito

7 дней полного доступаПосле привязки Telegram, без карты

Не входит

Сотрудники командыРоли и доступы — в своём тарифе или за 100 ₽

Сетка больше 3 аккаунтовКаждый следующий — 200 ₽/мес

Маршрутизация по менеджерамНужны места сотрудников

Попробовать бесплатно
МаксимальныйДля агентства и крупной сети
4 990 / месяц
50 аккаунтов 25 сотрудников
Входит

50 кабинетов AvitoПотолок сетки без доплаты за аккаунты

25 сотрудниковРоли, доступы и маршрутизация

Все инструменты CRMБез ограничений по функциям

Запас под агентствоНесколько команд в одном кабинете

Не входит

Места сверх 50 аккаунтовЖёсткий потолок сетки

Сотрудники сверх 25Каждый следующий — 100 ₽/мес, до 50

Выбрать тариф

Свой тариф

Соберите ёмкость
под вашу сетку.

За основу берём Старт — 490 ₽, 3 аккаунта, без сотрудников. Ползунками добавляете кабинеты и места команды. Доплата сразу видна в цене.

Кабинеты Avito 3
3 входят в Старт
Сотрудники 0
В Старте не входят
Итого в месяц 490

База Старта 490 ₽

Собрать и начать

Доплата сверх включённого: +200 ₽ за аккаунт · +100 ₽ за сотрудника. В кабинете ту же сборку можно сохранить как квоту.