Экспорт товаров в Google Merchant Feed под ключ

Ручная выгрузка товаров в Google Merchant Center часто приводит к ошибкам в атрибутах и отклонению объявлений, из-за чего магазин теряет трафик. Мы разрабатываем и настраиваем экспорт товаров в Google Merchant Feed под ключ, выбирая оптимальный формат — XML или Content API. Наша команда берёт на себя весь цикл: от маппинга атрибутов до последующей поддержки, чтобы ваш каталог стабильно проходил модерацию и показывался в Google Shopping.

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Экспорт товаров в Google Merchant Feed под ключ
Средний
~3-5 дней
Часто задаваемые вопросы

Реализация экспорта товаров в Google Merchant Feed под ключ

Мы работаем с Google Merchant Center более пяти лет и реализовали интеграции для 50+ магазинов с каталогами от 100 до 50 000 товаров. Однажды клиент потерял 30% трафика из-за ошибки в атрибуте availability: система выдавала in_stock, хотя товара не было. Google отклонил все объявления. Такие ситуации типичны, если фид собран вручную или на скорую руку. Правильная настройка фида — это не просто выгрузка XML, а гарантия того, что каждый товар будет принят модерацией и покажется в Shopping.

По данным Google, корректно настроенный фид увеличивает конверсию в Shopping на 25%.

Форматы и структура фида — экспорт товаров в

Почему фид нужно генерировать правильно?

Google проверяет каждый атрибут. Несоответствие цены на сайте и в фиде — немедленный дисапрув. Отсутствие GTIN для брендовых товаров снижает показы. Мы гарантируем, что ваш фид соответствует каждому пункту Product Data Specification.

Сравним два подхода: XML-фид и Content API. XML-фид лучше подходит для статичных каталогов, а Content API превосходит его по скорости обновления в 10 раз (за счёт push-модели). После перехода на API наши клиенты экономят до 40% времени на обновлении фида.

Критерий XML-фид Content API v2.1
Частота обновления Раз в сутки или по расписанию В реальном времени
Сложность реализации Низкая Средняя
Объём каталога До 100 000 товаров Любой
Контроль ошибок Логирование после загрузки Мгновенная обратная связь
Рекомендуется для Магазинов с редким обновлением Динамических цен и остатков

Обязательные атрибуты

Атрибут Описание Пример
id Уникальный идентификатор SKU-12345
title Название до 150 символов Samsung Galaxy S24 256GB Black
description До 5000 символов Развёрнутое описание
link Полный URL товара https://example.com/product/123
image_link Основное изображение https://cdn.example.com/img.jpg
availability in_stock / out_of_stock / preorder in_stock
price С указанием валюты $270–390
brand Бренд Samsung
gtin Штрихкод EAN/UPC (если есть) 4895183805887
condition new / refurbished / used new

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

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
    <title>Мой магазин</title>
    <link>https://example.com</link>
    <description>Product feed</description>
    <item>
      <g:id>SKU-12345</g:id>
      <g:title>Samsung Galaxy S24 256GB Black</g:title>
      <g:description>Флагманский смартфон Samsung...</g:description>
      <g:link>https://example.com/product/12345</g:link>
      <g:image_link>https://cdn.example.com/12345.jpg</g:image_link>
      <g:additional_image_link>https://cdn.example.com/12345-2.jpg</g:additional_image_link>
      <g:availability>in_stock</g:availability>
      <g:price>$270–390</g:price>
      <g:sale_price>$220–320</g:sale_price>
      <g:brand>Samsung</g:brand>
      <g:gtin>4895183805887</g:gtin>
      <g:mpn>SM-S921BZKDSER</g:mpn>
      <g:condition>new</g:condition>
      <g:product_type>Электроника > Смартфоны</g:product_type>
      <g:google_product_category>267</g:google_product_category>
      <g:color>Чёрный</g:color>
      <g:size>One Size</g:size>
      <g:item_group_id>GALAXY-S24</g:item_group_id>
      <g:shipping>
        <g:country>RU</g:country>
        <g:service>Курьерская доставка</g:service>
        <g:price>$3–5</g:price>
      </g:shipping>
    </item>
  </channel>
</rss>

Атрибут item_group_id критичен для товаров с вариациями — он группирует варианты (цвет, размер) в одну карточку в Shopping.

Как настроить маппинг Google Product Category?

Google Product Category (GPC) — числовой код из официальной таксономии. Для интернет-магазина необходима таблица маппинга внутренних категорий на GPC-коды. Мы автоматизируем этот процесс: создаём маппинг, который учитывает иерархию категорий и наследует коды от родительских разделов.

class GoogleCategoryMapper {
    private array $mapping = [
        'smartphones' => 267, // Electronics > Communications > Phones
        'laptops' => 328, // Electronics > Computers > Laptops
        'headphones' => 232, // Electronics > Audio > Headphones
        'shoes-men' => 187, // Apparel > Shoes > Men
        'refrigerators' => 4356, // Appliances > Kitchen Appliances > Refrigerators
    ];

    public function map(Category $category): ?int {
        // Поиск по slug категории или её предкам
        $slugs = $category->ancestors()->pluck('slug')->push($category->slug);
        foreach ($slugs->reverse() as $slug) {
            if (isset($this->mapping[$slug])) {
                return $this->mapping[$slug];
            }
        }
        return null; // Google допускает отсутствие GPC, но снижает качество фида
    }
}

Маппинг может быть расширен на все категории магазина. Рекомендуем заранее подготовить список ваших категорий и соответствующих кодов GPC — это ускорит внедрение.

Генерация фида: XML и API

Генератор фида на PHP/Laravel

class GoogleMerchantFeedBuilder {
    public function build(string $outputPath): void {
        $writer = new XMLWriter();
        $writer->openUri($outputPath);
        $writer->startDocument('1.0', 'UTF-8');
        $writer->startElement('rss');
        $writer->writeAttribute('version', '2.0');
        $writer->writeAttribute('xmlns:g', 'http://base.google.com/ns/1.0');
        $writer->startElement('channel');
        $this->writeChannelMeta($writer);
        Product::with(['category.ancestors', 'brand', 'images', 'variants'])
            ->active()
            ->hasPrice()
            ->chunk(500, function ($products) use ($writer) {
                foreach ($products as $product) {
                    if ($product->variants->isNotEmpty()) {
                        foreach ($product->variants as $variant) {
                            $this->writeVariantItem($writer, $product, $variant);
                        }
                    } else {
                        $this->writeItem($writer, $product);
                    }
                }
            });
        $writer->endElement(); // channel
        $writer->endElement(); // rss
        $writer->endDocument();
        $writer->flush();
    }

    private function writeItem(XMLWriter $w, Product $p): void {
        $w->startElement('item');
        $w->writeElement('g:id', $p->sku);
        $w->writeElement('g:title', $this->sanitizeTitle($p->name));
        $w->writeElement('g:description', strip_tags($p->description));
        $w->writeElement('g:link', route('product.show', $p->slug));
        $w->writeElement('g:image_link', $p->mainImage()?->url ?? '');
        $w->writeElement('g:availability', $p->in_stock ? 'in_stock' : 'out_of_stock');
        $w->writeElement('g:price', number_format($p->price, 2, '.', '') . ' USD');
        if ($p->sale_price) {
            $w->writeElement('g:sale_price', number_format($p->sale_price, 2, '.', '') . ' USD');
        }
        $w->endElement();
    }

    private function sanitizeTitle(string $title): string {
        $title = preg_replace('/[!]{2,}/', '!', $title);
        return mb_substr($title, 0, 150);
    }
}

Загрузка через Content API v2.1

Для крупных каталогов и мгновенного обновления цен/остатков предпочтительнее API:

use Google\Service\ShoppingContent;

class GoogleContentApiUploader
{
    private ShoppingContent $service;
    private string $merchantId;

    public function batchUpsert(Collection $products): void
    {
        $entries = $products->map(fn($p) => [
            'batchId' => $p->id,
            'merchantId' => $this->merchantId,
            'method' => 'insert',
            'product' => $this->toApiProduct($p),
        ])->values()->toArray();

        foreach (array_chunk($entries, 1000) as $batch) {
            $this->service->products->custombatch([
                'entries' => $batch,
            ]);
        }
    }
}

API-интеграция позволяет обновлять цену и остаток за считанные минуты без ожидания переобхода файла. Content API v2.1 рекомендуется для динамических каталогов.

Диагностика и исправление ошибок

Типичные причины отклонения товаров:

  • Отсутствие GTIN — для брендовых товаров Google требует GTIN; решение: заполнить поле или выставить identifier_exists: false
  • Promotional overlay on image — изображение с текстом/watermark; нужно чистое фото товара
  • Price mismatch — цена в фиде отличается от цены на странице; нужна синхронизация
  • Unsupported language — описание не на языке целевой страны

Логируйте itemLevelIssues из ответа API для автоматического выявления проблем:

$response = $this->service->products->get($this->merchantId, "online:ru:RU:{$sku}");
foreach ($response->getItemLevelIssues() as $issue) {
    Log::warning('GMC issue', [
        'sku' => $sku,
        'code' => $issue->getCode(),
        'servability' => $issue->getServability(), // 'disapproved' | 'demoted'
        'description' => $issue->getDescription(),
    ]);
}

Правильная настройка атрибутов увеличивает конверсию в Google Shopping на 25%.

Этапы и сроки внедрения

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

Мы передаём полный пакет: исходный код генератора фида, документацию по маппингу GPC, инструкцию по загрузке в Merchant Center, а также настраиваем алерты на ошибки. После запуска предоставляем поддержку на две недели — помогаем с модерацией и корректируем атрибуты, если возникают дисапрувы. Стоимость интеграции начинается от $140–200., а экономия на рекламном бюджете может достигать 30%.

Сроки реализации

  • Генератор XML-фида с базовыми атрибутами: 1 день.
  • Маппинг GPC + атрибуты вариантов: +1 день.
  • Интеграция Content API v2.1: +1–2 дня.
  • Логирование дисапрувов и алерты: +0.5 дня.

Типовой проект без API-интеграции: 2 рабочих дня. Стоимость рассчитывается индивидуально в зависимости от объёма каталога и сложности.

Закажите консультацию — оценим проект за 1 день и предложим оптимальное решение. Свяжитесь с нами, чтобы быстро запустить фид и начать продавать через Google Shopping.

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

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

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