Saltar al contenido

Crecer

Enlaces profundos

Un enlace profundo abre una pantalla concreta dentro de tu app instalada, como un reto, una invitación de referido o una página de producto. Si la app no está instalada, el visitante va a la tienda, igual que con tu enlace inteligente. Los enlaces profundos están disponibles en Pro, Studio y De por vida. Universal Links y Android App Links también necesitan un dominio personalizado, que forma parte de Studio.

Cómo funciona un enlace profundo

Añade /open/ y la ruta dentro de la app a tu enlace inteligente. La cadena de consulta también se transmite:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
VisitanteQué ocurre
iPhone o iPad, con un esquema de URL de iOS configurado Una página breve intenta abrir habitly://challenges/30-days?ref=newsletter. Si la app no está instalada, el visitante continúa al App Store.
Android o Huawei, con un nombre de paquete configurado Una página breve abre un intent de Android para la misma ruta, limitado a tu paquete. Chrome abre la app si está instalada y, si no, sigue el destino alternativo a Google Play.
Teléfono o tableta, sin ajustes de enlace profundo para su plataforma Se redirige directamente al destino alternativo.
Equipos de escritorio y bots Se redirigen al enlace inteligente, conservando la cadena de consulta.

El destino alternativo es el lugar al que tu enlace inteligente enviaría ese dispositivo, según tus reglas de redirección, con las etiquetas UTM reenviadas. Si esa plataforma no tiene enlace de tienda, el destino alternativo es la página de destino. Si los enlaces profundos no están configurados en absoluto, o el plan no los incluye, todos los visitantes se redirigen al enlace inteligente.

Las rutas pueden contener letras, números y los caracteres / _ - . ~ %. Los demás caracteres se eliminan, así que codifica con porcentaje cualquier otro carácter, como los espacios (%20).

Configurar

Abre la pestaña Enlaces profundos de la app y completa los campos de las plataformas que admites:

CampoEjemploSe usa para
Esquema de URL de iOShabitly://Abrir la app desde la página de redirección en iPhone y iPad
Team ID de AppleA1B2C3D4E5Universal Links. El ID de 10 caracteres que aparece en Membership details de tu cuenta de Apple Developer.
Bundle ID de iOScom.habitly.appUniversal Links
Nombre del paquete de Androidcom.habitly.appAbrir la app en dispositivos Android y Huawei
Esquema de AndroidhabitlyEl esquema que gestiona tu intent filter
Huellas de certificado SHA-25614:6D:E9:83:...:44:E5Android App Links. Añade una o varias, separadas por comas, espacios o saltos de línea.
Esquema de Android: configúralo con el esquema personalizado que registra tu app, como habitly. Si lo dejas vacío, se usa https y la primera parte de la ruta se convierte en el host (https://challenges/30-days). Eso solo funciona si tu intent filter lo espera así.

Registra el esquema en tu app

iOS, en Info.plist:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

Android, en AndroidManifest.xml:

<activity android:name=".MainActivity" android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="habitly" />
  </intent-filter>
</activity>

En tu app, lee la URL entrante, lleva al usuario a la pantalla correspondiente y lee los parámetros de consulta que necesites. Envía las rutas desconocidas a la pantalla de inicio, porque la gente edita las URL.

Universal Links y Android App Links

Los enlaces con esquema muestran primero una breve página de redirección, y iOS puede pedir al visitante que confirme. Los enlaces verificados se saltan ese paso: cuando la app está instalada, el sistema la abre directamente. La verificación necesita un dominio que pertenezca solo a tu app, así que funciona en tu dominio personalizado. Una vez conectado get.habitly.app, mapps.one sirve los archivos de asociación por ti:

ArchivoSe genera a partir de
https://get.habitly.app/.well-known/apple-app-site-association
(también en /apple-app-site-association)
Team ID y bundle ID de Apple
https://get.habitly.app/.well-known/assetlinks.jsonNombre del paquete de Android y huellas SHA-256

El archivo de Apple cubre todas las rutas bajo /open/:

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

El archivo de Android:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

Cada archivo devuelve "404 Not Found" hasta que sus campos sean válidos: un Team ID de 10 caracteres y un bundle ID para Apple, y un nombre de paquete con al menos una huella en el formato AA:BB:... (32 pares) para Android. Usa la huella de la clave de Play App Signing que aparece en Play Console → App integrity, y añade también tu clave de subida si pruebas compilaciones firmadas localmente. Los archivos se guardan en caché durante una hora. Apple también los guarda en caché en sus propios servidores, así que reinstala la app para probar los cambios.

Configura tu app

iOS: añade la capacidad Associated Domains con applinks:get.habitly.app.

Android: añade un intent filter verificado para tu dominio:

<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

Luego usa enlaces como https://get.habitly.app/open/challenges/30-days en tus campañas. Cuando la app no está instalada, el navegador carga la página y se ejecuta el mismo flujo de destino alternativo.

Usa tu dominio en los enlaces verificados. Los archivos de asociación solo se sirven en dominios personalizados, porque muchas apps comparten mapps.one. Los enlaces en mapps.one/habitly/open/ siguen funcionando a través de la página de redirección. Las URL de enlaces profundos que se muestran en el panel y en la API usan mapps.one, así que reemplaza el host por tu dominio cuando quieras enlaces verificados.

Estadísticas

Se cuenta una apertura en Aperturas de enlace profundo cuando un teléfono o una tableta carga una URL /open/ y mapps.one intenta abrir la app. La redirección al destino alternativo en la tienda no se cuenta una segunda vez. Los enlaces verificados que abren la app directamente nunca llegan a mapps.one, así que no se cuentan. Usa las estadísticas de tu propia app para esos casos.