はじめに
Googleで商品を検索すると、写真と価格が並んだ「ショッピング」の枠が出てきますよね。あそこに自社商品を載せるには、**Google Merchant Center(GMC)**に商品データを渡す必要があります。この「商品データの束」が商品フィードです。
多くのECでは、フィード生成を専用アプリに任せます。ですが私が担当したアパレル・ギア系のECでは、あえてアプリを使わず、ヘッドレスEC側で自前のXMLフィードを生成する方式を選びました。
この記事では、なぜ自前生成なのか、そして数千SKUを毎日最新に保つ自動化の全体像を解説します。
なぜフィードを自前生成するのか
アプリの制約を超えたかった
フィード生成アプリはとても便利です。ただ、便利さの裏返しで「アプリが用意した枠」からはみ出せません。たとえば「この商品だけタイトルの付け方を変えたい」「特定のタグが付いた商品は除外したい」といった細かな要望が、アプリの設定画面では実現できないことがあります。
自前生成なら、商品データからフィードへの変換ロジックを自分たちで書けます。ビジネス都合に合わせて自由にマッピングできることが、最大の動機でした。
マルチサイト運用への対応
このプロジェクトでは、同じ商品基盤から複数のECサイトを運営していました。サイトごとに扱う商品や言語、通貨が微妙に異なります。
アプリだとサイトごとに契約・設定が増えていきますが、自前生成なら1つのコードベースでサイト別のフィードを出し分けられます。エンドポイントにサイトを指定するだけで、それぞれのフィードが生成される——この一元管理が運用をぐっと楽にしてくれました。
広告と無料リスティングの両方に効く
商品フィードはショッピング「広告」のためだけのものと思われがちですが、実はGoogleの無料リスティング(お金をかけずに検索結果へ商品を掲載できる枠)にも同じフィードが使われます。
つまり、フィードをきちんと整備しておくと、広告費をかけずとも露出のチャンスが増えるわけです。フィードは「広告の付属品」ではなく、集客の土台そのものだと捉えると、自前でしっかり作る価値が見えてきます。
自前生成システムの全体像
1本のエンドポイントがフィードを返す
仕組みはシンプルで、/api/merchant/feed.xml という1本のエンドポイントにアクセスすると、GMCが読み取れるXMLが返ってきます。GMC側にはこのURLを登録しておくだけ。あとはGMCが定期的にこのURLを取りに来て、最新の商品データを吸い上げてくれます。
Admin GraphQL API で商品・在庫・価格を取得
/api/merchant/feed.xml がGMC仕様へ変換
TTL数時間で生成結果を保持
定期的にURLを取得 → ショッピング広告・無料リスティングへ反映
Shopifyから商品データを引く
商品の在庫や価格の「正」はShopifyにあります。フィード生成APIは、ShopifyのAdmin GraphQL APIを叩いて、タイトル・説明・価格・在庫状態・画像・GTIN(商品の国際的な識別番号)などを取得します。
GraphQLを使うのは、必要な項目だけをまとめて取れるからです。RESTだと何度もリクエストが必要な情報も、1回のクエリで欲しい分だけ引ける。大量SKUを扱ううえで、この効率の差は効いてきます。
GMC仕様のXMLへ変換する
取得した商品データは、そのままではGMCに渡せません。GMCには決まった項目名(title description link image_link price availability など)と書式のルールがあります。
そこで、Shopifyの商品データ1件ずつを、この仕様に沿ったXMLの塊へ変換していきます。この変換ルールの設計が、フィードの品質を左右する肝の部分です。詳しくはマッピング設計の記事で掘り下げます。
運用で効いてくる3つの視点
大量SKUを軽くさばくキャッシュ
数千SKUの商品を毎回GraphQLで取得してXML化していたら、GMCがURLを取りに来るたびに重い処理が走ってしまいます。
そこで、生成結果を数時間のTTL(有効期限)でキャッシュします。フィードの内容は分単位で変わるものではないので、これで十分。ページサイズを制御して分割配信することで、大量SKUでもメモリを圧迫せずに返せます。この設計はキャッシュとヘルスチェックの記事で詳しく解説します。
止まると広告も止まるから監視する
見落とされがちですが、フィードが止まると広告も止まります。フィードが生成できなくなったり、内容が空になったりすると、GMCは商品を掲載できなくなり、そのまま広告配信も途切れてしまいます。
しかも、これは静かに起こります。エラー画面が出るわけではなく、ただ売上が下がっていく。だからこそ、フィードがちゃんと生成できているかを監視するヘルスチェックAPIが欠かせません。
不承認を減らす品質管理
GMCは、渡された商品を審査します。必須項目が欠けていたり、ポリシーに反していたりすると、その商品は「不承認」となって掲載されません。
不承認は静かに露出を削る
1件の不承認では気づきにくいのですが、積み重なると掲載商品数がじわじわ減っていきます。「なぜか広告の反応が悪い」の裏に、大量の不承認が隠れていることは珍しくありません。
下書き商品や非公開商品を確実に除外し、必須属性の欠損を検証する——こうした品質管理の詳細はフィード品質の管理で解説します。
まとめ
Googleショッピングの商品フィードは、アプリに頼らず自前生成することで、マッピングも除外制御もマルチサイト対応も自由に設計できます。
- 自前生成の価値:アプリの制約を超えた柔軟なマッピングと、複数サイトの一元管理
- 仕組み:Shopify Admin GraphQLで商品を取得し、GMC仕様のXMLへ変換して1本のエンドポイントで配信
- 運用の肝:キャッシュによる軽量化、ヘルスチェックによる監視、品質管理による不承認削減
フィードは「広告の付属品」ではなく、無料リスティングにも効く集客の土台です。止まれば広告も止まる——だからこそ、丁寧に作り、きちんと監視する価値があります。
各テーマの詳細は、以下のサブ記事で掘り下げています。