Реалізація експорту товарів в 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 Із зазначенням валюти (приклад: вказати ціну)
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>ВСТАВИТИ ЦІНУ</g:price>
      <g:sale_price>ВСТАВИТИ ЦІНУ</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>ВСТАВИТИ ЦІНУ</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, '.', '') . ' RUB');
        if ($p->sale_price) {
            $w->writeElement('g:sale_price', number_format($p->sale_price, 2, '.', '') . ' RUB');
        }
        $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, а також налаштовуємо алерти на помилки. Після запуску надаємо підтримку на два тижні — допомагаємо з модерацією та коригуємо атрибути, якщо виникають дисапруви. Вартість інтеграції розраховується індивідуально, а економія на рекламному бюджеті може досягати 30%.

Терміни реалізації

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

Типовий проєкт без API-інтеграції: 2 робочі дні. Вартість розраховується індивідуально в залежності від обсягу каталогу та складності.

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

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

Останні роботи

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