このページはAIにより自動翻訳されており、不正確な内容が含まれている可能性があります。翻訳の誤りを報告するには、 GitHubでイシューを作成してください.
Braze SDK のレート制限
Braze SDK のインテリジェントなクライアントサイドレート制限について説明します。バッテリー寿命の最適化、帯域幅の使用量の削減、信頼性の高いデータ配信を実現します。
SDK のレート制限を理解する
Braze SDK のレート制限は、以下の機能を用いてパフォーマンスを最適化し、バッテリー消費を最小限に抑え、データ使用量を削減し、信頼性の高いデータ配信を確保します。
非同期処理
Braze SDK はレート制限にトークンバケットアルゴリズムを使用します。この手法は、長期的なレートコントロールを維持しながら、アクティビティのバーストを可能にします。トークンバケットは、リクエストを厳密なキューで処理する代わりに、非同期的に動作します。
- トークン生成: トークンはバケットに一定の速度で補充されます。
- リクエスト処理: トークンが利用可能な時点で到着した SDK 呼び出しは、他の呼び出しがいつ到着したかに関係なく、直ちに処理されます。
- 厳密な順序付けなし: リクエストは順番待ちをしません。複数の呼び出しが次の利用可能なトークンを競い合うことがあります。
- バースト処理: リクエスト時に十分なトークンが利用可能であれば、短時間のアクティビティバーストが許可されます。
- レートコントロール: 長期的なスループットは、安定したトークンの補充レートによって制限されます。
この非同期フローにより、SDK は利用可能なネットワーク容量に素早く対応しつつ、予測可能な全体的なトラフィックレベルを維持できます。
適応型レート制限
Braze SDK は、ネットワークインフラを保護し最適なパフォーマンスを維持するために、リアルタイムでレート制限を調整できます。このアプローチにより、以下が実現されます。
- 過負荷の防止: ネットワークの混雑を避けるために制限を調整します。
- パフォーマンスの最適化: さまざまな条件下でも SDK の円滑な動作を維持します。
- 条件への適応: 現在のネットワーク状況と使用パターンに基づいて適応します。
note:
制限はリアルタイムで適応するため、正確なバケットサイズや静的な値は提供されません。ネットワークの状況や使用状況によって変わる可能性があります。
ネットワークの最適化
Braze SDK には、効率を向上させ、バッテリー消費を抑え、さまざまなネットワーク環境に対応するための組み込み機能がいくつか含まれています。
- 自動バッチ処理: イベントをキューに入れ、効率的なバッチで送信します。
- ネットワークを意識した動作: 接続品質に基づいてフラッシュレートを調整します。
- バッテリー最適化: 無線の起動とネットワーク呼び出しを最小限に抑えます。
- グレースフルデグラデーション: ネットワーク状態が悪い場合でも機能を維持します。
- バックグラウンド/フォアグラウンドの認識: アプリのライフサイクルの変化に応じて動作を最適化します。
ベストプラクティス
レート制限の問題を避けるために、以下のベストプラクティスに従ってください。
| 推奨 | 非推奨 |
|---|---|
| 意味のあるユーザーアクションとマイルストーンをトラッキングする | あらゆる些細なインタラクションや UI イベントをトラッキングする |
| 必要な場合にのみコンテンツを更新する | ユーザーアクション(スクロールイベントなど)のたびにコンテンツを更新する |
| SDK にバッチ処理を自動的に行わせる | (どうしても必要な場合を除き)データの即時送信を強制する |
| 分析に価値をもたらすイベントに焦点を当てる | 頻度を考慮せずに SDK メソッドを連続して呼び出す |
ヘルプを利用する
SDK のレート制限の問題が発生している場合は、以下のネットワーク関連メソッドを確認してください。
requestImmediateDataFlush()requestContentCardsRefresh()refreshFeatureFlags()logCustomEvent()logPurchase()
Braze サポートに連絡する際は、使用している各ネットワーク SDK メソッドについて以下の詳細を記載してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
Method name:
Frequency:
[Describe how often this is called, e.g., at every app launch, once per session]
Trigger/context:
[Describe what causes it to be called, e.g., button click, scroll event]
Code snippet:
[Paste the exact code where this method is called, one snippet for each time it is called]
Patterns in user flow that may cause bursts or excessive calls:
[Describe here]
New Stuff!
GitHub でこのページを編集