Braze 소프트웨어 개발 키트 요금 제한
배터리 수명을 최적화하고 대역폭 사용량을 줄이며 안정적인 데이터 전달을 보장하는 Braze SDK의 지능형 클라이언트 측 속도 제한 기능에 대해 알아보세요.
소프트웨어 개발 키트 속도 제한 이해하기
Braze 소프트웨어 개발 키트 속도 제한은 성능/성과를 최적화하고, 배터리 소모를 최소화하고, 데이터 사용량을 줄이고, 안정적인 데이터 전달을 보장하기 위해 다음 기능을 사용합니다:
비동기 처리
Braze 소프트웨어 개발 키트는 속도 제한을 위해 토큰 버킷 알고리즘을 사용합니다. 이 접근 방식을 사용하면 장기적인 속도 제어를 유지하면서 활동량을 폭발적으로 늘릴 수 있습니다. 토큰 버킷은 엄격한 대기줄에서 요청을 처리하는 대신 비동기적으로 작동합니다:
- 토큰 생성: 토큰은 버킷에 일정한 비율로 보충됩니다.
- 요청 처리: 토큰을 사용할 수 있을 때 도착하는 소프트웨어 개발 키트 호출은 다른 호출이 언제 도착했는지에 관계없이 즉시 진행됩니다.
- 엄격한 주문은 없습니다: 요청이 줄을 서서 기다리지 않으며, 여러 요청이 다음 사용 가능한 토큰을 놓고 경쟁할 수 있습니다.
- 버스트 처리: 요청 시점에 충분한 토큰을 사용할 수 있는 경우 짧은 시간 동안의 활동이 허용됩니다.
- 속도 제어: 장기적인 처리량은 꾸준한 토큰 보충률에 의해 제한됩니다.
이 비동기식 흐름은 소프트웨어 개발 키트가 예측 가능한 전체 트래픽 수준을 유지하면서 사용 가능한 네트워크 용량에 신속하게 대응하는 데 도움이 됩니다.
적응형 속도 제한
Braze 소프트웨어 개발 키트는 실시간으로 속도 제한을 조정하여 네트워크 인프라를 보호하고 최적의 성능을 유지할 수 있습니다. 이 접근 방식:
- 과부하를 방지합니다: 네트워크 혼잡을 피하기 위해 제한을 조정합니다.
- 성능/성과를 최적화합니다: 다양한 조건에서 원활한 소프트웨어 개발 키트 작동을 유지합니다.
- 조건에 응답합니다: 현재 네트워크 및 사용 패턴에 따라 조정됩니다.
한도는 실시간으로 조정되므로 정확한 버킷 크기와 정적 값은 제공되지 않습니다. 네트워크 상태 및 사용량에 따라 변경될 수 있습니다.
네트워킹 최적화
Braze 소프트웨어 개발 키트에는 효율성을 개선하고 배터리 사용량을 줄이며 다양한 네트워크 조건을 처리하기 위한 몇 가지 기본 제공 동작이 포함되어 있습니다:
- 자동 일괄 처리: 이벤트를 대기줄에 올려 효율적으로 일괄 전송합니다.
- 네트워크 인식 동작: 연결 품질에 따라 플러시 속도를 조정합니다.
- 배터리 최적화: 라디오 깨우기 및 네트워크 통화를 최소화합니다.
- 우아한 성능 저하: 네트워크 상태가 좋지 않을 때에도 기능을 유지합니다.
- 배경/전경 인식: 앱의 라이프사이클 변화에 따라 동작을 최적화합니다.
Best practices
요금 제한 문제를 방지하려면 다음 모범 사례를 따르세요:
| 이렇게 하세요 | 이거 말고 |
|---|---|
| 의미 있는 사용자 행동 및 마일스톤 추적 | 모든 사소한 상호작용 또는 UI 이벤트 추적 |
| 필요한 경우에만 콘텐츠 새로고침 | 모든 사용자 작업(스크롤 이벤트 등)에 대한 콘텐츠 새로고침 |
| 소프트웨어 개발 키트에서 자동으로 일괄 처리하기 | 즉시 데이터 전송 강제(꼭 필요한 경우가 아니면) |
| 분석에 가치를 더하는 이벤트에 집중하기 | 빈도를 고려하지 않고 소프트웨어 개발 키트 메서드를 빠르게 연속으로 호출합니다. |
도움 받기
소프트웨어 개발 키트 속도 제한 문제가 발생하는 경우 다음 네트워킹 방법을 검토하세요:
requestImmediateDataFlush()requestContentCardsRefresh()refreshFeatureFlags()logCustomEvent()logPurchase()
지원팀( braze.com )으로 문의할 때 사용하는 각 네트워킹 소프트웨어 개발 키트 방법에 대해 다음 세부 정보를 포함하세요:
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]
GitHub 에서 이 페이지를 편집합니다.