このドキュメントでは、ベスト プラクティスのガイドラインについて説明します。詳しくは、パフォーマンスのヒントをご覧ください。
API を使用するケース
リクエストをプログラムで送信するには
ワークフローのすべての部分を自動化する場合でも、ERP(企業資源計画)システムにフックを作成する場合でも、Content API を使用すると、在庫が変更されたらすぐに更新を送信できます。
フィードバックを迅速に入手
Content API では、データフィードの処理後にメールで概要が送信されるのではなく、すべてのリクエストに対して即座にレスポンスが返されます。大きなバッチ リクエストでは、5 ~ 10 秒のレイテンシが予想されます。
商品データを頻繁に変更する場合
Content API を使用すると、売れ筋商品の在庫を 1 日に何度も増分更新できますが、毎回データフィード全体を送信することは現実的ではありません。アップデートが個別に利用可能になった場合は、複数のアップデートをまとめて送信するまで待たずに、個別に送信します。同様に、更新がバッチで利用可能な場合は、バッチで送信し、個別のリクエストに分割しないでください。
複数のサブアカウントを管理するには
新しく作成された Merchant Center アカウントは、独自の商品データセットを保持する単一のアカウントです。ほとんどの場合、この方法で十分ですが、アカウントが拡大するにつれて、商品に対してより複雑な管理システムが必要になることがあります。このような場合は、マルチクライアント アカウント(MCA)の使用をご検討ください。MCA アカウントの API レベルの管理は、Accounts サービスを通じて行うことができます。これにより、サブアカウントの追加と管理をプログラムで行うことができます。MCA アカウントの取得方法について詳しくは、こちらをご覧ください。
API の使用にあたっての注意事項
API はデータフィードと同じようには使用しないでください
products リソースを使用する場合は、商品フィード全体を毎日更新することは避けてください。代わりに、データが実際に変更された商品のみを更新してください。products リソース経由でデータフィード全体を送信すると、Google とユーザーの両方で時間とリソースがより多く消費されます。
アップロードした商品情報を定期的に取得するために API を使用しない
特定の Merchant Center アカウントの商品情報の管理を担当している場合は、products.get メソッドまたは products.list メソッドを使用して Content API から商品情報を定期的にリクエストすることは避けてください。情報をアップロードするクライアントの場合、これらのメソッドは、Content API を使用するソリューションを設計する際に問題をデバッグするのに役立ちます。ただし、このようなクライアントによる商品情報の定期的な取得を目的としたものではありません。ローカル商品データベースなど、商品情報の別のソースがあり、Merchant Center の商品がそのソースの内容を反映している必要があります。
商品アイテムの登録にデータフィードと Content API の両方を使用しない
商品アイテムの登録に API への切り替えを検討している場合は、商品アイテムの登録にデータフィードを使用していないことを確認してください。両方の媒体でアイテムの送信を続けると、予期しない結果が生じる可能性があります。
API とデータフィードを安全に併用する方法はありますか?
API の Datafeed Service を使用してデータフィードを操作できます。これにより、データフィードの大規模な管理が大幅に容易になりますが、予期しない結果が生じる可能性があるため、API を使用してフィードと同時に商品を挿入または更新しないでください。
フィードと API を組み合わせて使用するその他の例を次に示します。
API からの読み取り専用リクエスト(取得またはリスト)の実行: 一部の販売者は、API を使用して商品の情報とステータスの更新を取得したいと考えています。商品情報はフィードによってのみ更新されるため、これは許容されます。
API を使用して、サブアカウント(Accounts Service)やアカウント レベルの税金と送料の設定(Accounttax Service と Shippingsettings Service)を管理する。これらはデータフィードが提供できる関数ではないため、API を使用してこれらの関数を管理しても競合は発生しません。
データフィードの使用から API のみの使用に移行するにはどうすればよいですか?また、その逆を行うにはどうすればよいですか?
現在データフィードを使用しており、API のみを使用して商品を更新したい場合は、API を使用して商品データを再アップロードする必要があります。商品サービスを使用して特定の商品を更新すると、API が商品情報を制御するようになり、データフィードから商品を削除したり、データフィード自体を削除したりしても、Merchant Center アカウントから商品情報が削除されなくなります。商品データフィードまたは商品データフィード自体を削除する場合は、商品データフィードの更新がないことを確認してください。更新があると、商品データフィードが所有権を再度取得し、商品データフィードから商品を削除すると、商品が削除されます。
現在、商品情報に API のみを使用しており、商品情報の主なソースとしてデータフィードを使用する場合は、新しいデータフィードを Merchant Center アカウントに追加するだけで、リストに登録されている商品の所有権がデータフィードに移行されます。API のみからアップロードされた商品で、有効期限が切れる前に削除したいものがある場合は、Merchant Center または API を使用して削除する必要があります。
Content API for Shopping を使用して、複数の国を対象に商品を販売するにはどうすればよいですか?
Content API を介して登録された商品を対象に、広告と無料リスティングで複数の国をターゲットに設定するには、Merchant Center の Content API メインフィードで追加の国を設定するか、products リソースの shipping フィールドを使用して追加の国を追加します。
Content API のメインフィードの設定を変更する方法の例は次のとおりです。

詳しくは、複数の国でショッピング広告と無料リスティングをターゲットに設定するをご覧ください。
クライアント ライブラリが最新の状態であることを確認する
Google クライアント ライブラリを使用して Content API を操作する場合は、選択したプログラミング言語のパッケージ マネージャーを使用して、ライブラリのバージョンが最新であることを確認してください。詳細については、サンプルとライブラリで選択した言語のデベロッパー ガイドをご覧ください。
掲載先属性を使用して、さまざまなショッピング プログラムに表示される商品を管理してください
Content API は、Merchant Center で設定された Content API フィードのデフォルト設定を自動的に採用します。includedDestinations または excludedDestinations 商品属性を使用すると、フィード内または Content API 経由で、商品レベルでプログラムへの参加を管理できます。
API フィードが「Google で購入」(旧称「ショッピング アクション」)などのプログラムに登録されているが、特定の商品を除外したい場合は、excludedDestinations 属性を使用して、値を Shopping Actions に指定します。エラーがなければ、Merchant Center のデフォルトのフィード設定が上書きされ、その特定の商品アイテムは「Google で購入」(以前のショッピング アクション)に表示されなくなります。逆に、フィードがショッピングなどのプログラムにオプトインしていない場合は、includedDestinations 属性と値 Shopping_ads を使用して個々の商品アイテムを含めることができます。その場合、商品アイテムはショッピング広告に表示されます。
includedDestinations 属性と excludedDestinations 属性について詳しくは、ヘルプセンターをご覧ください。
期限が切れる前にアイテムを更新する
アイテムが期限切れになる前に変更されない場合は、最終更新日から 30 日後、または指定された有効期限のいずれか早い方でアイテムを更新して、無効化を回避します。変更されていないアイテムが多い場合や、最後に更新された日時を追跡できない場合は、すべてのアイテムを同時に更新するのではなく、負荷を数日に分散してください。
Content API フィードは削除しない(削除すると、商品が消失する可能性あり)
Content API を使用して channel:online で商品を初めてアップロードすると、Merchant Center に [Content API] というタイトルの新しいフィードが表示されます。Content API を介して channel:local を含む商品を初めてアップロードすると、Merchant Center に [Content API] というタイトルの新しいフィードが表示され、そのサブタイトルは [ローカル商品] になります。オンラインまたはローカルの Content API フィードを誤って削除しないようにしてください。削除するフィードに応じて、Content API を介して Merchant Center に追加したオンライン商品またはローカル商品が削除されます。
custombatch メソッドを使用して同じサービスに対する複数のリクエストをバッチ処理する
同じサービスに対して複数の連続リクエストや並列リクエストを行うのではなく、必要なリクエストをすべて含む 1 つの custombatch リクエストを作成します。これにより、API エンドポイントへのリクエストのレイテンシは、個々のリクエストごとではなく、custombatch 呼び出しに対して 1 回だけ発生します。これは、リクエストを順次行う場合に特に重要です。
1 つのバッチで 1 つのアイテムに複数の更新を送信しない
更新の順序が不明確なため、予期しない結果が生じ、競合エラーが発生する可能性があります。
変更のないアイテムの更新を送信しない
アイテムの有効期限が切れる場合を除き、新しい商品アイテム、変更された商品アイテム、削除された商品アイテムのリクエストのみを送信するようにしてください。
価格や在庫状況が頻繁に変わる場合は補助フィードを使用する
商品の価格、在庫状況、セール情報を最新の状態に保つのが難しい場合は、products リソースの補助フィードを使用して、これらの属性のみの更新を送信することを検討してください。補助フィードの更新は小規模であるため、特定の期間に完全な商品更新よりも多くの補助フィードの更新を行うことができます。これにより、商品の価格と在庫状況をランディング ページと一致させることができます。
商品アイテムの価格と在庫状況を更新するもう 1 つの方法は、商品アイテムの自動更新を使用することです。これは、API の更新に加えて使用することで、Merchant Center の情報と商品のランディング ページの情報との不一致を回避するのに役立ちます。ただし、これは商品価格と在庫状況の正確性に関する小さな問題を修正するためのものなので、API を介して正しい情報を提供することの代わりにはなりません。
更新トークンを使用するタイミング
更新トークンは、承認リクエストの HTTP ヘッダーで返されます。これには認証に関連する他の情報も多数含まれていますが、アクセス トークンの有効期限は 60 分しかないため、ユーザーに認証を繰り返し求める必要がなくなるリフレッシュ トークンは、デベロッパーがよく取得したいと考えるものです。