開発者ガイドの概要

Amazon Ads APIの概要

レート制限

レート制限(スロットリングと呼ばれることもあります)は、Amazon Ads APIが一定期間に受信したリクエストが多い場合に発生します。

これが発生すると、コード429の応答を受け取ります。この応答には、Retry-Afterのヘッダーが含まれています。Retry-Afterの値は、もう一度API呼び出しを実行する前に待たなければならない秒数です。レート制限は、システム全体の負荷に基づいて動的に行われます。

レポートのレート制限の回避

スポンサープロダクト広告レポートAPIスポンサーディスプレイ広告レポートAPI、およびスポンサーブランド広告レポートAPIに関連付けられるレート制限は、レポート生成キューのサイズによって決まります。これらの制限は、地域単位で、特定の地域の現在のレポートキューのサイズに対応する複数階層構造によって決定されます。使用率が高く、レポート キューのサイズが大きい時間帯ほど、レート制限は低くなります。使用率が低い時間帯ほど、レート制限は高くなり、受け入れられるレポート生成リクエスト数が増加します。

地域によっては、毎日、使用率が高くなる時間帯が複数ある場合があります。レート制限が低く、HTTP応答コード429の発生頻度が高い場合は、レポート生成リクエストを一日を通して分散させることをおすすめします。たとえば、レポートのバックフィルや古いデータ期間のリクエストを分割し、1日をかけて実行したり、大量のレポート生成リクエストの送信を全面的に控えたりします。

また、HTTP応答コード429が頻繁に発生する場合の対処として、指数関数的バックオフを使用することをおすすめします。

動的レート制限は、短期間では変更されない可能性があります。そのため、レポート生成にはより長いバックオフ期間を選択してください。

他のすべてのAPI呼び出しのレート制限の回避

Amazon Ads APIのレート制限は動的であり、システム負荷に基づいています。レート制限が頻繁に発生する場合は、次のベストプラクティスに従ってレート制限の発生を減らすことができます。

指数関数的バックオフによる再試行ロジックを使用する

Amazon Ads APIの呼び出しが失敗した場合のエラーは、次の3つのクラスのいずれかに分類されます。

  1. **サーバーエラー:**HTTP応答は、APIサービスの問題を示す500レベルのコードです。
  2. **スロットリングエラー:**HTTP応答は429です。許可されるAPI呼び出し頻度を制限する制限が管理目的で適用されました。
  3. **クライアントエラー:**HTTP応答は429以外の400レベルのコードです。リクエストに問題があることを示しています。再試行する前に、リクエストのエラーを調査してください。

一般に、サーバーエラーやスロットリングエラーを受け取ったリクエストは再試行する必要があります。リクエストを再試行する際は、指数関数的バックオフアルゴリズムを使用してください。指数関数的バックオフの根本的なアイデアは、エラー応答が連続する場合に、再試行間隔を徐々に長くしていくというものです。たとえば、429または5xxエラーを受け取ったために、アプリケーションが2秒間バックオフして再試行したとします。再びエラーを受け取った場合は、4秒間バックオフして再試行します。それでもエラーを受け取った場合は、8秒間バックオフして再試行する、というように続けていきます。再試行ロジックの最大遅延間隔と最大再試行回数を実装する必要があります。

このタイプの戦略の詳細については、AWSリファレンスガイドのエラーの再試行と指数関数的バックオフを参照してください。

拡張プロパティが不要な場合は、「拡張データのリスト」操作を呼び出さない

こうした呼び出しは、スロットル制限にとって標準的な呼び出しの5倍の重みがあるので、処理コストが非常に高くなります。拡張データのリスト操作と標準のリスト操作の違いは、拡張呼び出しではエンティティのステータスが返されることだけです。エンティティのステータスを特に知る必要がない限り、拡張データ操作の呼び出しは避けてください。

すべてのエンティティを対象にしたリスト操作を呼び出さない

特定のレベルのすべてのエンティティをリストするには、膨大な数のAPI呼び出しが必要になるので、このような操作は上手く拡張できません。何千回もリスト操作を行うより、スナップショットをリクエストして検索結果を解析するほうが効果的です。

各広告タイプのスナップショットの仕様については、以下をご覧ください。

負荷が高い時間帯にレポートリクエストを行うことは避ける

スポンサープロダクト広告、スポンサーディスプレイ広告、スポンサーブランド広告のレポートエンドポイントのレート制限は、使用率のレベルに応じて変わります。使用率が高い時間帯には減少し、使用率が低い時間帯には増加します。当社は、使用率のレベルをエンドポイントの地域レベルで決定しています。古いデータ期間のプル操作を1日を通して実行するなどの方法により、レポート作成リクエスト数を1日を通して平滑化することをおすすめします。