Installation
Requirements
- Minimum Android SDK: API 24 (Android 7.0)
- Gradle: 7.0+
- Kotlin: 1.5.0+
Add Dependency
Add the B2Metric SDK to your app's build.gradle:
Groovy:
dependencies {
implementation 'com.b2metric:analytics-sdk:1.0.1'
}
Kotlin DSL:
dependencies {
implementation("com.b2metric:analytics-sdk:1.0.1")
}
Add Permissions
Add required permissions to AndroidManifest.xml:
<!-- Required -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Optional (for location tracking) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Initialize the SDK
Initialize the SDK in your Application class's onCreate() method:
import com.b2metric.core.B2MetricSDK
import com.b2metric.core.domain.model.B2MetricAnalyticsConfig
import com.b2metric.core.utilty.B2MetricAnalyticsLogLevel
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
B2MetricSDK.getInstance(this).start(
B2MetricAnalyticsConfig(
apiKey = "YOUR_API_KEY",
batchSize = 20,
flushIntervalSeconds = 30,
b2MetricAnalyticsLogLevel = B2MetricAnalyticsLogLevel.DEBUG
)
)
}
}
Register your Application class in AndroidManifest.xml:
<application
android:name=".MyApplication"
...>
</application>
Configuration Options
| Option | Description | Default | Range |
|---|---|---|---|
apiKey | Required. Your B2Metric API key. | - | - |
batchSize | Number of events to batch before sending. | 20 | 1-100 |
flushIntervalSeconds | Time in seconds between automatic flushes. | 30 | 1-3600 |
maxRetries | Maximum retry attempts for failed requests. | 3 | 1-10 |
assumedSessionTimeInMinutes | Session timeout duration in minutes. | 30 | 1-10080 |
b2MetricAnalyticsLogLevel | Logging level. | OFF | - |
Example Configurations
Development:
B2MetricAnalyticsConfig(
apiKey = "YOUR_DEV_API_KEY",
batchSize = 1, // Send immediately
flushIntervalSeconds = 5,
b2MetricAnalyticsLogLevel = B2MetricAnalyticsLogLevel.DEBUG
)
Production:
B2MetricAnalyticsConfig(
apiKey = "YOUR_PROD_API_KEY",
batchSize = 50,
flushIntervalSeconds = 60,
b2MetricAnalyticsLogLevel = B2MetricAnalyticsLogLevel.ERROR
)