Pular para o conteúdo

Crescer

Deep links

Um deep link abre uma tela específica dentro do seu app instalado, como um desafio, um convite de indicação ou a página de um produto. Se o app não estiver instalado, o visitante vai para a loja, exatamente como acontece com o seu link inteligente. Deep links estão disponíveis nos planos Pro, Studio e Vitalício. Universal Links e Android App Links também precisam de um domínio personalizado, que faz parte do Studio.

Como um deep link funciona

Adicione /open/ e o caminho dentro do app ao seu link inteligente. A query string também é repassada:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
VisitanteO que acontece
iPhone ou iPad, com um esquema de URL do iOS definido Uma página curta tenta abrir habitly://challenges/30-days?ref=newsletter. Se o app não estiver instalado, o visitante segue para a App Store.
Android ou Huawei, com um nome de pacote definido Uma página curta abre uma intent do Android para o mesmo caminho, limitada ao seu pacote. O Chrome abre o app se ele estiver instalado e, caso contrário, segue o destino alternativo para o Google Play.
Celular ou tablet, sem configurações de deep link para a plataforma dele Redirecionado direto para o destino alternativo.
Computadores e bots Redirecionados para o link inteligente, com a query string mantida.

O destino alternativo é para onde o seu link inteligente enviaria aquele dispositivo, seguindo as suas regras de redirecionamento, com as tags UTM repassadas. Se essa plataforma não tiver link da loja, o destino alternativo é a página de destino. Se os deep links não estiverem configurados ou se o plano não os incluir, todos os visitantes são redirecionados para o link inteligente.

Os caminhos podem conter letras, números e os caracteres / _ - . ~ %. Outros caracteres são removidos, então use codificação percentual para todo o resto, como espaços (%20).

Configuração

Abra a aba Deep links do app e preencha os campos das plataformas que você oferece:

CampoExemploUsado para
Esquema de URL do iOShabitly://Abrir o app a partir da página de redirecionamento no iPhone e no iPad
Team ID da AppleA1B2C3D4E5Universal Links. O ID de 10 caracteres que aparece em Membership details na sua conta Apple Developer.
Bundle ID do iOScom.habitly.appUniversal Links
Nome do pacote Androidcom.habitly.appAbrir o app em dispositivos Android e Huawei
Esquema do AndroidhabitlyO esquema que o seu intent filter trata
Impressões digitais de certificado SHA-25614:6D:E9:83:...:44:E5Android App Links. Adicione uma ou mais, separadas por vírgulas, espaços ou quebras de linha.
Esquema do Android: defina-o como o esquema personalizado que o seu app registra, como habitly. Se você deixar em branco, será usado https e a primeira parte do caminho vira o host (https://challenges/30-days). Isso só funciona se o seu intent filter estiver preparado para esse formato.

Registre o esquema no seu app

iOS, no Info.plist:

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

Android, no 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>

No seu app, leia a URL recebida, direcione para a tela correspondente e leia os parâmetros de consulta de que você precisar. Envie caminhos desconhecidos para a tela inicial, porque as pessoas editam URLs.

Universal Links e Android App Links

Links com esquema mostram primeiro uma página curta de redirecionamento, e o iOS pode pedir que o visitante confirme. Links verificados pulam essa etapa: quando o app está instalado, o sistema o abre diretamente. A verificação precisa de um domínio que pertença só ao seu app, então ela funciona no seu domínio personalizado. Assim que get.habitly.app estiver conectado, o mapps.one serve os arquivos de associação para você:

ArquivoGerado a partir de
https://get.habitly.app/.well-known/apple-app-site-association
(também em /apple-app-site-association)
Team ID da Apple e bundle ID
https://get.habitly.app/.well-known/assetlinks.jsonNome do pacote Android e impressões digitais SHA-256

O arquivo da Apple cobre todos os caminhos em /open/:

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

O arquivo do 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 arquivo retorna "404 Not Found" até que os campos dele sejam válidos: um Team ID de 10 caracteres e um bundle ID para a Apple, e um nome de pacote com pelo menos uma impressão digital no formato AA:BB:... (32 pares) para o Android. Use a impressão digital da chave do Play App Signing em Play Console → App integrity, e adicione também sua chave de upload se você testa builds assinados localmente. Os arquivos ficam em cache por uma hora. A Apple também os armazena em cache nos próprios servidores, então reinstale o app para testar alterações.

Configure seu app

iOS: adicione a capability Associated Domains com applinks:get.habitly.app.

Android: adicione um intent filter verificado para o seu domínio:

<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>

Depois, use links como https://get.habitly.app/open/challenges/30-days nas suas campanhas. Quando o app não está instalado, o navegador carrega a página e o mesmo fluxo de destino alternativo é executado.

Use seu domínio nos links verificados. Os arquivos de associação só são servidos em domínios personalizados, porque mapps.one é compartilhado por muitos apps. Os links em mapps.one/habitly/open/ continuam funcionando por meio da página de redirecionamento. As URLs de deep link exibidas no painel e na API usam mapps.one, então troque o host pelo seu domínio quando quiser links verificados.

Análises

Uma abertura é contada em Aberturas de deep link quando um celular ou tablet carrega uma URL /open/ e o mapps.one tenta abrir o app. O redirecionamento para a loja não é contado uma segunda vez. Links verificados que abrem o app diretamente nunca chegam ao mapps.one, então não são contados. Use as análises do seu próprio app para esses casos.