Android SDK
Kotlin · Android 8+ · Jetpack Compose
Overview
The Avafli Engagement SDK lets you add daily-entry sweepstakes and prize experiences to your app with a single configuration call. The SDK automatically opens the experience on the first app-open of each day, captures the user, and claims their daily entries — no scheduling or session logic on your side. You customize your logo, prize image, and brand color from the Avafli dashboard; everything else is managed server-side.
Requirements
| Android | 8.0+ (API 26) |
| Kotlin | 2.1+ |
| Jetpack Compose | BOM 2024.12.01+ |
| Publisher API Key | Contact info@avafli.com |
Installation
Gradle (via JitPack)
Add JitPack to your project-level settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}Add the dependency to your app-level build.gradle.kts:
dependencies {
implementation("com.github.AVAFLI:avafli_android_sdk:v3.0.0")
}Quick Start
The simplest integration requires just two calls:
import com.avafli.avaflisdk.Avafli
import com.avafli.avaflisdk.AvafliConfiguration
import com.avafli.avaflisdk.AvafliOptions
import com.avafli.avaflisdk.AvafliUser
val config = AvafliConfiguration(
context = applicationContext,
apiKey = "YOUR_API_KEY", // debug builds: use your avafli_test_ sandbox key
user = AvafliUser(
id = "user_123", // only id is required — pass whatever identity you have
firstName = "Jane",
lastName = "Doe",
email = "jane@example.com" // include it when you have it — pre-fills & locks the capture form
),
// Nobody signed in? use user = AvafliUser.GUEST
options = AvafliOptions(
debugLogging = false, // true while integrating
enablePushReminders = true // streak reminders via YOUR Firebase project
)
)
Avafli.configure(config)
// Done — the experience auto-opens once per day.
// Push reminders: forward your FCM token: Avafli.onNewToken(token)
The experience opens itself on the first app-open of each day — there is no manual launch API. Presentation timing, the daily cadence, and dismissal are fully managed by the SDK.
Push Notifications
Drive re-engagement with daily reminders. Forward your FCM token to the SDK:
class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
AvafliPushNotificationManager.instance.didReceiveRegistrationToken(token)
}
}Upload your FCM service account key via the Avafli Dashboard to enable push notifications.
Testing? Your dashboard also shows a avafli_test_ sandbox key. Use it in debug builds: identical behavior against the production backend, but users and entries land in an isolated sandbox — your testers can never enter your real giveaway.
SDK Features
Full API Reference & Code Examples
View the complete documentation on GitHub including API reference, code examples, and advanced configuration.