De Unolink SDK
Links vertellen je wie er tikte. De SDK vertelt je wat er daarna gebeurde: installaties, onboarding, paywallweergaven, aanmeldingen, proefperiodes en aankopen, per link en campagne. Hij opent je app ook op het juiste scherm na een installatie via een link, op Android.
Hij is open source, je voegt hem in ongeveer vijf minuten toe, en hij is beschikbaar met het Pro-abonnement en hoger.
- Android: Kotlin of Java, Android 6.0+.
- iOS: Swift of Objective-C, iOS 13+.
- React Native en Expo: React Native 0.79+, Expo-dev-builds.
- Flutter: Flutter 3.22+, Android en iOS.
Broncode: github.com/unolink-dev/unolink-sdk.
Snelstart
Kies je platform. Volg de stappen zelf, of kopieer één prompt naar je AI-codeerassistent. In het dashboard (je app → SDK) bevatten dezelfde stappen je echte sleutel, en de statuscheck wordt groen zodra je eerste installatie binnenkomt. Hier speelt hij een demo af.
ulk_…uit je app → InstellingenStap 1: Installeer het pakket
app/build.gradle.kts → dependencies { }Maven Central zit al in elk nieuw Android-project, dus deze ene regel is genoeg. Synchroniseer Gradle daarna.
dependencies {Stap 2: Start hem met je sleutel
Je Application-klasse → onCreate()Configureer één keer, voordat er iets anders draait. Nog geen Application-klasse? Maak deze aan en voeg android:name=".MyApp" toe aan <application> in AndroidManifest.xml.
class MyApp : Application() { override fun onCreate() { super.onCreate() Unolink.configure(this, "ulk_…") } }Stap 3: Markeer de stappen van je funnel
Eén regel op elk moment dat ertoe doet. Dit worden de stappen in je Funnel en Trajecten.
Unolink.onboardingStep("goal") // as each onboarding screen appears Unolink.onboardingCompleted() Unolink.paywallViewed("onboarding") Unolink.signUp("email") // a new account Unolink.signIn("apple") // a returning user signed in Unolink.signUpSkipped() // "continue as guest" Unolink.connectRevenueCat { Purchases.sharedInstance.appUserID } // with RevenueCat, once Unolink.setUserId(user.id) // without RevenueCatAanroepFunnelstapWanneeronboardingStep(step)Tabblad OnboardingZodra elk onboardingscherm verschijnt (niet op de knop ervan). Laat zien op welk scherm mensen afhaken. Gratis: telt niet mee voor je SDK-events.onboardingCompleted()OnboardingDirect na het laatste onboardingscherm, vóór de paywall of aanmelding die erop volgtpaywallViewed(placement)PaywallElke keer dat er een paywall verschijnt. Placement zegt welke ("onboarding", "settings"…)signUp(method)AanmeldingDirect nadat een nieuw account is aangemaaktsignIn(method)TerugkerendAls iemand inlogt op een account dat hij al had (SDK 0.3.0+)signUpSkipped()Verder als gastAls iemand op "verder als gast" tikt in plaats van een account aan te maken (SDK 0.3.2+)connectRevenueCat { } / setUserId(id)Koppelt aankopenMet RevenueCat: connectRevenueCat, één keer bij het starten (SDK 0.3.2+), houdt de app-gebruikers-ID van RevenueCat actueel, ook voor gasten. Anders setUserId met je eigen gebruikers-ID, null bij uitloggenGebruik je RevenueCat? Verbind het onder Instellingen → RevenueCat, roep connectRevenueCat aan in plaats van setUserId (SDK 0.3.2+) en sla de aanroepen voor proefperiodes en aankopen over. Proefperiodes, aankopen, verlengingen en terugbetalingen komen vanzelf binnen.Stap 4: Open deep links uit je links
Je eerste Activity, of waar je ook navigeertAls iemand installeert via een link met een deep link, geeft Unolink die bij de eerste keer openen aan je door. Stuur ze er direct naartoe.
Unolink.setDeferredDeepLinkListener { link -> // link.deepLink = "/promo/3for2", link.params["offer"] = "3for2" navigate(link.deepLink) Unolink.consumeDeferredDeepLink() }Stap 5: Controleer of het werkt
Draai een debugbuild op een telefoon of emulator en open de app één keer. Binnen een paar seconden wordt de check groen.
- Debugbuilds en emulators tellen als testapparaten: zet Testapparaten meenemen aan in Funnel en Trajecten om ze te zien.
- Zie je niets? Configureer met
UnolinkOptions(logLevel = LogLevel.DEBUG)en zoek naarUnolinkin de logs.
Hoe het werkt
- Je maakt een SDK-sleutel in het dashboard: je app → Instellingen → SDK-sleutels → Nieuwe sleutel. De sleutel is openbaar: hij zit in je app en kan alleen gegevens voor die ene app rapporteren.
- Bij de eerste keer openen maakt de SDK een willekeurige installatie-ID aan en registreert de installatie. Op Android leest hij ook de install referrer van Google Play, die zegt via welke Unolink-link de installatie binnenkwam.
- Je app roept bij elke funnelstap één regel aan: onboarding afgerond, paywall getoond, account aangemaakt. De SDK voegt zelf drie events toe: eerste keer openen, sessiestart en app naar de achtergrond.
- Events wachten op het apparaat en gaan op de achtergrond in kleine batches de deur uit. Offline? Dan wachten ze en proberen het opnieuw. De SDK blokkeert je app nooit en gooit nooit een exception.
Waar de gegevens verschijnen
Open je app in het dashboard:
- Funnel: hoeveel installaties elke stap bereikten, per link. Maak zoveel funnels als je wilt (Nieuwe funnel), elk met eigen stappen; Trajecten toont de funnel die je kiest.
- Trajecten: elke installatie als anonieme code, van de link die hem binnenbracht tot de aankoop. Filter op platform, bron en uitkomst, of tik op een stap om alleen de mensen te zien die hem bereikten. Een groene stip laat zien wie nu in de app is (actief in de laatste 5 minuten), met het aantal bovenaan.
- Rapport: wat werkt, waar mensen weglekken en wat je hierna kunt proberen. Vaste regels op je eigen cijfers, en bij elke bevinding zie je hoe die is berekend.
Debugbuilds, TestFlight- en Xcode-builds, Android-builds die via Android Studio of adb zijn geïnstalleerd, installaties met een sandbox-aankoop en builds die je als test markeert, zijn testapparaten. Ze blijven verborgen tot je Testapparaten meetellen aanzet. Zie Testen.
Aankopen
Gebruikt je app RevenueCat, verbind het dan en stuur geen aankopen vanuit de app: RevenueCat meldt
proefperiodes, aankopen, verlengingen, opzeggingen en terugbetalingen zelf. Meld de eigen app-gebruikers-ID van RevenueCat (ook
voor gasten), zodat ze aan de juiste installatie worden gekoppeld: connectRevenueCat doet dat in één regel (SDK 0.3.2 of
nieuwer), of roep setUserId ermee aan.
Zonder RevenueCat roep je trialStarted en purchase zelf aan. Zie Events.
Privacy
- Geen fingerprinting, geen IDFA of Google Advertising ID, geen App Tracking Transparency-melding.
- IP-adressen worden nooit opgeslagen. Het land komt van de netwerkrand.
- Je gebruikers-ID’s worden alleen opgeslagen als eenrichtingshash die voor elk van je apps anders is.
- Op het privacylabel in de App Store vallen de gegevens van de SDK onder analyse, niet gekoppeld aan identiteit. Het iOS-pakket bevat een privacymanifest.
Zet nooit namen, e-mailadressen of andere persoonsgegevens in eventeigenschappen.
Abonnementen en limieten
De SDK hoort bij het Pro- en Studio-abonnement. De automatische events (eerste keer openen, sessiestart, app naar de achtergrond), onboardingschermen en aankopen uit RevenueCat zijn gratis. Elk ander event dat je app verstuurt, standaard of eigen, telt mee voor het maandelijkse eventtegoed: 1 miljoen bij Pro, 5 miljoen bij Studio.