Skip to main content

Stringboot includes a native A/B testing engine that allows you to test different string variations without changing your code.

How It Works

1

Assignment

The SDK generates a unique Device ID and assigns the user to an experiment variant (e.g., “Control”, “Variant A”).
2

Delivery

When you request a string (e.g., StringProvider.get("cta_button")), the SDK automatically returns the text for the assigned variant.
3

Tracking

You log the assignment to your analytics provider to track conversion.

Setup

No additional code is required to run the experiment. The SDK handles variant delivery automatically. To track the experiment, follow these steps:
1

Implement Analytics Handler

Create a class implementing StringbootAnalyticsHandler. Choose your analytics provider below:
class MyAnalyticsHandler : StringbootAnalyticsHandler {
    override fun onExperimentAssigned(assignment: ExperimentAssignment) {
        Firebase.analytics.logEvent("experiment_assigned") {
            param("experiment_key", assignment.experimentKey)
            param("variant_name", assignment.variantName)
            param("string_key", assignment.stringKey)
        }
    }

    override fun onExperimentViewed(experimentKey: String, variantName: String) {
        Firebase.analytics.logEvent("experiment_viewed") {
            param("experiment_key", experimentKey)
            param("variant_name", variantName)
        }
    }
}
2

Register Handler

Pass the handler during initialization:
StringProvider.initialize(
    context = this,
    cacheSize = 1000,
    analyticsHandler = MyAnalyticsHandler()
)

Debugging Experiments

You can check the current experiment assignments for debugging purposes:
val experiments = StringProvider.getActiveExperiments()
experiments.forEach { exp ->
    Log.d("Stringboot", "Experiment: ${exp.experimentKey}, Variant: ${exp.variantName}")
}