レート制限
Braze の API インフラは、顧客ベース全体で大量のデータを処理できるように設計されています。このため、ワークスペースごとに API レート制限を設けています。
レート制限とは、API が一定時間内に受け取れるリクエスト数のことです。大規模システムにおける負荷ベースのサービス拒否インシデントの多くは、悪意のある攻撃ではなく、ソフトウェアや設定のエラーによって引き起こされる意図しないものです。レート制限は、このようなエラーによって Braze API のリソースがお客様に提供できなくなることを防ぎます。一定時間内に多くのリクエストが送信された場合、ステータスコード 429 のエラー応答が返されることがあります。これは、レート制限に達したことを示します。
API レート制限は、システムの適切な使用状況に応じて変更される場合があります。損害や悪用を防ぐため、API コールを行う際には適切な制限を設けることを推奨します。
リクエストタイプ別のレート制限
リクエストタイプ別のデフォルト API レート制限については、以下を参照してください。これらのデフォルトの制限は、リクエストに応じて増加できます。詳細については、カスタマーサクセスマネージャーにお問い合わせください。
レート制限の異なるリクエスト
レート制限を共有するリクエスト
以下のリクエストには、1時間あたり250,000件のレート制限があり、リクエスト間で共有されます。
/app_group/sdk_authentication/create/app_group/sdk_authentication/keys/app_group/sdk_authentication/delete/app_group/sdk_authentication/primary/campaigns/details/campaigns/list/campaigns/trigger/send(非ブロードキャストコールのみ—external_user_idsまたはaliasesを指定するコール)/campaigns/trigger/schedule/create/campaigns/trigger/schedule/delete/campaigns/trigger/schedule/update/canvas/data_series/canvas/data_summary/canvas/details/canvas/list/canvas/trigger/send(非ブロードキャストコールのみ)/canvas/trigger/schedule/create/canvas/trigger/schedule/delete/canvas/trigger/schedule/update/content_blocks/create/content_blocks/info/content_blocks/list/content_blocks/update/email/blocklist/email/blacklist/email/bounce/remove/email/hard_bounces/email/spam/remove/email/status/email/unsubscribes/events/data_series/kpi/dau/data_series/kpi/mau/data_series/kpi/new_users/data_series/kpi/uninstalls/data_series/messages/live_activity/start/messages/live_activity/update/messages/send(非ブロードキャストコールのみ)/messages/schedule/create/messages/schedule/delete/messages/schedule/update/messages/scheduled_broadcasts/segments/data_series/segments/details/segments/list/sends/data_series/sessions/data_series/sms/invalid_phone_numbers/sms/invalid_phone_numbers/remove/subscription/status/get/subscription/user/status/templates/email/create/templates/email/info/templates/email/list/templates/email/update/users/export/global_control_group/users/export/segment
同一のユニークオーディエンスとしてカウントされる条件
これは以下の3つのエンドポイントに適用されます:/messages/send、/campaigns/trigger/send、および /canvas/trigger/send。
これらのエンドポイントにおいて、以下の条件がすべて一致する場合、ブロードキャストリクエストは同一のユニークオーディエンスを対象としていると見なされます:
- トリガーされるキャンペーンまたはキャンバス(API リクエスト内の
campaign_idまたはcanvas_id(指定されている場合)) - 対象とするオーディエンス(セグメントやフィルター、あるいは API キャンペーンの場合は API リクエスト内の
segment_id) - 接続されたオーディエンスフィルター(API リクエスト内の
audienceオブジェクト(指定されている場合))
これらの属性のユニークな組み合わせはそれぞれが独立したオーディエンスとしてカウントされるため、各ユニークオーディエンスに対する追加のレート制限は、それぞれの組み合わせに対して個別に適用されます。
API リクエストのバッチ処理
Braze の API は、バッチ処理をサポートするように構築されています。バッチ処理により、Braze は1回の API コールで可能な限り多くのデータを取り込むことができるため、多数の API コールを行う必要がなくなります。Braze にとって、データを一度に1コールずつ処理するよりも、バッチで処理する方が効率的です。例えば、1,000件のバッチ API コールを処理する場合、75,000回の個別のコールを処理する場合よりも必要なリソースが少なくなります。1時間あたり75,000回を超えるコールが必要なアプリケーションでは、バッチ処理は非常に重要です。
REST API のレート制限の増加は、API バッチ処理機能を利用しているお客様のニーズに基づいて検討されます。
ユーザー追跡エンドポイントへのリクエストのバッチ処理
/users/track の各リクエストには、attributes、events、purchases を合わせて最大75個のオブジェクトを含めることができます。各オブジェクトは1人のユーザーを更新できます。単一のユーザープロファイルを複数のオブジェクトによって更新することもできます。
レガシーレート制限
レガシーレート制限が適用されているお客様の場合、各配列(attributes、events、purchases)にはそれぞれ独立して最大75個のオブジェクトを含めることができ、1リクエストあたり最大225個のオブジェクトを組み合わせることができます。
/users/track のレート制限の詳細については、POST: ユーザーの作成と更新を参照してください。
このエンドポイントへのリクエストは通常、以下の順序で処理が開始されます:
- 属性
- イベント
- 購入
メッセージングエンドポイントリクエストのバッチ処理
メッセージングエンドポイントへの単一のリクエストは、次のいずれかに到達できます:
- それぞれに個別のメッセージパラメーターを持つ、最大50個の特定の
external_ids segment_idで指定される、Braze ダッシュボードで作成された任意のサイズのセグメント- リクエストの中で接続オーディエンスオブジェクトとして定義された、任意のサイズの追加オーディエンスフィルターに一致するユーザー
バッチリクエストの例
以下の例では、external_id を使って、メールと SMS の API コールを1回で行っています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/v2/subscription/status/set' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"subscription_groups":[
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
}
]
}
レート制限の監視
Braze に送信されたすべての API リクエストは、レスポンスヘッダーに以下の情報を返します:
| ヘッダー名 | 説明 |
|---|---|
X-RateLimit-Limit |
指定された間隔内に実行できるリクエストの最大数(レート制限)。 |
X-RateLimit-Remaining |
現在のレート制限期間内に残っているリクエストの数。 |
X-RateLimit-Reset |
現在のレート制限期間がリセットされる時刻(UTC エポック秒)。 |
この情報は、Braze ダッシュボードではなく、API リクエストに対するレスポンスのヘッダーに意図的に含まれています。これにより、お客様のシステムは API とのやり取り中にリアルタイムでより適切に対応できます。例えば、X-RateLimit-Remaining の値がある閾値を下回った場合、すべてのトランザクションメールが確実に送信されるように送信速度を落とすことができます。あるいは、ゼロに達した場合は、X-RateLimit-Reset で指定された時間が経過するまですべての送信を一時停止することもできます。
HTTP ヘッダーはすべて小文字で返されます。この動作は、すべてのヘッダーフィールド名を小文字にすることを義務付けた HTTP/2 プロトコルに準拠しています。これは、HTTP/1.X ではヘッダー名の大文字小文字は区別されないものの、一般的にさまざまな大文字表記で記述されていたのとは異なります。
API の制限についてご質問がある場合は、カスタマーサクセスマネージャーにお問い合わせいただくか、サポートチケットを開いてください。
API 使用状況ダッシュボードを使用すると、受信トラフィックをレート制限と比較して確認できます。
エンドポイント間の最適な遅延
エラーを最小限に抑えるため、連続するエンドポイントコールの間に5分間の遅延を設けることを推奨します。
Braze API を連続して呼び出す場合は、エンドポイント間の最適な遅延を理解することが重要です。エンドポイントが他のエンドポイントの正常な処理に依存している場合、呼び出しが早すぎるとエラーが発生する可能性があります。例えば、/user/alias/new エンドポイントを通じてユーザーにエイリアスを割り当て、そのエイリアスを使用して /users/track エンドポイントを通じてカスタムイベントを送信する場合、どのくらい待つべきでしょうか?
通常の状態では、データの結果整合性が達成されるまでの時間は10〜100ミリ秒(1/10秒)です。しかし、整合性の達成に時間がかかる場合もあるため、エラーの確率を最小限にするために、後続のコールの間に5分間の遅延を設けることを推奨します。
レート制限のリセット
レート制限は、ローリングウィンドウではなく、時計の正時にリセットされます。例えば、制限が1時間あたり250,000リクエストの場合、午後10時00分から午後10時59分の間に50,000リクエストを行い、午後11時00分から午後11時59分の間にさらに250,000リクエストを行うことができます。これは、カウンターが毎時の正時にリセットされるためです。
GitHub でこのページを編集