請按照本指南瞭解使用 Data Manager API 時的限制和配額。
專案限制
您必須擁有 Google Cloud 專案,才能使用 Data Manager API。Google Cloud 雲端專案會提供 OAuth 用戶端和憑證,用於驗證 API 要求。
Data Manager API 會對每個 Google Cloud 專案強制執行頻率限制,並依服務和作業類型 (讀取與變更) 區分:
| 服務 | 作業 | 每日要求數 | 每分鐘要求數 |
|---|---|---|---|
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,區分每日和每分鐘限制錯誤,並判斷是否要暫時暫停並重試 (採用輪詢機制),或暫停到每日配額重設為止。詳情請參閱「配額和頻率限制錯誤」。
處理頻率限制和並行
如要盡可能提高處理量,同時不超過專案配額,請遵循下列指南:
每個要求批次處理記錄:在每個要求中盡可能加入多筆記錄,最多不超過要求限制 (每個要求最多 10,000 個
AudienceMember資源或 2,000 個Event資源)。最多傳送 10 項並行要求:如要縮短總擷取時間,同時不超過每分鐘 300 項要求的限制,請最多傳送 10 項並行要求至
IngestionService。使用輪詢重試每分鐘頻率限制:如果要求失敗,並顯示
RESOURCE_EXHAUSTED(HTTP429),且metadata.quota_limit指出每分鐘限制 (例如IngestionMutateRequestsPerMinutePerProject),請使用指數輪詢和抖動重試 (例如,在重試之間等待 1 秒、2 秒和 4 秒)。每日配額用盡時暫停:如果
metadata.quota_limit指出每日上限 (例如IngestionMutateRequestsPerDayPerProject),請勿立即重試。暫停要求,直到每日配額在太平洋時間午夜重設。
要求限制
以下是特定要求的限制:
IngestAudienceMembersRequest和RemoveAudienceMembersRequest:audience_members清單中有 10,000 個AudienceMember資源AudienceMember的UserData中有 10 個使用者 ID「
destinations」清單中的 10 項Destination資源
RemoveAllAudienceMembersRequest:- 「
destinations」清單中的 10 項Destination資源
- 「
-
events清單中有 2,000 項Event資源Event的UserData中有 10 個使用者 ID「
destinations」清單中的 10 項Destination資源