O SDK do Unolink
Os links dizem quem tocou. O SDK diz o que aconteceu depois: instalações, onboarding, visualizações de paywall, cadastros, testes grátis e compras, por link e campanha. Ele também abre seu app na tela certa depois de uma instalação a partir de um link, no Android.
Ele é open source, leva cerca de cinco minutos para adicionar e está disponível no plano Pro ou superior.
- Android: Kotlin ou Java, Android 6.0+.
- iOS: Swift ou Objective-C, iOS 13+.
- React Native e Expo: React Native 0.79+, dev builds do Expo.
- Flutter: Flutter 3.22+, Android e iOS.
Código-fonte: github.com/unolink-dev/unolink-sdk.
Início rápido
Escolha sua plataforma. Siga os passos você mesmo ou copie um único prompt no seu assistente de programação com IA. Dentro do painel (seu app → SDK), os mesmos passos trazem sua chave real e a verificação de status fica verde quando sua primeira instalação chegar. Aqui ela mostra uma demonstração.
ulk_…do seu app → ConfiguraçõesPasso 1: Instale o pacote
app/build.gradle.kts → dependencies { }O Maven Central já vem em todo projeto Android novo, então esta linha basta. Sincronize o Gradle depois.
dependencies {Passo 2: Inicie com sua chave
Sua classe Application → onCreate()Configure uma vez, antes de qualquer outra coisa rodar. Ainda não tem uma classe Application? Crie esta e adicione android:name=".MyApp" a <application> no AndroidManifest.xml.
class MyApp : Application() { override fun onCreate() { super.onCreate() Unolink.configure(this, "ulk_…") } }Passo 3: Marque os passos do seu funil
Uma linha em cada momento importante. Eles viram os passos do seu Funil e das suas Jornadas.
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 RevenueCatChamadaPasso do funilQuandoonboardingStep(step)Aba OnboardingQuando cada tela de onboarding aparece (não no botão dela). Mostra em qual tela as pessoas saem. Grátis: não conta nos seus eventos do SDK.onboardingCompleted()OnboardingLogo após a última tela de onboarding, antes do paywall ou do cadastro que vem depoispaywallViewed(placement)PaywallToda vez que um paywall aparece. O placement diz qual ("onboarding", "settings"…)signUp(method)CadastroLogo após uma nova conta ser criadasignIn(method)RetornoQuando alguém entra em uma conta que já tinha (SDK 0.3.0+)signUpSkipped()Seguiu como convidadoQuando alguém toca em "continuar como convidado" em vez de criar uma conta (SDK 0.3.2+)connectRevenueCat { } / setUserId(id)Liga comprasCom RevenueCat: connectRevenueCat, uma vez ao abrir o app (SDK 0.3.2+), mantém o app user ID do RevenueCat atualizado, convidados incluídos. Caso contrário, setUserId com seu próprio ID de usuário, null ao sairUsa RevenueCat? Conecte em Configurações → RevenueCat, chame connectRevenueCat em vez de setUserId (SDK 0.3.2+) e pule as chamadas de teste grátis e compra. Testes grátis, compras, renovações e reembolsos chegam sozinhos.Passo 4: Abra deep links a partir dos seus links
Sua primeira Activity, ou onde você faz a navegaçãoQuando alguém instala a partir de um link que tem deep link, o Unolink o entrega a você na primeira abertura. Leve a pessoa direto para lá.
Unolink.setDeferredDeepLinkListener { link -> // link.deepLink = "/promo/3for2", link.params["offer"] = "3for2" navigate(link.deepLink) Unolink.consumeDeferredDeepLink() }Passo 5: Verifique se funciona
Rode uma build de debug em um celular ou emulador e abra o app uma vez. Em poucos segundos a verificação fica verde.
- Builds de debug e emuladores contam como dispositivos de teste: ative Incluir dispositivos de teste em Funil e Jornadas para vê-los.
- Nada aparecendo? Configure com
UnolinkOptions(logLevel = LogLevel.DEBUG)e procure porUnolinknos logs.
Como funciona
- Você cria uma chave do SDK no painel: seu app → Configurações → Chaves do SDK → Nova chave. A chave é pública: ela vai dentro do seu app e só pode reportar dados desse app.
- Na primeira abertura, o SDK cria um ID de instalação aleatório e registra a instalação. No Android, ele também lê o referrer de instalação do Google Play, que diz de qual link do Unolink a instalação veio.
- Seu app chama uma linha em cada etapa do funil: onboarding concluído, paywall exibido, conta criada. O SDK adiciona três eventos sozinho: primeira abertura, início de sessão e app em segundo plano.
- Os eventos esperam no dispositivo e são enviados em pequenos lotes em segundo plano. Sem internet? Eles esperam e tentam de novo. O SDK nunca bloqueia seu app e nunca lança exceções.
Onde os dados aparecem
Abra seu app no painel:
- Funil: quantas instalações chegaram a cada etapa, por link. Crie quantos funis quiser (Novo funil), cada um com suas próprias etapas; Jornadas mostra o que você escolher.
- Jornadas: cada instalação como um código anônimo, do link que a trouxe até a compra. Filtre por plataforma, origem e resultado, ou toque em uma etapa para listar só as pessoas que chegaram a ela. Um ponto verde mostra quem está no app agora (ativo nos últimos 5 minutos), com o total no topo.
- Relatório: o que está funcionando, onde você está perdendo pessoas e o que testar em seguida. Regras fixas aplicadas aos seus próprios números; cada descoberta mostra como foi calculada.
Builds de depuração, builds do TestFlight e do Xcode, builds Android instaladas pelo Android Studio ou adb, instalações que fizeram uma compra sandbox e builds que você marca como teste são dispositivos de teste. Eles ficam ocultos até você ativar Incluir dispositivos de teste. Veja Testes.
Compras
Se o seu app usa RevenueCat, conecte-o e não envie compras pelo app: o RevenueCat informa
testes grátis, compras, renovações, cancelamentos e reembolsos por conta própria. Informe o próprio app user ID
do RevenueCat (também para convidados), para que elas se juntem à instalação certa: connectRevenueCat faz isso em uma
linha (SDK 0.3.2 ou posterior), ou chame setUserId com ele.
Sem RevenueCat, chame trialStarted e purchase você mesmo. Veja Eventos.
Privacidade
- Sem fingerprinting, sem IDFA nem Google Advertising ID, sem o aviso do App Tracking Transparency.
- Endereços IP nunca são armazenados. O país vem da borda da rede.
- Seus IDs de usuário são armazenados apenas como um hash de mão única, diferente para cada um dos seus apps.
- No rótulo de privacidade da App Store, os dados do SDK são análises, não vinculados à identidade. O pacote iOS inclui um manifesto de privacidade.
Nunca coloque nomes, e-mails ou outros dados pessoais nas propriedades dos eventos.
Planos e limites
O SDK faz parte dos planos Pro e Studio. Os eventos automáticos (primeira abertura, início de sessão, app em segundo plano), as telas de onboarding e as compras vindas do RevenueCat são grátis. Qualquer outro evento que seu app envia, padrão ou personalizado, conta para a cota mensal de eventos: 1 milhão no Pro, 5 milhões no Studio.