El SDK de Unolink

Los enlaces te dicen quién tocó. El SDK te dice qué pasó después: instalaciones, onboarding, vistas del paywall, registros, pruebas y compras, por enlace y campaña. También abre tu app en la pantalla correcta después de una instalación desde un enlace, en Android.

Es de código abierto, se añade en unos cinco minutos y está disponible en el plan Pro y superiores.

Código fuente: github.com/unolink-dev/unolink-sdk.

Inicio rápido

Elige tu plataforma. Sigue los pasos tú mismo o copia un solo prompt en tu asistente de programación con IA. Dentro del panel (tu app → SDK), los mismos pasos llevan tu clave real y la comprobación de estado se pone en verde cuando llega tu primera instalación. Aquí se reproduce una demo.

Android 6.0+ (minSdk 23)Lenguaje Kotlin o JavaDesde Maven CentralTu clave ulk_…de tu app → Ajustes
  1. Paso 1: Instala el paquete

    app/build.gradle.kts → dependencies { }

    Maven Central ya está en todo proyecto nuevo de Android, así que basta con esta línea. Después sincroniza Gradle.

    dependencies {
        
  2. Paso 2: Inícialo con tu clave

    Tu clase Application → onCreate()

    Configura una vez, antes de que se ejecute cualquier otra cosa. ¿Aún no tienes clase Application? Crea esta y añade android:name=".MyApp" a <application> en AndroidManifest.xml.

    class MyApp : Application() {
        override fun onCreate() {
            super.onCreate()
            Unolink.configure(this, "ulk_…")
        }
    }
  3. Paso 3: Marca los pasos de tu embudo

    Una línea en cada momento importante. Se convierten en los pasos de tu Embudo y tus Recorridos.

    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)Pestaña OnboardingCuando aparece cada pantalla de onboarding (no en su botón). Muestra en qué pantalla se van las personas. Gratis: no cuenta en tus eventos del SDK.
    onboardingCompleted()OnboardingJusto después de la última pantalla de onboarding, antes del paywall o el registro que le sigue
    paywallViewed(placement)PaywallCada vez que aparece un paywall. La ubicación indica cuál ("onboarding", "settings"…)
    signUp(method)RegistroJusto después de crear una cuenta nueva
    signIn(method)RecurrentesCuando alguien inicia sesión en una cuenta que ya tenía (SDK 0.3.0+)
    signUpSkipped()Siguió como invitadoCuando alguien toca «continuar como invitado» en vez de crear una cuenta (SDK 0.3.2+)
    connectRevenueCat { } / setUserId(id)Une comprasCon RevenueCat: connectRevenueCat, una vez al abrir la app (SDK 0.3.2+), mantiene al día el ID de usuario de app de RevenueCat, invitados incluidos. En otro caso, setUserId con tu propio ID de usuario, null al cerrar sesión
    ¿Usas RevenueCat? Conéctalo en Ajustes → RevenueCat, llama a connectRevenueCat en lugar de setUserId (SDK 0.3.2+) y omite las llamadas de prueba y compra. Las pruebas, compras, renovaciones y reembolsos llegan solos.
  4. Paso 4: Abre los deep links de tus enlaces

    Tu primera Activity, o donde navegues

    Cuando alguien instala desde un enlace que tiene un deep link, Unolink te lo pasa en la primera apertura. Llévalo directamente allí.

    Unolink.setDeferredDeepLinkListener { link ->
        // link.deepLink = "/promo/3for2", link.params["offer"] = "3for2"
        navigate(link.deepLink)
        Unolink.consumeDeferredDeepLink()
    }
  5. Paso 5: Comprueba que funciona

    Ejecuta una build de depuración en un teléfono o emulador y abre la app una vez. En unos segundos la comprobación se pone en verde.

    • Las builds de depuración y los emuladores cuentan como dispositivos de prueba: activa Incluir dispositivos de prueba en Embudo y Recorridos para verlos.
    • ¿No aparece nada? Configura con UnolinkOptions(logLevel = LogLevel.DEBUG) y busca Unolink en los registros.
Qué pasa después de publicarla
Esperando tu primera instalación…
Instalaciones0
Onboarding0
Paywall0
Registro0
Prueba0

Cómo funciona

  1. Creas una clave del SDK en el panel: tu app → Ajustes → Claves del SDK → Nueva clave. La clave es pública: va dentro de tu app y solo puede enviar datos de esa app.
  2. En el primer inicio, el SDK crea un ID de instalación aleatorio y registra la instalación. En Android también lee el referrer de instalación de Google Play, que dice de qué enlace de Unolink vino la instalación.
  3. Tu app llama a una línea en cada paso del embudo: onboarding terminado, paywall mostrado, cuenta creada. El SDK añade tres eventos por su cuenta: primera apertura, inicio de sesión de uso y app en segundo plano.
  4. Los eventos esperan en el dispositivo y salen en pequeños lotes en segundo plano. ¿Sin conexión? Esperan y lo reintentan. El SDK nunca bloquea tu app y nunca lanza excepciones.

Dónde aparecen los datos

Abre tu app en el panel:

  • Embudo: cuántas instalaciones llegaron a cada paso, por enlace. Crea tantos embudos como quieras (Nuevo embudo), cada uno con sus propios pasos; Recorridos muestra el que elijas.
  • Recorridos: cada instalación como un código anónimo, desde el enlace que la trajo hasta la compra. Filtra por plataforma, origen y resultado, o toca un paso para ver solo a las personas que llegaron a él. Un punto verde muestra quién está en la app ahora mismo (activo en los últimos 5 minutos), con el total arriba.
  • Informe: qué funciona, por dónde se pierde gente y qué probar después. Reglas fijas sobre tus propios números; cada hallazgo muestra cómo se calculó.

Las builds de depuración, las de TestFlight y Xcode, las de Android instaladas desde Android Studio o adb, las instalaciones que hicieron una compra sandbox y las builds que marques como de prueba son dispositivos de prueba. Están ocultos hasta que activas Incluir dispositivos de prueba. Consulta Pruebas.

Compras

Si tu app usa RevenueCat, conéctalo y no envíes compras desde la app: RevenueCat informa por sí mismo de pruebas, compras, renovaciones, cancelaciones y reembolsos. Informa del propio ID de usuario de app de RevenueCat (también para invitados), para que se unan a la instalación correcta: connectRevenueCat lo hace en una línea (SDK 0.3.2 o posterior), o llama a setUserId con él.

Sin RevenueCat, llama tú mismo a trialStarted y purchase. Consulta Eventos.

Privacidad

  • Sin fingerprinting, sin IDFA ni Google Advertising ID, sin aviso de App Tracking Transparency.
  • Las direcciones IP nunca se guardan. El país viene del borde de la red.
  • Tus IDs de usuario solo se guardan como un hash unidireccional que es distinto para cada una de tus apps.
  • En la etiqueta de privacidad del App Store, los datos del SDK son analíticas, no vinculadas a la identidad. El paquete de iOS incluye un manifiesto de privacidad.

Nunca pongas nombres, correos ni otros datos personales en las propiedades de los eventos.

Planes y límites

El SDK forma parte de los planes Pro y Studio. Los eventos automáticos (primera apertura, inicio de sesión de uso, app en segundo plano), las pantallas de onboarding y las compras que llegan de RevenueCat son gratis. Cualquier otro evento que envía tu app, estándar o personalizado, cuenta para el cupo mensual de eventos: 1 millón en Pro, 5 millones en Studio.