mcpField
G
google-shopping-feed

google-shopping-feed

github.com/finsilabsマーケティング・グロース60112 回インストール6 日前に更新
リポジトリ

google-shopping-feed について

google-shopping-feed は、Google Merchant Center への商品データ送信と、ショッピング広告向けのデータ品質改善を支援するEC事業者向けスキルです。プラットフォーム連携、フィード最適化、商品不承認への対処を扱います。

主な機能

  1. 01ストアと Merchant Center の接続
  2. 02商品フィードの生成と同期
  3. 03タイトル、GTIN、カテゴリの改善
  4. 04不承認やフィードエラーの調査

活用シーン

  1. 01Google Shopping Ads の初期設定
  2. 02Merchant Center での商品不承認の解消
  3. 03検索意図に合う商品タイトルの調整
  4. 04国や通貨別の商品フィード管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill google-shopping-feed

インストール後、Claude Code で/google-shopping-feedを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

tile.json
evals/content-api-batch-updates-and-supplement/
criteria.json
task.md
evals/feed-audit-multi-country-setup-and-varia/
criteria.json
task.md
evals/xml-feed-structure-and-title-optimizatio/
criteria.json
task.md

詳細

Google Shopping Feed

概要

Google Merchant Center でショッピング広告を掲載するには、特定の属性を含む商品データフィードが必要です。Shopify、WooCommerce、BigCommerce には、フィードの生成を自動で処理する公式の Google 連携機能があります。このスキルでは、連携機能の設定、フィード品質(ショッピングのランキングを決める主要な要素)の最適化、よくある不承認の問題の修正について説明します。

このスキルを使用するタイミング

  • Google ショッピング広告を初めて設定するとき
  • フィード品質の問題により、Merchant Center で商品が不承認になっているとき
  • フィードの価格や在庫状況が、公開中のウェブサイトの情報より遅れているとき
  • より関連性の高い検索クエリを獲得できるよう、フィードのタイトルや説明を最適化するとき
  • 複数の国や通貨のフィードを管理するとき

基本手順

ステップ 1:Google Merchant Center アカウントを設定する
  1. merchants.google.com にアクセスしてアカウントを作成します
  2. ビジネス情報 → ウェブサイト でストアのドメインを確認して所有権を申請します(メタタグを追加するか、ストアにファイルをアップロードします)
  3. Merchant Center の利用規約とポリシーに同意します
  4. Google Ads アカウントをリンクします:設定 → リンク済みアカウント → Google Ads
ステップ 2:プラットフォームを Merchant Center に接続する

Shopify
  1. Shopify 管理画面 → 販売チャネル → + → Google & YouTube に移動します
  2. Google & YouTube チャネルをインストールします
  3. Google アカウントを接続し、Merchant Center アカウントを選択します
  4. 商品フィード で、Shopify が必要なすべての属性(タイトル、価格、在庫状況、画像、提供されている場合は GTIN)を含むカタログ全体を自動的に同期します
  5. Google & YouTube → 概要 に移動して、フィードの同期状況を確認します
  6. Merchant Center の 商品 → 問題 を確認し、不承認の商品がないか確認します

Shopify でフィード品質を改善する方法:

  • すべての商品に、ブランド名と商品名を含むわかりやすいタイトル、説明、メイン画像、正しい商品タイプが設定されていることを確認します
  • 商品 → [商品] → バリエーション → バーコード で商品に GTIN(バーコード)を追加します。GTIN はショッピング広告のインプレッション シェアを大幅に向上させます
  • Google 商品カテゴリを設定するには、Shopify App Store から Google Shopping Feed または Feedonomics アプリをインストールして、Shopify の商品タイプを Google Taxonomy ID にマッピングします

WooCommerce
  1. WordPress のプラグインディレクトリから Google Listings & Ads プラグイン(無料の Google 公式プラグイン)をインストールします
  2. WooCommerce → Google Listings & Ads に移動し、Google アカウントを接続します
  3. セットアップウィザードを完了します。Merchant Center アカウントを持っていない場合は作成され、フィードが送信されます
  4. WooCommerce の商品は自動的に同期されます。Google Listings & Ads → 商品フィード で同期状況を確認します

より細かく制御するには:WooCommerce Product Feed Pro(年額 70 ドル)をインストールします。フィード属性、カスタムラベル、プロモーション用の補助フィードを完全に制御できます。

WooCommerce の商品に Google 商品カテゴリを追加する方法:

  • WooCommerce 管理画面で各商品または商品カテゴリに移動します
  • Google Listings & Ads プラグインに追加された「Google カテゴリ」フィールドに、Google の商品タクソノミーを使って入力します

BigCommerce
  1. BigCommerce 管理画面 → チャネルマネージャー に移動します
  2. チャネルを追加 → Google Shopping をクリックします
  3. Google Merchant Center アカウントを接続します。BigCommerce が yourstore.com/xmlfeed.xml にフィードを自動的に作成します
  4. チャネルマネージャー → Google Shopping → 商品 で、商品のステータスと不承認の状況を確認します

フィードをさらに最適化するには、BigCommerce App Marketplace から GoDataFeed または Feedonomics をインストールします。


カスタム/ヘッドレス

Google がクロールできる、標準に準拠した XML フィードのエンドポイントを生成します:

import { create } from 'xmlbuilder2';

export async function generateGoogleShoppingFeed(req: Request, res: Response) {
  const products = await db.products.findAll({
    where: { status: 'active' },
    include: ['variants', 'images'],
  });

  const root = create({ version: '1.0', encoding: 'UTF-8' })
    .ele('rss', { version: '2.0', 'xmlns:g': 'http://base.google.com/ns/1.0' })
    .ele('channel')
    .ele('title').txt(process.env.STORE_NAME!).up()
    .ele('link').txt(process.env.STORE_URL!).up();

  for (const product of products) {
    for (const variant of product.variants) {
      const item = root.ele('item');
      item.ele('g:id').txt(variant.sku).up();
      // Title format: Brand + Product Name + Key Attribute (Color/Size)
      item.ele('g:title').txt(
        [product.brand, product.name, variant.color, variant.size].filter(Boolean).join(' ').slice(0, 150)
      ).up();
      item.ele('g:description').txt(product.description.slice(0, 5000)).up();
      item.ele('g:link').txt(`${process.env.STORE_URL}/products/${product.slug}?variant=${variant.id}`).up();
      item.ele('g:image_link').txt(product.images[0]?.url ?? '').up();
      item.ele('g:condition').txt('new').up();
      item.ele('g:availability').txt(variant.inventory > 0 ? 'in_stock' : 'out_of_stock').up();
      item.ele('g:price').txt(`${(variant.priceInCents / 100).toFixed(2)} USD`).up();
      item.ele('g:brand').txt(product.brand ?? process.env.STORE_NAME!).up();
      item.ele('g:google_product_category').txt(product.googleProductCategory).up();
      item.ele('g:item_group_id').txt(product.id).up(); // groups variants together
      if (variant.color) item.ele('g:color').txt(variant.color).up();
      if (variant.size) item.ele('g:size').txt(variant.size).up();
      if (product.gtin) item.ele('g:gtin').txt(product.gtin).up();
      item.ele('g:identifier_exists').txt(product.gtin ? 'yes' : 'no').up();
    }
  }

  res.setHeader('Content-Type', 'application/xml; charset=utf-8');
  res.setHeader('Cache-Control', 'public, max-age=3600');
  res.send(root.end({ prettyPrint: false }));
}

このフィード URL を Merchant Center の 商品 → フィード → メインフィードを追加 で登録します。

Google の定期クロールを待たずに、Content API を使って価格や在庫の更新をリアルタイムでプッシュします:

import { google } from 'googleapis';

const content = google.content({ version: 'v2.1', auth: await new google.auth.GoogleAuth({
  keyFile: process.env.GOOGLE_SERVICE_ACCOUNT_KEY_PATH,
  scopes: ['https://www.googleapis.com/auth/content'],
}).getClient() });

// Push updated product when inventory or price changes
await content.products.insert({
  merchantId: process.env.GOOGLE_MERCHANT_ID,
  requestBody: {
    offerId: variant.sku,
    availability: variant.inventory > 0 ? 'in_stock' : 'out_of_stock',
    price: { value: (variant.priceInCents / 100).toFixed(2), currency: 'USD' },
    contentLanguage: 'en',
    targetCountry: 'US',
    channel: 'online',
  },
});
ステップ 3:フィードの品質を最適化する

フィードの品質は、ショッピングのランキングを決める最重要要因です。影響の大きい順に、以下を改善してください。

  1. 商品タイトルを最適化する — ブランド名と重要な属性を先頭に配置します(Google は約 70 文字を超える部分を省略します)。

    • 良い例:「Nike Air Max 90 White Men's Size 10」
    • 悪い例:「Air Max 90 - Various Colors Available」
  2. GTIN/バーコードを追加する — GTIN の不足は、インプレッションシェアが低下する最も一般的な原因です。バーコードがあるすべての商品に追加してください。

  3. Google 商品カテゴリを設定する — Google の分類体系(「Google Product Taxonomy」で検索)を使用して、各商品タイプを対応付けます。正確に一致させるには数値 ID を使用してください。

  4. ランディングページの価格をフィードの価格と一致させる — わずか 0.01 ドルの差でも価格不一致による不承認の原因になります。Merchant Center → Diagnostics を毎週確認してください。

  5. 商品画像を複数追加する — 画像が 3 枚以上ある商品は品質スコアが高くなります。ライフスタイル画像と白背景の商品画像の両方が効果的です。

ステップ 4:よくある不承認の問題を解決する

Merchant Center で Products → Diagnostics に移動し、すべての問題を確認してください。

不承認の理由解決方法
価格の不一致フィードの価格が商品ページの schema.org の価格と完全に一致するようにします
必須属性の不足不足しているフィールドを追加します。通常は brand、gtin、または google_product_category です
画像が小さすぎる500×500px 以上の画像を使用してください。1000×1000px を推奨します
ランディングページのエラーフィード内の商品 URL が 200 ステータスコードを返すことを確認してください
ポリシー違反該当するポリシーを確認してください。よくある問題には、医薬品に関する主張、著作権で保護された画像、偽造品があります

ベストプラクティス

  • タイトルの先頭にキーワードを配置する — Google は UI 上でタイトルを約 70 文字で省略します。ブランド名と商品名を先頭に配置してください。
  • プロモーション用の補助フィードを登録する — メインフィードを変更せずにセール価格を反映できます。セール中の不承認リスクを抑えられます。
  • フィードの応答を TTL 1 時間でキャッシュする — Merchant Center は頻繁にクロールするため、リクエストのたびにデータベースへ負荷をかけないようにします。
  • 不承認率を毎日監視する — 急増した場合、直近のデプロイで URL のパターンや価格の形式が変わった可能性があります。
  • identifier_exists: no は、GTIN/MPN を持たない完全なプライベートブランド商品に限って設定する — 誤って使用すると、識別子を持つ商品の不承認につながります。

よくある問題

問題解決方法
承認済みなのに、商品がショッピング広告に表示されないtargetCountry と contentLanguage が、リンク先の Google Ads キャンペーンのターゲティングと一致していることを確認します
デプロイ後にフィードの取得で 404 が返るフィード URL は Merchant Center に登録されています。デプロイ後もルートが存在することを確認してください
プライベートブランド商品で GTIN 必須エラーが表示されるidentifier_exists: no を設定し、代わりにブランド名と MPN を指定します
バリエーションが別々の商品として表示されるすべてのバリエーションで同じ item_group_id を使用し、違いが color、size、または pattern のみであることを確認します
Shopify のフィード同期が停止しているShopify で Google & YouTube に移動し、連携を解除してから再接続します。または Simprosys などのサードパーティ製フィードアプリを使用します

関連スキル

  • @google-ads-ecommerce
  • @ecommerce-seo
  • @meta-ads-integration
  • @marketing-attribution-dashboard

コメント