Começar

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.

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.

Android 6.0+ (minSdk 23)Linguagem Kotlin ou JavaA partir de Maven CentralSua chave ulk_…do seu app → Configurações
  1. Passo 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 {
        
  2. 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_…")
        }
    }
  3. 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 RevenueCat
    onboardingStep(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 depois
    paywallViewed(placement)PaywallToda vez que um paywall aparece. O placement diz qual ("onboarding", "settings"…)
    signUp(method)CadastroLogo após uma nova conta ser criada
    signIn(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 sair
    Usa 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.
  4. Passo 4: Abra deep links a partir dos seus links

    Sua primeira Activity, ou onde você faz a navegação

    Quando 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()
    }
  5. 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 por Unolink nos logs.
O que acontece depois que você lança
Aguardando sua primeira instalação…
Instalações0
Onboarding0
Paywall0
Cadastro0
Teste grátis0

Como funciona

  1. 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.
  2. 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.
  3. 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.
  4. 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.