L’SDK Unolink
I link ti dicono chi ha toccato. L’SDK ti dice cosa è successo dopo: installazioni, onboarding, visualizzazioni del paywall, registrazioni, prove e acquisti, per link e per campagna. Su Android apre anche la tua app sulla schermata giusta dopo un’installazione da un link.
È open source, si aggiunge in circa cinque minuti ed è disponibile dal piano Pro in su.
- Android: Kotlin o Java, Android 6.0+.
- iOS: Swift o Objective-C, iOS 13+.
- React Native ed Expo: React Native 0.79+, dev build di Expo.
- Flutter: Flutter 3.22+, Android e iOS.
Codice sorgente: github.com/unolink-dev/unolink-sdk.
Avvio rapido
Scegli la tua piattaforma. Segui i passaggi da solo, oppure copia un unico prompt nel tuo assistente di programmazione AI. Nella dashboard (la tua app → SDK), gli stessi passaggi contengono la tua chiave vera e il controllo di stato diventa verde quando arriva la tua prima installazione. Qui mostra una demo.
ulk_…dalla tua app → ImpostazioniPassaggio 1: Installa il pacchetto
app/build.gradle.kts → dependencies { }Maven Central è già presente in ogni nuovo progetto Android, quindi basta questa riga. Poi sincronizza Gradle.
dependencies {DocumentazioneGuida all’installazione per AndroidPassaggio 2: Avvialo con la tua chiave
La tua classe Application → onCreate()Configura una sola volta, prima che venga eseguito qualsiasi altro codice. Non hai ancora una classe Application? Crea questa e aggiungi android:name=".MyApp" a <application> in AndroidManifest.xml.
class MyApp : Application() { override fun onCreate() { super.onCreate() Unolink.configure(this, "ulk_…") } }Passaggio 3: Segna i passaggi del tuo funnel
Una riga in ogni momento importante. Diventano i passaggi del tuo Funnel e dei tuoi Percorsi.
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 RevenueCatChiamataPassaggio del funnelQuandoonboardingStep(step)Scheda OnboardingQuando appare ogni schermata di onboarding (non sul suo pulsante). Mostra in quale schermata le persone abbandonano. Gratis: non conta nei tuoi eventi SDK.onboardingCompleted()OnboardingSubito dopo l’ultima schermata di onboarding, prima del paywall o della registrazione che seguepaywallViewed(placement)PaywallOgni volta che appare un paywall. Placement indica quale ("onboarding", "settings"…)signUp(method)RegistrazioneSubito dopo la creazione di un nuovo accountsignIn(method)Di ritornoQuando qualcuno accede a un account che aveva già (SDK 0.3.0+)signUpSkipped()Continuato come ospiteQuando qualcuno tocca «continua come ospite» invece di creare un account (SDK 0.3.2+)connectRevenueCat { } / setUserId(id)Collega acquistiCon RevenueCat: connectRevenueCat, una volta all’avvio (SDK 0.3.2+), tiene aggiornato l’app user ID di RevenueCat, ospiti compresi. Altrimenti setUserId con il tuo ID utente, null al logoutUsi RevenueCat? Collegalo in Impostazioni → RevenueCat, chiama connectRevenueCat invece di setUserId (SDK 0.3.2+) e salta le chiamate per prove e acquisti. Prove, acquisti, rinnovi e rimborsi arrivano da soli.Passaggio 4: Apri i deep link dei tuoi link
La tua prima Activity, o dove gestisci la navigazioneQuando qualcuno installa da un link che ha un deep link, Unolink te lo passa alla prima apertura. Mandalo direttamente lì.
Unolink.setDeferredDeepLinkListener { link -> // link.deepLink = "/promo/3for2", link.params["offer"] = "3for2" navigate(link.deepLink) Unolink.consumeDeferredDeepLink() }DocumentazioneDeep link differiti su AndroidPassaggio 5: Verifica che funzioni
Esegui una build di debug su un telefono o un emulatore e apri l’app una volta. Entro pochi secondi il controllo diventa verde.
- Le build di debug e gli emulatori contano come dispositivi di test: attiva Includi dispositivi di test in Funnel e Percorsi per vederli.
- Non vedi nulla? Configura con
UnolinkOptions(logLevel = LogLevel.DEBUG)e cercaUnolinknei log.
Come funziona
- Crei una chiave SDK nella dashboard: la tua app → Impostazioni → Chiavi SDK → Nuova chiave. La chiave è pubblica: viene distribuita dentro la tua app e può solo inviare dati per quell’unica app.
- Al primo avvio l’SDK crea un ID di installazione casuale e registra l’installazione. Su Android legge anche il referrer di installazione di Google Play, che dice da quale link Unolink è arrivata l’installazione.
- La tua app chiama una riga a ogni passaggio del funnel: onboarding finito, paywall mostrato, account creato. L’SDK aggiunge da solo tre eventi: prima apertura, inizio sessione e app in background.
- Gli eventi aspettano sul dispositivo e partono in piccoli lotti in background. Sei offline? Aspettano e riprovano. L’SDK non blocca mai la tua app e non lancia mai eccezioni.
Dove compaiono i dati
Apri la tua app nella dashboard:
- Funnel: quante installazioni hanno raggiunto ogni passaggio, per link. Crea tutti i funnel che vuoi (Nuovo funnel), ognuno con i suoi passaggi; Percorsi mostra quello che scegli.
- Percorsi: ogni installazione come codice anonimo, dal link che l’ha portata all’acquisto. Filtra per piattaforma, sorgente ed esito, oppure tocca un passaggio per vedere solo le persone che l’hanno raggiunto. Un punto verde mostra chi è nell’app in questo momento (attivo negli ultimi 5 minuti), con il totale in alto.
- Report: cosa funziona, dove si perdono persone e cosa provare dopo. Regole fisse sui tuoi numeri; ogni risultato mostra come è stato calcolato.
Le build di debug, le build TestFlight e Xcode, le build Android installate da Android Studio o adb, le installazioni che hanno fatto un acquisto sandbox e le build che segni come test sono dispositivi di test. Restano nascosti finché non attivi Includi dispositivi di test. Vedi Test.
Acquisti
Se la tua app usa RevenueCat, collegalo e non inviare acquisti dall’app: RevenueCat riporta da solo
prove, acquisti, rinnovi, cancellazioni e rimborsi. Riporta l’app user ID di RevenueCat (anche per gli
ospiti), così vengono collegati all’installazione giusta: connectRevenueCat lo fa in una riga (SDK 0.3.2 o
successivo), oppure chiama setUserId con esso.
Senza RevenueCat, chiama tu trialStarted e purchase. Vedi Eventi.
Privacy
- Niente fingerprinting, niente IDFA o Google Advertising ID, nessuna richiesta di App Tracking Transparency.
- Gli indirizzi IP non vengono mai salvati. Il paese viene ricavato dall’edge della rete.
- I tuoi ID utente vengono salvati solo come hash unidirezionale, diverso per ognuna delle tue app.
- Nell’etichetta privacy dell’App Store, i dati dell’SDK sono analisi, non collegate all’identità. Il pacchetto iOS include un privacy manifest.
Non mettere mai nomi, email o altri dati personali nelle proprietà degli eventi.
Piani e limiti
L’SDK fa parte dei piani Pro e Studio. Gli eventi automatici (prima apertura, inizio sessione, app in background), le schermate di onboarding e gli acquisti in arrivo da RevenueCat sono gratuiti. Ogni altro evento inviato dalla tua app, standard o personalizzato, conta nella quota mensile di eventi: 1 milione con Pro, 5 milioni con Studio.