このガイドでは、Data Manager API を使用する際の上限と割り当てについて説明します。
プロジェクト数の上限
Data Manager API を使用するには、Google Cloud プロジェクトが必要です。Google Cloud プロジェクトは、API リクエストの認証に使用する OAuth クライアントと認証情報を提供します。
Data Manager API は、サービスとオペレーション タイプ(読み取りと変更)ごとに、各 Google Cloud プロジェクトにレート制限を適用します。
| サービス | オペレーション | 1 日あたりのリクエスト数 | 1 分あたりのリクエスト数 |
|---|---|---|---|
IngestionService |
変更(書き込み) | 100,000 | 300 |
IngestionService |
読み取り | 100,000 | 300 |
| その他のすべてのサービスを組み合わせたもの | 変更(書き込み) | 50,000 | 300 |
| その他のすべてのサービスを組み合わせたもの | 読み取り | 50,000 | 300 |
上限を超えるリクエストは、エラー RESOURCE_EXHAUSTED と HTTP ステータス 429 Too Many Requests で拒否されます。
リクエスト数を積極的に減らし、クライアント側から QPS をスロットリングすることで、アプリを制御し、レート制限を緩和できます。また、Google Cloud コンソールで割り当てアラートとモニタリングを設定して、アプリケーションが上限に達する前に通知を受け取ることもできます。
割り当て名
各上限は、Google Cloud の割り当て上限の名前と指標に対応しています。リクエストが上限を超えると、Data Manager API は metadata.quota_limit の ErrorInfo 標準詳細ペイロードで割り当て上限名を返します。
| 割り当て上限名 | サービス | オペレーション | ウィンドウ | 上限 |
|---|---|---|---|---|
IngestionMutateRequestsPerDayPerProject |
IngestionService |
アクション | 日 | 100,000 |
IngestionMutateRequestsPerMinutePerProject |
IngestionService |
アクション | 分 | 300 |
IngestionReadRequestsPerDayPerProject |
IngestionService |
読み取り | 日 | 100,000 |
IngestionReadRequestsPerMinutePerProject |
IngestionService |
読み取り | 分 | 300 |
ManagementMutateRequestsPerDayPerProject |
その他のすべてのサービス | アクション | 日 | 50,000 |
ManagementMutateRequestsPerMinutePerProject |
その他のすべてのサービス | アクション | 分 | 300 |
ManagementReadRequestsPerDayPerProject |
その他のすべてのサービス | 読み取り | 日 | 50,000 |
ManagementReadRequestsPerMinutePerProject |
その他のすべてのサービス | 読み取り | 分 | 300 |
ErrorInfo ペイロードの metadata.quota_limit を調べて、1 日あたりの上限エラーと 1 分あたりの上限エラーを区別し、一時的に一時停止してバックオフで再試行するか、1 日あたりの割り当てがリセットされるまで一時停止するかを決定します。詳細については、割り当てとレート制限のエラーをご覧ください。
レート制限と同時実行を処理する
プロジェクトの割り当てを超えずにスループットを最大化するには、次のガイドラインに従ってください。
リクエストあたりのバッチレコード数: リクエストの上限(リクエストあたり最大 10,000 個の
AudienceMemberリソースまたは 2,000 個のEventリソース)まで、各リクエストにできるだけ多くのレコードを含めます。最大 10 件の同時リクエストを送信する: 1 分あたり 300 件のリクエストの上限を超えずに、合計取り込み時間を短縮するには、
IngestionServiceに最大 10 件の同時リクエストを送信します。バックオフを使用して 1 分あたりのレート制限を再試行する: リクエストが
RESOURCE_EXHAUSTED(HTTP429)で失敗し、metadata.quota_limitが 1 分あたりの制限(IngestionMutateRequestsPerMinutePerProjectなど)を示している場合は、ジッターを伴う指数バックオフを使用して再試行します(たとえば、再試行の間に 1 秒、2 秒、4 秒待機します)。1 日の割り当てが上限に達した場合は一時停止する:
metadata.quota_limitが 1 日の上限(IngestionMutateRequestsPerDayPerProjectなど)を示している場合は、すぐに再試行しないでください。1 日の割り当てが太平洋時間の午前 0 時にリセットされるまで、リクエストを一時停止します。
リクエストに関する上限
特定のリクエストの上限は次のとおりです。
IngestAudienceMembersRequestとRemoveAudienceMembersRequest:audience_membersリスト内の 10,000 個のAudienceMemberリソースAudienceMemberのUserDataに 10 個のユーザー識別子destinationsリストに 10 個のDestinationリソース
RemoveAllAudienceMembersRequest:destinationsリストに 10 個のDestinationリソース
-
eventsリスト内の 2,000 個のEventリソースEventのUserDataに 10 個のユーザー識別子destinationsリストに 10 個のDestinationリソース