google-shopping-feed について
google-shopping-feed は、Google Merchant Center への商品データ送信と、ショッピング広告向けのデータ品質改善を支援するEC事業者向けスキルです。プラットフォーム連携、フィード最適化、商品不承認への対処を扱います。
主な機能
- 01ストアと Merchant Center の接続
- 02商品フィードの生成と同期
- 03タイトル、GTIN、カテゴリの改善
- 04不承認やフィードエラーの調査
活用シーン
- 01Google Shopping Ads の初期設定
- 02Merchant Center での商品不承認の解消
- 03検索意図に合う商品タイトルの調整
- 04国や通貨別の商品フィード管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill google-shopping-feedインストール後、Claude Code で/google-shopping-feedを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/content-api-batch-updates-and-supplement/criteria.jsontask.mdevals/feed-audit-multi-country-setup-and-varia/criteria.jsontask.mdevals/xml-feed-structure-and-title-optimizatio/criteria.jsontask.md詳細
Google Shopping Feed
概要
Google Merchant Center でショッピング広告を掲載するには、特定の属性を含む商品データフィードが必要です。Shopify、WooCommerce、BigCommerce には、フィードの生成を自動で処理する公式の Google 連携機能があります。このスキルでは、連携機能の設定、フィード品質(ショッピングのランキングを決める主要な要素)の最適化、よくある不承認の問題の修正について説明します。
このスキルを使用するタイミング
- Google ショッピング広告を初めて設定するとき
- フィード品質の問題により、Merchant Center で商品が不承認になっているとき
- フィードの価格や在庫状況が、公開中のウェブサイトの情報より遅れているとき
- より関連性の高い検索クエリを獲得できるよう、フィードのタイトルや説明を最適化するとき
- 複数の国や通貨のフィードを管理するとき
基本手順
ステップ 1:Google Merchant Center アカウントを設定する
- merchants.google.com にアクセスしてアカウントを作成します
- ビジネス情報 → ウェブサイト でストアのドメインを確認して所有権を申請します(メタタグを追加するか、ストアにファイルをアップロードします)
- Merchant Center の利用規約とポリシーに同意します
- Google Ads アカウントをリンクします:設定 → リンク済みアカウント → Google Ads
ステップ 2:プラットフォームを Merchant Center に接続する
Shopify
- Shopify 管理画面 → 販売チャネル → + → Google & YouTube に移動します
- Google & YouTube チャネルをインストールします
- Google アカウントを接続し、Merchant Center アカウントを選択します
- 商品フィード で、Shopify が必要なすべての属性(タイトル、価格、在庫状況、画像、提供されている場合は GTIN)を含むカタログ全体を自動的に同期します
- Google & YouTube → 概要 に移動して、フィードの同期状況を確認します
- Merchant Center の 商品 → 問題 を確認し、不承認の商品がないか確認します
Shopify でフィード品質を改善する方法:
- すべての商品に、ブランド名と商品名を含むわかりやすいタイトル、説明、メイン画像、正しい商品タイプが設定されていることを確認します
- 商品 → [商品] → バリエーション → バーコード で商品に GTIN(バーコード)を追加します。GTIN はショッピング広告のインプレッション シェアを大幅に向上させます
- Google 商品カテゴリを設定するには、Shopify App Store から Google Shopping Feed または Feedonomics アプリをインストールして、Shopify の商品タイプを Google Taxonomy ID にマッピングします
WooCommerce
- WordPress のプラグインディレクトリから Google Listings & Ads プラグイン(無料の Google 公式プラグイン)をインストールします
- WooCommerce → Google Listings & Ads に移動し、Google アカウントを接続します
- セットアップウィザードを完了します。Merchant Center アカウントを持っていない場合は作成され、フィードが送信されます
- WooCommerce の商品は自動的に同期されます。Google Listings & Ads → 商品フィード で同期状況を確認します
より細かく制御するには:WooCommerce Product Feed Pro(年額 70 ドル)をインストールします。フィード属性、カスタムラベル、プロモーション用の補助フィードを完全に制御できます。
WooCommerce の商品に Google 商品カテゴリを追加する方法:
- WooCommerce 管理画面で各商品または商品カテゴリに移動します
- Google Listings & Ads プラグインに追加された「Google カテゴリ」フィールドに、Google の商品タクソノミーを使って入力します
BigCommerce
- BigCommerce 管理画面 → チャネルマネージャー に移動します
- チャネルを追加 → Google Shopping をクリックします
- Google Merchant Center アカウントを接続します。BigCommerce が
yourstore.com/xmlfeed.xmlにフィードを自動的に作成します - チャネルマネージャー → 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:フィードの品質を最適化する
フィードの品質は、ショッピングのランキングを決める最重要要因です。影響の大きい順に、以下を改善してください。
-
商品タイトルを最適化する — ブランド名と重要な属性を先頭に配置します(Google は約 70 文字を超える部分を省略します)。
- 良い例:「Nike Air Max 90 White Men's Size 10」
- 悪い例:「Air Max 90 - Various Colors Available」
-
GTIN/バーコードを追加する — GTIN の不足は、インプレッションシェアが低下する最も一般的な原因です。バーコードがあるすべての商品に追加してください。
-
Google 商品カテゴリを設定する — Google の分類体系(「Google Product Taxonomy」で検索)を使用して、各商品タイプを対応付けます。正確に一致させるには数値 ID を使用してください。
-
ランディングページの価格をフィードの価格と一致させる — わずか 0.01 ドルの差でも価格不一致による不承認の原因になります。Merchant Center → Diagnostics を毎週確認してください。
-
商品画像を複数追加する — 画像が 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