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()
support@braze.com に連絡する際は、使用しているネットワーキング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 でこのページを編集