SDK
Android SDK (Kotlin)
Native Kotlin library for creator install attribution. When the user arrives from Google Play, the click can carry a Play Install Referrer token for a deterministic match.
Prerequisites
- Android 5.0 (API 21)+, Kotlin 1.8+
INTERNETpermission in the host app- A Tap App Link SDK key from Quick start
1. Add the dependency
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
implementation("com.github.tapapplink:tapapplink-android:0.1.1")The artifact is built from https://github.com/tapapplink/tapapplink-android on JitPack (same pattern as many mobile attribution SDKs). Sync Gradle after adding the repository and dependency.
2. Configure, track, identify
Initialize as early as possible. A custom Application class is ideal. Pass Play Install Referrer into trackInstall(context, installReferrer) when you collect it.
TapAppLink.configure(
TapAppLinkConfig(
publicKey = "YOUR_TAPAPPLINK_KEY",
environment = TapAppLinkEnvironment.PRODUCTION,
)
)
TapAppLink.trackInstall(context) { }
TapAppLink.setAppUserId(Purchases.sharedInstance.appUserID) { }
val offer = TapAppLink.getOffer()3. Discount codes
TapAppLink.getOffer() after a match, TapAppLink.applyCode("SARAH10") when the user types a code. Discount codes.
SDK reference
| Method | Purpose |
|---|---|
configure | Set public key, environment, optional ingest URL. |
trackInstall() | First open. Matches a recent click in this environment. |
setAppUserId(id) | Bridge the billing customer id for webhooks. |
getOffer() | Creator discount after a match or redeem. |
applyCode(code) | Attribute from a promo code typed at checkout. |
resetForTesting() | Clear cached install state in debug builds. |
Important notes
trackInstall()is safe on every launch. It only records once per install.- Call
resetForTesting()in debug builds before repeating a match test on the same install. - Purchases are attributed through billing webhooks. Do not add a client
trackPurchase()call. - After a match or
applyCode(), presentgetOffer()on the paywall. Discount codes.