Skip to main content

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

OptionDescriptionDefaultRange
apiKeyRequired. Your B2Metric API key.--
batchSizeNumber of events to batch before sending.201-100
flushIntervalSecondsTime in seconds between automatic flushes.301-3600
maxRetriesMaximum retry attempts for failed requests.31-10
assumedSessionTimeInMinutesSession timeout duration in minutes.301-10080
b2MetricAnalyticsLogLevelLogging 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
)