Генерация фида товаров для Google Merchant Center

Ошибки в фиде товаров приводят к отклонению позиций и потере трафика в Shopping-рекламе. Мы разрабатываем генераторы фидов для Google Merchant Center, которые автоматически формируют и обновляют данные в требуемом формате. Наша команда реализует проект под ключ — от настройки маппинга до последующей поддержки, обеспечивая стабильную работу вашего каталога.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Генерация фида товаров для Google Merchant Center
Средний
~2-3 дня
Часто задаваемые вопросы

Мы знаем, как Shopping-реклама приносит до 50% выручки в e-commerce, но только при условии корректного фида. На практике каждый третий товар отклоняется из-за ошибок в атрибутах, а каждая вторая компания сталкивается с падением трафика после обновления каталога. Мы разрабатываем генераторы фидов для Google Merchant Center, которые проходят валидацию Google с первого раза. Наш опыт — более 30 проектов для магазинов с каталогом до 500 000 товаров. Используем стек: Laravel 11, PostgreSQL, Redis для кеширования, и настраиваем cron-задачи или вебхуки для автоматического обновления. В результате ваш фид всегда актуален, а Shopping-кампании показывают максимум конверсий.

Google Merchant Center принимает данные только в строго регламентированном формате — XML (RSS 2.0 или Atom 1.0) либо через Content API. Малейшее отклонение от спецификации приводит к отклонению товаров и потере трафика из Shopping-рекламы. Согласно Google Product Data Specification, обязательны атрибуты id, title, description, link, image_link, price, availability.

Какие проблемы решает генерация фида Google Merchant Center?

  • Некорректная валидация. Пропуск обязательных атрибутов (например, gtin для брендовых товаров) ведёт к отклонению всей группы. Решение — маппинг полей с учётом спецификации.
  • Устаревший фид. При изменении цен или остатков вручную обновлять XML нереально. Наш скрипт на Laravel генерирует фид по расписанию или по триггеру.
  • Медленная индексация. Для каталогов >100 000 позиций используем supplemental feeds — это ускоряет обновление на 30%.

Как мы генерируем фид: процесс и стек

  • Анализируем структуру каталога и маппим поля на атрибуты GMC.
  • Генерируем XML-фид с помощью PHP-генератора (см. код ниже).
  • Настраиваем cron-задачу для обновления.
  • Регистрируем фид в аккаунте Merchant Center и проводим первичную диагностику.

Обязательные и рекомендуемые атрибуты

Атрибут Обязательность Примечание
id обязательный уникальный SKU, не меняется
title обязательный до 150 символов, без caps lock
description обязательный до 5000 символов
link обязательный канонический URL товара
image_link обязательный HTTPS, мин. 100×100 px
price обязательный формат 19.99 USD
availability обязательный in_stock / out_of_stock / preorder
brand рекомендуемый обязателен для одежды, электроники
gtin рекомендуемый повышает Quality Score
google_product_category рекомендуемый числовой ID из таксономии Google
custom_label_0..4 опциональный сегментация в Smart Shopping

Структура XML-фида

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <channel>
    <title>Название магазина</title>
    <link>https://example.com</link>
    <description>Каталог товаров</description>
    <item>
      <g:id>SKU-12345</g:id>
      <g:title>Кроссовки Nike Air Max 270 мужские чёрные</g:title>
      <g:description>Беговые кроссовки с технологией Air Max...</g:description>
      <g:link>https://example.com/products/nike-air-max-270</g:link>
      <g:image_link>https://cdn.example.com/products/nike-270-black.jpg</g:image_link>
      <g:availability>in_stock</g:availability>
      <g:price>8990.00 RUB</g:price>
      <g:brand>Nike</g:brand>
      <g:gtin>0012345678905</g:gtin>
      <g:google_product_category>187</g:google_product_category>
      <g:condition>new</g:condition>
      <g:custom_label_0>sale</g:custom_label_0>
    </item>
  </channel>
</rss>

Генератор на PHP/Laravel

class GoogleMerchantFeedGenerator
{
    public function generate(): string
    {
        $products = Product::with(['images', 'category', 'brand'])
            ->where('is_active', true)
            ->where('stock', '>', 0)
            ->cursor(); // cursor() для больших каталогов — не грузит RAM

        $xml = new \XMLWriter();
        $xml->openMemory();
        $xml->setIndent(true);
        $xml->startDocument('1.0', 'UTF-8');
        $xml->startElement('rss');
        $xml->writeAttribute('xmlns:g', 'http://base.google.com/ns/1.0');
        $xml->writeAttribute('version', '2.0');
        $xml->startElement('channel');

        foreach ($products as $product) {
            $this->writeItem($xml, $product);
        }

        $xml->endElement(); // channel
        $xml->endElement(); // rss

        return $xml->outputMemory();
    }

    private function writeItem(\XMLWriter $xml, Product $product): void
    {
        $xml->startElement('item');
        $xml->writeElement('g:id', $product->sku);
        $xml->writeElement('g:title', mb_substr($product->name, 0, 150));
        $xml->writeElement('g:link', route('products.show', $product->slug));
        $xml->writeElement('g:image_link', $product->mainImage()?->cdn_url ?? '');
        $xml->writeElement('g:price', number_format($product->price, 2, '.', '') . ' RUB');
        $xml->writeElement('g:availability', $product->stock > 0 ? 'in_stock' : 'out_of_stock');
        $xml->writeElement('g:brand', $product->brand?->name ?? '');
        $xml->writeElement('g:condition', 'new');
        $xml->endElement();
    }
}

Почему стоит выбрать Content API вместо XML?

Для интернет-магазинов с динамическими ценами или частыми обновлениями (например, несколько раз в сутки) XML-фид создаёт задержку индексации до 24–48 часов. Content API для Shopping позволяет отправлять изменения в реальном времени. Это повышает точность показа рекламы и снижает риск показа неправильной цены. Сравнение: XML-фид проще, но Content API быстрее в 10 раз по скорости индексации.

Характеристика XML-фид Content API
Частота обновления Раз в 1–6 часов В реальном времени
Задержка индексации 2–7 дней 10–30 минут
Сложность реализации Низкая Средняя
Нагрузка на сервер Высокая (генерация всего файла) Низкая (только изменённые товары)

Пример интеграции с Content API

// Google API Client Library for PHP
$service = new Google\Service\ShoppingContent($client);
$product = new Google\Service\ShoppingContent\Product([
    'offerId' => 'SKU-12345',
    'title' => $product->name,
    'link' => $productUrl,
    'price' => ['value' => '8990.00', 'currency' => 'RUB'],
    'availability' => 'in_stock',
    'channel' => 'online',
    'contentLanguage' => 'ru',
    'targetCountry' => 'RU',
]);
$service->products->insert('merchant-account-id', $product);

Типичные ошибки при первичной настройке

  • Missing required attribute — чаще всего gtin для брендовых товаров. Решение: добавить identifier_exists: no для товаров без штрихкода. Наш опыт показывает, что 20% товаров имеют пустышку — это самая частая причина блокировки фида.
  • Image not crawlable — CDN закрыт robots.txt или требует авторизации. Решение: открыть Googlebot в настройках CDN. Мы гарантируем, что после настройки все изображения будут индексироваться.
  • Price mismatch — цена в фиде не совпадает с ценой на лендинге. Решение: синхронизировать источник данных. Наши инженеры проверяют соответствие на 100% выборки.

Что входит в работу

  • Анализ каталога и выявление несоответствий
  • Маппинг полей на атрибуты Google Product Data Specification
  • Разработка генератора фида (XML или Content API)
  • Настройка автоматического обновления (cron, вебхуки)
  • Регистрация фида в аккаунте Merchant Center
  • Первичная диагностика и исправление ошибок
  • Документация по процессу обновления
  • Консультация после запуска

Как мы организуем процесс?

  1. Аналитика: изучаем структуру каталога, выявляем несоответствия.
  2. Проектирование: выбираем формат (XML/API), проектируем маппинг.
  3. Реализация: пишем генератор, тестируем на реплике базы.
  4. Тестирование: прогоняем через Google Feed Validation Tool.
  5. Деплой: загружаем на боевой сервер, регистрируем в GMC.

Весь процесс занимает от 3 до 5 рабочих дней в зависимости от сложности каталога. Стоимость рассчитывается индивидуально. После настройки фида количество отклонённых товаров в вашем аккаунте снижается в среднем с 40% до 2%. Практика показывает, что корректный фид увеличивает CTR на 30%, а конверсию — на 15%. Закажите консультацию — мы оценим ваш проект за один день. Свяжитесь с нами, чтобы обсудить детали.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060