API レイテンシを計画する

レイテンシは、リクエストへのレスポンスを受信するまでの時間です。このガイドでは、Merchant API リクエストのレイテンシのオーダーについて説明します。これらの値を使用して、タイムアウトを設定し、統合のスループットを計画します。

ほとんどの Merchant API リクエストは 1 秒未満で完了します。ローカル インベントリとリージョン インベントリの更新には数秒かかることがあり、一部のレポートクエリにはさらに時間がかかります。

一般的なレイテンシ

次の表に、リクエストの種類別のおおよそのレイテンシを示します。一般的なレイテンシは中央値です。リクエストの半分はこれより高速に完了します。リクエストの最も遅い 1% は、最後の列に表示されている時間以上かかります。

リクエストの種類 メソッドの例 通常のレイテンシ 最も遅い 1% のリクエスト
プロダクトの読み取りと書き込み products.get、productInputs.insert、productInputs.patch、productInputs.delete 100 ~ 600 ミリ秒 約 2 秒
その他のほとんどのリクエスト products.list、accounts.get、dataSources.list、aggregateProductStatuses.list 1 秒未満 数秒
ローカルおよびリージョン インベントリの書き込み localInventories.insert、regionalInventories.insert、および対応する delete メソッド 数秒 10 秒以上
レポートクエリ accounts.reports.search 約 0.5 秒 30 秒以上

レポートクエリは最も変化します。レイテンシは、クエリするレポート表と、クエリが対象とするデータの量によって異なります。通常、レポートクエリの約 10 分の 1 は 2 秒以上かかり、ごく一部は 1 分以上かかることがあります。

推奨事項

  • 余裕を持たせてタイムアウトを設定する。クライアントでリクエスト タイムアウトを設定する場合は、一般的なレイテンシに記載されている最も遅いレイテンシよりも十分に長い時間を設定してください。たとえば、60 秒のタイムアウトは、ほとんどのリクエストには十分な余裕がありますが、すべてのレポートクエリに十分なわけではありません。
  • 独立したリクエストを並行して送信する。在庫の書き込みにはそれぞれ数秒かかるため、1 つずつ送信するとスループットが制限されます。独立したリクエストを並行して送信するか、バッチ リクエストを使用します。複数のリクエストを送信する場合は、1 分あたりと 1 日の利用時間の上限に注意してください。詳細については、レートに基づく割り当てをご覧ください。
  • レポートクエリを必要なデータに限定する。長い期間など、大規模なデータセットを対象とするクエリは時間がかかり、タイムアウトする可能性があります。大量のデータが必要な場合は、BigQuery の使用を検討してください。詳細については、Google Merchant Center のデータを BigQuery に読み込むをご覧ください。
  • 指数バックオフを使用して再試行する。リクエストがタイムアウトするか、一時的なエラーで失敗した場合は、指数バックオフを使用して再試行します。

処理時間

データを変更するリクエストの場合、成功レスポンスは Merchant API が変更を受け入れたことを意味しますが、レスポンス後も処理は続行されます。処理時間は、レスポンスから他のリソースに変更が表示されるまでの時間です。処理時間はレイテンシの一部ではなく、はるかに長くなる可能性があります。たとえば、処理された商品に挿入された商品入力が反映されるまでに数分かかることがあります。

データの最終処理状態の詳細については、次のガイドをご覧ください。