Большинство статей об XML-фидах исходят из того, что вы продаёте футболки.
Десять лет назад это предположение имело смысл: тогда «товарный фид» означал файл для Google Shopping и ничего больше. Сегодня это уже не так. Автосалон, сайт вакансий, гостиничная сеть, портал недвижимости и беттинг-платформа — все они сегодня запускают рекламу на основе фидов, и ни один из них не передаёт size или gtin. Они передают VIN, коды IATA, количество спален, типы занятости и время начала матчей.
Базовые механизмы одинаковы. Параметры — нет.
Это руководство охватывает и то и другое: структурные правила, которые действуют для любого XML-фида независимо от отрасли, и конкретные наборы атрибутов для каждого из основных типов фидов — розница, локальные остатки, автомобили, туризм, недвижимость, вакансии и ограниченный по времени ассортимент, такой как матчи, мероприятия и киносеансы. Для каждого — рабочий XML.
1. Что такое XML-фид на самом деле
XML-фид — это структурированный файл, описывающий ассортимент так, чтобы машины могли его обрабатывать без интерпретации человеком. Платформа загружает файл по расписанию, разбирает его и создаёт на основе найденного товарные предложения, объявления или результаты поиска.
Формат важен меньше, чем думает большинство людей. Важен контракт: каждая площадка публикует спецификацию, в которой указано, какие поля обязательны, какие значения допустимы и как платформа поведёт себя, если они неверны. Фид — это ваша сторона этого контракта.
Из этого следуют два вывода, и именно поэтому работать с фидами сложнее, чем кажется:
Контракт свой для каждой площадки. Спецификация товаров Google, спецификация каталога Meta и XML вакансий Indeed почти не имеют общих названий полей. Один исходный каталог приходится преобразовывать по-разному для каждой из них.
Нарушения в основном проходят незаметно. Некорректное поле редко ломает весь файл. Оно приводит к отклонению одной позиции, понижению одного предложения или выпадению одного атрибута из объявления — и ничто в панели вашей кампании об этом не сообщает.
2. Анатомия файла
Большинство рекламных XML-фидов используют RSS 2.0 с расширением пространства имён. Структура всегда состоит из одних и тех же трёх уровней:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Example Store — Product Feed</title>
<link>https://example.com</link>
<description>Full catalogue, updated hourly</description>
<item>
<!-- one inventory item -->
</item>
</channel>
</rss>
- XML-объявление задаёт кодировку. На практике это должна быть
UTF-8; любая другая кодировка искажает символы в неанглоязычных каталогах и является самой частой причиной испорченных названий товаров на турецком, немецком и чешском языках. - Объявление пространства имён (
xmlns:g="...") делает допустимым элемент<g:price>. Если его опустить, все элементы с префиксом незаметно игнорируются — фид разбирается, но почти ничего не импортируется. <channel>содержит метаданные уровня фида.<item>— одна единица ассортимента. Что считать «одной единицей» — это решение, а не данность: один SKU, один вариант, один автомобиль, одна вакансия, один отель, один матч.
Не во всех отраслях используется такая структура. Фиды вакансий используют <source><job>, а некоторые маркетплейсы полностью определяют собственные корневые элементы. Но трёхуровневая логика — документ, контейнер, повторяющаяся позиция — сохраняется в любом случае.
3. Универсальное ядро
Семь параметров встречаются практически в каждой когда-либо написанной спецификации фидов, хотя и под разными названиями. Если вы понимаете их, вы сможете прочитать любую спецификацию.
| Понятие | Google Shopping | Каталог Meta | Вакансии Indeed | Назначение |
|---|---|---|---|---|
| Уникальный ID | id | id / vehicle_id / home_listing_id | referencenumber | Идентичность между синхронизациями |
| Название | title | title / name | title | Что это |
| Подробности | description | description | description | Почему это важно |
| Целевой URL | link | url | url | Где происходит конверсия |
| Изображение | image_link | image[0].url | — | Как это выглядит |
| Цена | price | price | salary | Сколько это стоит |
| Состояние | availability | availability | (наличие в фиде) | Активно ли предложение |
Три правила об идентификаторе действуют повсеместно и наносят больше вреда, чем любое другое отдельное поле:
- Он должен быть стабильным. Если ваш ID генерируется заново при экспорте — на основе порядка строк, временной метки, хеша меняющегося содержимого, — каждая синхронизация уничтожает накопленную историю эффективности позиции, и она начинает с нуля.
- Он должен быть уникальным. Дублирующиеся ID приводят к тому, что последующие строки отбрасываются без сообщения об ошибке. Позиции просто пропадают.
- Он должен совпадать с тем, что отправляет ваш пиксель или тег. Сопоставление каталога Meta, динамический ремаркетинг Google и любые продукты ретаргетинга зависят от того, совпадают ли ID в фиде и ID в событии на сайте. Это самая частая причина того, что динамический ретаргетинг «не работает».
4. Параметры для розницы и электронной коммерции
Это самая подробно задокументированная спецификация и основа, которую заимствуют большинство других отраслей.
Обязательные
| Атрибут | Примечания |
|---|---|
id | До 50 символов. Стабильный, уникальный, совпадает с событиями пикселя. |
title | До 150 символов. Ставьте в начало бренд и слова, которые люди действительно ищут. |
description | До 5000 символов. Простой текст; без рекламных призывов и HTML. |
link | Страница товара, а не категория или результаты поиска. Должна быть доступна для обхода краулером. |
image_link | Основное изображение. Минимум 500x500 согласно спецификации 2026 года (см. ниже). |
availability | in_stock, out_of_stock, preorder, backorder. |
price | Значение плюс код валюты ISO: 899.90 TRY. Должна в точности совпадать с ценой на целевой странице. |
Идентификаторы
brand, gtin, mpn и identifier_exists. GTIN — это поле, от которого зависит, будет ли ваш товар сопоставлен с графом знаний о товарах Google, а значит, появится ли он вообще в сравнительных и ИИ-разделах покупок. На практике оно не является необязательным, что бы ни говорила спецификация.
Варианты
item_group_id, item_group_title, color, size, size_type, size_system, material, pattern, gender, age_group.
Варианты — отдельная тема; если коротко, item_group_id должен быть одинаковым внутри группы и формироваться из стабильных исходных данных, а gender и age_group постоянны для группы, тогда как color и size — нет.
Категоризация
google_product_category (таксономия Google, ID или полный путь), product_type (ваша собственная таксономия — именно это поле делает возможной структуру кампаний, и оно заполняется в свободной форме, так что используйте его).
Коммерческие атрибуты
sale_price, sale_price_effective_date, unit_pricing_measure, unit_pricing_base_measure, installment, subscription_cost, loyalty_program.
Логистика
shipping, shipping_weight, shipping_length / _width / _height, shipping_label, transit_time_label, min_handling_time, max_handling_time, tax.
Управление кампаниями
excluded_destination, included_destination, ads_redirect, с custom_label_0 по custom_label_4.
Пять пользовательских меток — самые недооценённые поля во всей спецификации. Для Google они не несут никакого смысла — они существуют исключительно для того, чтобы вы могли сегментировать товары. Диапазоны маржи, глубина остатков, сезонность, возраст товара, уровень эффективности по данным GA4. Если структура ваших кампаний не может выразить какое-то бизнес-правило, причина обычно в этом.
Медиа
additional_image_link, lifestyle_image_link, virtual_model_link, video_link.
Минимальная, но полная позиция для розницы
<item>
<g:id>KRC-4210-BLK</g:id>
<g:title>Karaca Fine Pearl 6-Person Dinner Set — Black</g:title>
<g:description>26-piece porcelain dinner set for six. Dishwasher and microwave safe.</g:description>
<g:link>https://example.com/urun/fine-pearl-6-kisilik</g:link>
<g:image_link>https://cdn.example.com/krc-4210-blk-01.jpg</g:image_link>
<g:additional_image_link>https://cdn.example.com/krc-4210-blk-02.jpg</g:additional_image_link>
<g:video_link>https://cdn.example.com/video/krc-4210.mp4</g:video_link>
<g:availability>in_stock</g:availability>
<g:price>4299.00 TRY</g:price>
<g:sale_price>3499.00 TRY</g:sale_price>
<g:sale_price_effective_date>2026-11-24T00:00+0300/2026-12-01T23:59+0300</g:sale_price_effective_date>
<g:brand>Karaca</g:brand>
<g:gtin>8680150042109</g:gtin>
<g:condition>new</g:condition>
<g:google_product_category>672</g:google_product_category>
<g:product_type>Home & Kitchen > Dinnerware > Dinner Sets</g:product_type>
<g:custom_label_0>high-margin</g:custom_label_0>
<g:custom_label_1>bf-2026</g:custom_label_1>
</item>
Обратите внимание на & и > в product_type. Неэкранированные символы & в URL и путях категорий — самая частая причина того, что XML-файлы вообще не удаётся разобрать.
5. Что изменилось в 2026 году
На три изменения в спецификации данных о товарах Google стоит отреагировать уже сейчас, а не в последний момент.
Минимальное разрешение изображений теперь составляет 500x500 пикселей для image_link и additional_image_link во всех категориях и для всех способов продвижения. Предупреждения начали появляться в Merchant Center в апреле 2026 года; обязательное применение начинается 31 января 2027 года. Google может автоматически увеличивать некоторые небольшие изображения, но считать это решением — ошибка: увеличенные изображения выглядят увеличенными, а качество изображения влияет на кликабельность.
video_link работает и показывается. Видео, переданные через этот атрибут, получили право на показ с 30 июня 2026 года с проверкой на соответствие правилам и качеству. Ошибки блокируют видео, но не само предложение, поэтому заполнение этого поля сопряжено с низким риском. В большинстве каталогов для большинства SKU нет видео товара — именно поэтому массовое создание видео на основе данных фида сейчас стало конкурентным преимуществом, а не приятным дополнением.
Расширены настройки доставки на уровне товара. handling_cutoff_time задаёт ежедневный крайний срок обработки заказов, а minimum_order_value указывает минимальную сумму заказа для доставки. Атрибут shipping также получил податрибуты loyalty_program_label и loyalty_tier_label для преимуществ доставки, связанных с программами лояльности.
Направление движения неизменно: Google продолжает переносить детали, которые раньше задавались на уровне аккаунта, на уровень отдельной позиции. Всё, что задаётся для каждой позиции, можно автоматизировать на уровне фида, но нельзя поддерживать вручную.
6. Карта отраслей
Розница — лишь одна строка этой таблицы, а не вся таблица.
| Отрасль | Площадка Google | Тип каталога Meta | Другие распространённые каналы |
|---|---|---|---|
| Розница / электронная коммерция | Торговая реклама, бесплатные товарные предложения | Товары (электронная коммерция) | Маркетплейсы, сервисы сравнения цен, партнёрские сети |
| Офлайн-розница | Реклама местного ассортимента | Товары с локальным наличием | Платформы локального поиска |
| Автомобили | Реклама автомобилей, объявления об автомобилях | Автомобили / предложения автомобилей | Порталы объявлений, автомобильные маркетплейсы |
| Отели и размещение | Hotel ads (Hotel Center) | Отели | OTA, метапоисковики |
| Авиаперелёты | Google Flights | Авиарейсы | Метапоисковики |
| Направления и турпакеты | — | Направления | Туристические партнёрские программы |
| Недвижимость | — | Объявления о недвижимости | Порталы недвижимости, агрегаторы недвижимости |
| Подбор персонала | Структурированные данные вакансий (JobPosting) | — | Сайты вакансий, распространение через ATS, агрегаторы вакансий |
| Мероприятия, матчи, киносеансы | Товары (смоделированные) | Товары (смоделированные) | Билетные платформы, DSP |
Два структурных правила стоит усвоить до того, как вы начнёте что-либо создавать:
Каталог Meta содержит ровно один тип ассортимента. Нельзя смешивать отели и товары. Если вы продаёте и то и другое, вам нужно два каталога.
Google разделяет отрасли на уровне источника данных. Источник данных об автомобилях должен быть нацелен только на рекламу автомобилей. Передача автомобилей в источник данных Shopping приводит к отклонениям, а не к публикации, — а источники данных об автомобилях не должны содержать запчасти или аксессуары, которым место в обычном товарном фиде.
7. Фиды автомобилей
Автомобильная отрасль — та сфера, где подход «просто используйте спецификацию для розницы» терпит неудачу наиболее очевидно. Автомобиль — это уникальный физический объект с юридическим идентификатором, а не SKU с глубиной остатков.
Атрибуты автомобилей Google добавляются поверх общего ядра:
| Атрибут | Примечания |
|---|---|
vin | Юридическая идентичность автомобиля. Некорректные VIN и несоответствия VIN и года выпуска — самая частая причина отклонения. |
year, model, trim | Комплектация — это то, что отличает предложение от конкурентов с той же моделью. |
body_style | Значение из перечня. |
mileage | Значение плюс единица измерения (miles или km). Должен совпадать с целевой страницей. Значения за пределами правдоподобного диапазона для года выпуска помечаются. |
condition | Новый, подержанный, сертифицированный подержанный. |
certified_pre-owned | Отдельный флаг. |
engine, fuel_consumption, energy_consumption, co2_emissions, emissions_standard | Всё более актуальны на рынках ЕС. |
electric_range, fuel_consumption_discharged_battery | Специфичны для электромобилей и гибридов. |
date_first_registered | Месяц и год первой регистрации. |
vehicle_msrp, vehicle_price_type | Прейскурантная цена или цена предложения. |
vehicle_fulfillment | Находится ли автомобиль в салоне, может ли быть перемещён или доставлен. Групповой атрибут с податрибутом store_code. |
store_code | Какая физическая точка располагает автомобилем. |
<item>
<g:id>STK-88214</g:id>
<g:title>2023 Volkswagen Passat 1.5 TSI Business DSG</g:title>
<g:description>Single owner, full service history, no accident record.</g:description>
<g:link>https://example.com/ilan/88214</g:link>
<g:image_link>https://cdn.example.com/88214-01.jpg</g:image_link>
<g:price>1450000.00 TRY</g:price>
<g:condition>used</g:condition>
<g:brand>Volkswagen</g:brand>
<g:model>Passat</g:model>
<g:trim>1.5 TSI Business DSG</g:trim>
<g:year>2023</g:year>
<g:vin>WVWZZZ3CZPE000000</g:vin>
<g:mileage>
<g:value>42500</g:value>
<g:unit>km</g:unit>
</g:mileage>
<g:body_style>sedan</g:body_style>
<g:color>Grey</g:color>
<g:vehicle_fulfillment>
<g:option>in_store</g:option>
<g:store_code>IST-01</g:store_code>
</g:vehicle_fulfillment>
</item>
Чем фиды автомобилей отличаются в операционном плане:
- Каждая позиция существует в единственном экземпляре. Каждый автомобиль — это одна единица. Когда он продан, он должен немедленно исчезнуть из фида, а не при завтрашней синхронизации. Устаревшие объявления об автомобилях тратят дорогие клики на машины, которых больше нет, и ухудшают качество аккаунта.
- Частота обновления решает всё. Цикл обновления каждые четыре часа — стандартная практика в автомобильной отрасли, а не оптимизация.
- Соответствие целевой странице строго проверяется. Цена и пробег в фиде должны в точности совпадать со страницей автомобиля. Изменение цен по всему дилерскому центру, которое обновило сайт, но не фид, в течение нескольких часов вызывает волну отклонений.
- Реклама автомобильного ассортимента Meta использует отдельный набор полей —
state_of_vehicle,exterior_color,transmission,drivetrain,dealer_id, — поэтому одни и те же исходные данные нужно по-разному преобразовывать для каждого канала.
8. Туристические фиды
Туризм делится на три разных типа каталогов, и ошибка — рассматривать их как один.
Отели
Фид объектов размещения сравнительно статичен: название, описание, адрес, координаты, звёздность, изображения, начальная цена. Меняются наличие и тарифы, поэтому настройки для отелей обычно сочетают статичный фид объектов с динамическими фидами типов номеров и цен.
Основные параметры: hotel_id, name, description, brand, url, image, latitude, longitude, address (с city, region, country, postal_code), base_price, currency, star_rating, neighborhood, phone, guest_ratings.
<item>
<g:hotel_id>HTL-BDR-114</g:hotel_id>
<g:name>Blue Bay Resort Bodrum</g:name>
<g:description>Seafront resort with private beach, three restaurants and a spa.</g:description>
<g:url>https://example.com/otel/blue-bay-bodrum</g:url>
<g:image>https://cdn.example.com/htl-114-01.jpg</g:image>
<g:latitude>37.0344</g:latitude>
<g:longitude>27.4305</g:longitude>
<g:address>Yalıkavak Mah. Sahil Cad. 12, Bodrum, Muğla, TR, 48990</g:address>
<g:base_price>4200.00 TRY</g:base_price>
<g:star_rating>5</g:star_rating>
<g:neighborhood>Yalıkavak</g:neighborhood>
</item>
Авиаперелёты
Позиция — это маршрут, а не место в самолёте. Идентичность задаётся парой «пункт отправления — пункт назначения»: origin_airport и destination_airport в виде кодов IATA, а также price, url, image, description. Цены обычно указываются как цены «от» и постоянно меняются, поэтому главным ограничением становится частота обновления.
Направления
Позиция — это место, куда вы продаёте поездки: destination_id, name, address, neighborhood, types, price, url, image. Полезно для привлечения новой аудитории на верхних этапах воронки, когда у путешественника есть намерение, но нет конкретного объекта на примете.
Постоянная проблема туристических фидов в том, что цена и наличие вычисляются, а не хранятся. «Цена» отеля зависит от дат, количества гостей и продолжительности проживания; цена авиабилета — от момента запроса. Фидам нужно одно число. Выбор того, какое именно число указать — минимальное доступное в ближайшие 30 дней, минимальное на ближайшие выходные, среднее, — это коммерческое решение, которое незаметно определяет эффективность вашей рекламы, и его стоит принимать осознанно, а не довольствоваться тем, что выдал экспорт.
9. Фиды недвижимости
По структуре они похожи на фиды автомобилей: уникальные физические активы, каждый объект в единственном экземпляре, высокая стоимость клика и объявление, которое должно исчезнуть, как только объект занят.
Основные параметры: home_listing_id, name, description, address, latitude, longitude, url, image, price, currency, property_type (квартира, дом, земельный участок, коммерческая недвижимость), listing_type (продажа, аренда, новостройка), num_beds, num_baths, area_size, area_unit, year_built, availability, agent_name, agent_phone.
<item>
<g:home_listing_id>EMK-2291</g:home_listing_id>
<g:name>3+1 Apartment with Sea View — Kadıköy</g:name>
<g:description>Renovated 3+1 apartment, 4th floor, elevator, closed parking.</g:description>
<g:address>Caferağa Mah., Kadıköy, İstanbul, TR</g:address>
<g:latitude>40.9862</g:latitude>
<g:longitude>29.0299</g:longitude>
<g:url>https://example.com/ilan/2291</g:url>
<g:image>https://cdn.example.com/emk-2291-01.jpg</g:image>
<g:price>12500000.00 TRY</g:price>
<g:property_type>apartment</g:property_type>
<g:listing_type>for_sale</g:listing_type>
<g:num_beds>3</g:num_beds>
<g:num_baths>2</g:num_baths>
<g:area_size>135</g:area_size>
<g:area_unit>sq_m</g:area_unit>
<g:availability>available</g:availability>
</item>
Одна вещь, которая не является проблемой фида, но остановит вашу кампанию: жильё — это ограниченная рекламная категория в Meta. Кампании, продвигающие объявления о недвижимости, должны быть отнесены к специальной рекламной категории жилья, что ограничивает варианты таргетинга. Каталог может быть идеальным, но кампания всё равно не запустится, если эта настройка не задана.
10. Фиды вакансий
В подборе персонала используется совершенно другая структура документа — <source> и <job> вместо <rss> и <item>, — и на неё стоит взглянуть, потому что она показывает, что «XML-фид» — это шаблон, а не единая схема.
<?xml version="1.0" encoding="UTF-8"?>
<source>
<publisher>Example Company</publisher>
<publisherurl>https://example.com</publisherurl>
<lastBuildDate>Wed, 12 Aug 2026 09:00:00 GMT</lastBuildDate>
<job>
<title><![CDATA[Senior Backend Engineer]]></title>
<date><![CDATA[Mon, 10 Aug 2026 08:00:00 GMT]]></date>
<referencenumber><![CDATA[ENG-4471]]></referencenumber>
<url><![CDATA[https://example.com/careers/eng-4471]]></url>
<company><![CDATA[Example Company]]></company>
<city><![CDATA[İstanbul]]></city>
<state><![CDATA[İstanbul]]></state>
<country><![CDATA[TR]]></country>
<postalcode><![CDATA[34394]]></postalcode>
<description><![CDATA[<p>We are hiring a senior backend engineer to work on our data pipeline...</p>]]></description>
<salary><![CDATA[120000 - 160000 TRY monthly]]></salary>
<jobtype><![CDATA[fulltime]]></jobtype>
<category><![CDATA[Engineering]]></category>
<experience><![CDATA[5+ years]]></experience>
</job>
</source>
Четыре правила, специфичных для фидов вакансий:
CDATA— это норма, а не исключение. Описания вакансий содержат HTML, амперсанды и апострофы. Заключение каждого поля в<![CDATA[...]]>позволяет избежать целого класса ошибок разбора.- Для местоположения нужны как минимум город, регион и страна. Если их опустить, вакансия по умолчанию теряет органическую видимость на крупных агрегаторах.
- Закрытые вакансии нужно удалять, а не помечать как закрытые. Аналога
availabilityнет. Само присутствие в фиде и есть сигнал доступности, а агрегаторы пессимизируют фиды с устаревшими вакансиями. - Один язык — одна запись вакансии. Вакансия, опубликованная на двух языках, требует двух отдельных записей с разными референсными номерами.
Отдельно от фида структурированные данные JobPosting в формате JSON-LD на странице карьеры позволяют вакансии попадать в списки вакансий в результатах поиска. Они дополняют друг друга: фид отвечает за распространение по агрегаторам, а структурированные данные — за органический поиск. Большинство команд по подбору персонала делают что-то одно, но не другое.
11. Ассортимент, ограниченный по времени
Самая интересная категория фидов не имеет официальной спецификации, потому что платформы её не предусмотрели: это ассортимент, определяющим атрибутом которого является когда, а не что.
Футбольные матчи. Концерты. Киносеансы. Вылеты рейсов. Лоты аукционов. Слоты бронирования в ресторанах. Окна доставки.
У всего этого есть все свойства товаров — идентичность, цена, изображение, целевая страница — плюс одно, для которого в спецификации розницы нет поля: срок годности, измеряемый часами. Матч, который уже начался, — это не «нет в наличии», он просто теряет смысл.
Работающий подход — моделировать такие позиции как стандартные товары каталога и кодировать временное измерение в полях, которые платформа уже понимает:
<item>
<g:id>MTC-2026-08-16-GS-FB</g:id>
<g:title>Galatasaray - Fenerbahçe | Super League, Week 2</g:title>
<g:description>Saturday 16 August, 19:00. Live odds and in-play betting.</g:description>
<g:link>https://example.com/mac/2026-08-16-gs-fb</g:link>
<g:image_link>https://cdn.example.com/creatives/mtc-2026-08-16-gs-fb.jpg</g:image_link>
<g:availability>in_stock</g:availability>
<g:price>1.00 TRY</g:price>
<g:product_type>Football > Super League > Week 2</g:product_type>
<g:custom_label_0>2026-08-16</g:custom_label_0>
<g:custom_label_1>derby</g:custom_label_1>
<g:custom_label_2>ms1-2.10</g:custom_label_2>
<g:expiration_date>2026-08-16T19:00+0300</g:expiration_date>
</item>
Работоспособность обеспечивают три вещи:
expiration_dateили эквивалентное правило удаления, чтобы позиция исчезала из каталога в момент начала матча, а не при следующей плановой синхронизации.- Пользовательские метки, содержащие временное измерение, чтобы кампании можно было выстраивать вокруг «этих выходных», «дерби» или «коэффициентов выше 2.0».
- Отдельный креатив для каждой позиции. Именно здесь этот подход обычно буксует. Для расписания из нескольких сотен матчей в неделю нужны несколько сотен изображений, на каждом из которых указаны команды, дата, время и текущие коэффициенты. Ни одна команда дизайнеров не справится с таким объёмом. Создание креатива на основе строки фида — единственный способ успевать, и именно так Bilyoner впервые запустила каталожную рекламу и повысила ROAS на 49%.
Если у вашего ассортимента есть время начала, ему место в каталоге. Препятствием почти всегда является формат, а не концепция.
12. Фиды локальных остатков
Локальные остатки находятся между розницей и отраслевыми фидами: те же товары, описанные для каждой физической точки.
Параметры: id, store_code, quantity, price, sale_price, sale_price_effective_date, availability, pickup_method (покупка, резерв, доставка в магазин, не поддерживается), pickup_sla (в тот же день, на следующий день, через несколько дней).
Структурная особенность в том, что локальный фид — это дополнение, а не замена. Он ссылается на позиции основного товарного фида по id и добавляет сведения по каждому магазину. Одна позиция, много магазинов, много строк.
Стоит отметить изменение 2026 года: онлайн- и офлайн-версиям одного и того же товара с разными ценами или наличием теперь нужны отдельные идентификаторы товаров, а не один общий. Фиды, в которых они были объединены, теперь должны их разделить.
13. Правила форматирования
Они применяются ко всем типам фидов в этой статье и вместе объясняют подавляющее большинство фидов, которые не проходят полностью.
Кодировка. Всегда UTF-8, объявленная в XML-объявлении и передаваемая с соответствующим заголовком Content-Type. Несоответствие между объявленной и фактической кодировкой искажает каждый символ за пределами ASCII.
Экранирование. В содержимом XML необходимо экранировать пять символов: & → &, < → <, > → >, " → ", ' → '. Неэкранированные амперсанды в URL с метками отслеживания — причина номер один, по которой фиды не удаётся разобрать. Альтернатива — CDATA, стандартная практика в фидах вакансий, полезная везде, где описания содержат разметку.
Даты. ISO 8601 с явным смещением часового пояса. 2026-08-16T19:00+0300, а не 16.08.2026 19:00. Фиды, обслуживающие несколько рынков из одного источника без учёта часовых поясов, создают позиции, срок действия которых истекает на несколько часов раньше или позже.
Цены. Значение и валюта по ISO 4217, десятичная точка, а не запятая, без разделителя тысяч. 4299.00 TRY. Кроме того, цена в фиде должна совпадать с ценой на целевой странице — на большинстве платформ это проверяется при обходе краулером.
Значения из перечней чувствительны к регистру и формату и различаются в зависимости от платформы. Google ожидает in_stock, а Meta — in stock. Одно только это различие сломало больше импортов каталогов, чем любое другое. Никогда не предполагайте, что значение перечня переносится между площадками без изменений.
Передача файла. Сжатие Gzip для больших файлов, стабильный HTTPS-URL, отсутствие защиты аутентификацией, если платформа явно её не поддерживает, и сервер, отвечающий в пределах тайм-аута платформы. URL фида за защитой Cloudflare от ботов — это URL фида, который не будет загружен.
Частота обновления должна определяться изменчивостью исходных данных, а не традицией: ежечасно или чаще для коэффициентов, цен на авиабилеты и быстро меняющихся остатков в рознице; каждые несколько часов для автомобилей и недвижимости; ежедневно для стабильных каталогов.
14. XML, CSV, JSON или API
| Формат | Лучше всего подходит для | На что обратить внимание |
|---|---|---|
| XML | Вложенных и повторяющихся структур — доставки по регионам, нескольких изображений, групповых атрибутов | Многословность; ошибки экранирования ломают весь файл |
| CSV | Простых плоских каталогов, быстрых ручных правок | Запятые внутри названий и описаний; ошибки с кавычками |
| TSV | Того же, но надёжнее | Почти ни на что — табуляция редко встречается в данных о товарах |
| JSON | Современных API, конвейеров, созданных разработчиками | Принимается не всеми площадками |
| API | Обновлений в реальном времени, очень больших каталогов, частичных обновлений | Затраты на разработку; лимиты запросов |
XML остаётся стандартом для всего, что имеет вложенность, поэтому фиды автомобилей, туризма и розницы со сложной доставкой, как правило, делают в XML, тогда как простые каталоги одежды часто передаются в TSV. Учтите также, что ряд крупных площадок переходит к приёму данных в первую очередь через API, поэтому считать файл единственным путём интеграции — среднесрочный риск.
Если ваши названия содержат запятые — а названия с цветом и размером почти всегда их содержат, — используйте TSV вместо CSV. Целый класс ошибок разбора исчезнет.
15. Чек-лист перед запуском
- [ ] Файл проходит проверку XML-валидатором до того, как попадёт на какую-либо платформу
- [ ]
UTF-8объявлена и передаётся правильно; символы за пределами ASCII отображаются корректно - [ ] Каждый
&в каждом URL экранирован или поле заключено вCDATA - [ ] ID уникальны, стабильны между синхронизациями и совпадают с событиями вашего пикселя или тега
- [ ] Все обязательные атрибуты для целевой площадки присутствуют — проверено по спецификации именно этой площадки, а не по общей
- [ ] Значения перечней преобразованы для каждой площадки, а не скопированы
- [ ] Цены в точности совпадают с целевыми страницами, включая валюту и учёт налогов
- [ ] Даты в формате ISO 8601 со смещением часового пояса
- [ ] Изображения соответствуют минимуму 500x500 и открываются по HTTPS без перенаправлений
- [ ] Проданные, закрытые, истёкшие или отправившиеся позиции удаляются из фида в нужное время
- [ ] Частота обновления соответствует тому, как быстро на самом деле меняются исходные данные
- [ ] URL фида общедоступен и не блокируется защитой от ботов
- [ ] Настроено правило мониторинга неожиданных изменений количества позиций
16. Часто задаваемые вопросы
Подходит ли XML в 2026 году?
Для всего, что содержит вложенные данные, — да. Для плоских каталогов TSV проще и надёжнее. Для требований реального времени интеграция через API лучше любого файла. Формат должен определяться данными, а не привычкой.
Можно ли использовать один фид для всех платформ?
Один источник — да. Один файл — нет. Названия полей, значения перечней, ограничения по количеству символов и обязательные атрибуты различаются в зависимости от площадки, и эти различия не косметические. Работающая архитектура — единый канонический каталог с преобразованиями для каждого канала, применяемыми при экспорте.
Что, если мой ассортимент — не товары?
Тогда вам нужна спецификация для вашей отрасли, а не для розницы. У автомобилей, отелей, авиаперелётов, направлений, недвижимости и вакансий есть свои спецификации. А если ваш ассортимент — это то, для чего ни у одной платформы нет спецификации, — матчи, сеансы, слоты, лоты, — вы моделируете его как товары и кодируете недостающее измерение в существующих полях.
Как часто должен обновляться фид?
Так часто, как существенно меняются исходные данные. Автомобиль, проданный утром и всё ещё рекламируемый днём, тратит деньги впустую.
Нужны ли мне GTIN?
Для розницы — фактически да. GTIN связывает вашу позицию с базой знаний платформы о товарах, от которой всё больше зависит, появитесь ли вы вообще в сравнительных разделах и в результатах покупок на основе ИИ. Для автомобилей, недвижимости и вакансий эквивалентными полями идентичности являются vin, ID объявления и референсный номер.
Где начинаются сложности
Ни одно из отдельных правил в этой статье не является сложным. Сложность в том, что их несколько сотен, они различаются для каждой площадки, меняются без предупреждения, а их нарушение проходит незаметно.
Один каталог, экспортируемый в Google, Meta, TikTok и на три маркетплейса, — это шесть разных контрактов, которые одновременно выполняются из одного источника достоверных данных. Делать это вручную означает поддерживать шесть файлов и согласовывать их при каждом изменении каталога.
Именно для этого уровня создан Feedance: правила фида для нормализации атрибутов в источнике, экспорт в каналы, который применяет правильное преобразование для каждой из более чем 200 площадок, не затрагивая исходные данные, Feed Protection для выявления отсутствующих атрибутов и неожиданных изменений количества позиций раньше, чем это сделает платформа, и Creative Suite, который создаёт изображение или видео для каждой строки фида в каталогах, где ручное производство никогда не было реалистичным.
Он поддерживает нерозничные отрасли как полноценные направления, а не как второстепенные: ассортимент для туризма с актуальными ценами, каталоги для беттинга с данными о времени матчей, а также каналы распространения для автомобилей, недвижимости и вакансий.
Если вы хотите узнать, в каком состоянии ваш текущий фид, прежде чем что-либо менять, наш бесплатный инструмент аудита фидов бесплатно оценит его полноту, качество данных и техническое состояние. Или запишитесь на 15-минутную демонстрацию, и мы посмотрим на него вместе.
Последняя проверка: август 2026 года. Спецификации платформ часто меняются; перед внедрением сверяйте актуальные требования с официальной документацией каждой площадки.

Сооснователь Feedance, использующий свой опыт инженера-программиста и маркетолога для получения аналитических инсайтов. Уделяя особое внимание превращению данных в практические стратегии, он помогает брендам добиваться значительного роста в цифровой среде.
LinkedIn
















