AndroidAndroid Deep linkingApp LinksDeep linkingDiferidos Deep LinkingLinks UniversaisPerspectivas da Indústria

Links Universais, Esquemas de URI, App Links e Deep Links: Qual é a diferença?

By outubro 30, 2017 No Comments

Deep Links, Links Universais, Esquemas de URI/URL e App Links mudaram o mundo dos links para conteúdos dentro dos aplicativos móveis consideravelmente nos últimos anos. Isso deixou muitos desenvolvedores de aplicativos confusos sobre qual tecnologia implementar e qual é a melhor prática do setor para cada uma.

Além disso, o cenário de deep linking móvel ainda é um espaço que está evoluindo rapidamente. O que funcionava um ano atrás não é necessariamente a melhor abordagem hoje, se é que ainda é possível. Com anos de artigos desatualizados e informações equivocadas, é hora de esclarecer enganos e fornecer uma visão nova no mundo do deep linking móvel.

O que é Deep Linking?

Primeiro, vamos falar sobre a terminologia principal: deep linking é apenas um conceito. Nós usamos deep links todos os dias na verdade, você provavelmente clicou em um para chegar a esta publicação. O termo significa apenas qualquer link que vai direto para um determinado conteúdo. Ao clicar em um URL como http://exemplo.com/minha-pagina-de-conteudo-incrível, você não espera ser levado para http://exemplo.com/ e ser forçado a navegar pelo site para encontrar minha-pagina-de-conteudo-incrivel novamente. Colocando de outra forma, a maioria dos links na web, na verdade, são deep links, mas não os chamamos assim. Para nós, eles são apenas links.

Deep linking em aplicativos móveis é muito mais complicado, mas deep links móveis ainda são a melhor maneira de dar aos usuários do aplicativo uma experiência de conteúdo consistente. Links Universais, Esquemas de URI e App Links são os vários padrões de tecnologia que fazem os deep links móveis funcionar, permitindo que você traga o usuário diretamente a conteúdo dentro de um aplicativo. Caso queira compartilhar uma página dentro de um aplicativo móvel com um amigo, um deep link trará seu amigo para a página correta. Sem um deep link, seu amigo teria dificuldades para encontrar a página correta sozinho, e geralmente se encontraria na app store (apesar de o aplicativo estar instalado) ou no site móvel.

O processo de implementar deep links móveis evoluiu ao longo dos anos, e, tanto o Android quando o iOS já ofereceram suas próprias soluções. Isso confundiu a comunidade de desenvolvimento, forçando até engenheiros com experiência a atualizar seus links em situações de crise, e confundiu os novos engenheiros sobre o melhor caminho para a implementação de deep links em seu aplicativo.

Aqui está a explicação detalhada de vários padrões de deep link móvel que são usados atualmente:

Mobile Deep Link Standards

Observação: iOS e Android, juntos,  controlam 99,3% do mercado móvel. Por conta disso, a Branch oferece suporte muito limitado a outras plataformas, e estão omitidas aqui para fins de simplificação.

É claro que nenhum desses padrões é compatível com todas as plataformas ou versões de sistema operacional:

OS Version of Deep Linking

O Facebook merece um reconhecimento especial por inventar um padrão de deep linking open-source que mostrou ter futuro, e depois abandoná-lo:

Facebook App Links

Vamos investigar cada um desses padrões em mais detalhes.

O que são esquemas de URI? Eles são diferentes de URLs?

Se você quiser iniciar uma revolta em uma sala cheia de engenheiros, você pode debater sobre usar a tecla tab ou espaços para indentação de código. Ou você pode confundir URI com URL. Há dissertações sobre isso, mas para o nosso objetivo basta, lembrar que todas as URLs também são URIs. A parte importante é a parte no começo: o esquema. Você já está familiarizado com os esquemas http:// e https://. Você pode até ter encontrado ftp:// ou feed://. Todos eles indicam o tipo de conteúdo que está sendo requisitado, e seu aplicativo móvel pode registrar seu próprio esquema de URI personalizado. Por exemplo, myapp://.

Caso esteja pesquisando sobre deep links, você provavelmente já se deparou com conteúdo significativo sobre esquemas de URI. Durante a maior parte da história de desenvolvimento de aplicativos, os esquemas de URI foram o método principal de fazer deep linking em aplicativos, tanto em iOS quanto em Android.

Limitações de esquemas de URI

As limitações de esquemas de URI Infelizmente, há desvantagens significativas na personalização de esquemas de URI, mais notavelmente a inabilidade de lidar facilmente com essas duas situações:

  1. Quando o aplicativo não está instalado.
  2. Quando mais de um aplicativo tenta reinvindicar myapp://.

Os esquemas de URI não têm a opção de fallback, o que significa que, caso um usuário não tenha o aplicativo instalado ao clicar em um link compartilhado por um amigo, eles simplesmente verão uma página de erro. Também não há um sistema de registro central, o que significa que colisões de URI podem acontecer (a posição oficial da Apple é que não há processos atualmente). Muitos desenvolvedores criaram soluções para o primeiro problema usando redirecionamentos complicados em JavaScript, mas isso tendia a quebrar com cada nova versão do iOS. Uma solução para o segundo problema provavelmente nunca existirá.

Por conta dessas limitações, tanto o iOS quanto o Android desenvolveram padrões de deep linking como Links Universais e App Links, respectivamente. A Apple bloqueou, desde então, a abordagem de redirecionamento para esquemas de URI, tornando os Links Universais essenciais para deep linking em iOS. Os App Links tiveram bem menos adoção.

Como os Links Universais e App Links se diferenciam

Ao contrário dos esquemas de URI, que são tipos de conteúdo exclusivos para o seu aplicativo, os Links Universais e App Links são apenas links da web comuns (https://exemplo.com) que levam tanto para a página da web quanto para um determinado conteúdo dentro de um aplicativo. Quando o Link Universal ou App Link abrir, o dispositivo verifica para ver se algum dispositivo instalado está registrado nesse domínio. Caso esteja, o aplicativo é iniciado imediatamente sem abrir a página web. Caso não esteja, o URL da web (que pode ser um simples redirecionamento para a App Store ou Play Store) é carregado no navegador padrão.

Se estiver envolvido com medições e análises, você pode notar um problema aqui: o aplicativo é aberto imediatamente significa que os métodos tradicionais de rastreamento tanto para web quanto para e-mail de marketing, que são baseados em cadeias de redirecionamento, não funcionam mais. Isso pode ser um grande problema, e tanto os Links Universais quanto os App Links atualmente não têm nenhuma solução. Sua única opção é medir de forma retroativa depois que o aplicativo seja aberto.

Links Universais são o padrão atual no iOS, mas há algumas desvantagens

Os Links Universais não são, de fato, universais. Em grandes plataformas, como o Facebook e o Twitter, os Links Universais não são suportados, e o botão bonitinho no canto direito superior não dá dicas do que é, essencialmente, uma opção nuclear. Tornando incrivelmente fácil para um visitante desabilitar os Links Universais sem perceber. Se isso for feito, é extremamente improvável que um usuário típico saiba como reverter o processo, levando-os a presumir que seu aplicativo quebrou.

Yelp Screenshot

Para piorar, a implementação dos Links Universais foi extremamente mal sucedida, e testá-los é desafiador, pois a Apple nem mesmo fornece uma ferramenta de validação.

Os esquemas de URL/URI estão obsoletos?

De acordo com a Apple, sim. A partir do iOS 9.2, a Apple não oferece mais suporte oficialmente aos esquemas de URI para deep linking, e os desenvolvedores foram forçados a implementar Links Universais para conseguir uma funcionalidade equivalente no iOS.

Na realidade, ainda não. Os Links Universais são ótimos quando funcionam, mas ainda há muitos locais onde você precisa usar esquemas de URI como back up, e você deixa uma quantia significativa de tráfego na mesa se confiar neles exclusivamente. O ecossistema do Android é muito fragmentado para até mesmo considerar abandonar os esquemas de URI em qualquer momento no futuro próximo.

Deep Links diferidos

Há mais um conceito importante que ainda não discutimos: o deep linking diferido. Deep links comuns sejam implementados por meio de esquemas de URI, Links Universais ou App Links só funcionam se o aplicativo já estiver instalado no dispositivo. Caso não estejam, eles podem no máximo enviar seus usuários para a App Store ou Play Store. Mas e se você quiser enviar os usuários ao local correto dentro do aplicativo, mesmo se eles tiverem que instalá-lo primeiro? Os deep links diferidos permitem que isso aconteça, mantendo o contexto de um determinado conteúdo durante o processo de instalação, levando o usuário para o local correto depois da instalação.

Outros padrões de Deep Linking

Você também pode se deparar com outros dois padrões menos comuns de deep link: Chrome Intents e Facebook App Links.

Chrome Intents

A equipe do Chrome criou sua própria extensão para personalizar esquemas de URI, com a intenção de fornecer um comportamento de fallback quando o aplicativo não estiver instalado. Apesar de ser uma solução elegante para o problema subjacente, os Chrome Intents são apenas compatíveis com a versão Android do navegador Chrome e com mais alguns aplicativos de terceiros. Isso significa uma adição de complexidade para cada implementação de deep linking, pois agora você precisa apoiar tanto as tecnologias padrão quanto a alternativa específica do Chrome.

Facebook App Links

O Facebook criou o App Links em 2014 como um padrão aberto para resolver as limitações dos deep links do esquema de URI. Os App Links têm dois componentes principais:

  1. Um conjunto de meta tags para adicionar à página web de destino de um link padrão http://. Essas tags especificam o local do esquema de URI personalizado do conteúdo correspondente dentro do aplicativo nativo, e o comportamento que deve ocorrer se o aplicativo não estiver instalado.
  2. Um mecanismo de roteamento para uso dentro dos aplicativos que suportam a abertura de links. Esse mecanismo verifica o URL de destino para as tags de App Links antes de abri-lo, e então inicia o aplicativo correspondente ou executa o comportamento de fallback especificado.
Facebook App Links

http://applinks.org/documentation/

Os App Links têm um limite crítico: eles precisam de trabalho tanto dos aplicativos de origem quanto dos de destino. Enquanto o componente das meta tags teve uma adoção ampla, as únicas implementações grandes da ferramenta de roteamento foram nos aplicativos do Facebook e Messenger. O Facebook agora prefere manter os usuários dentro de sua plataforma, e removeu a ferramenta de roteamento do App Links de todos os lugares, exceto do aplicativo principal para Android. Como o Facebook também bloqueia Links Universais do iOS, isso não deixa uma maneira confiável de abrir aplicativos de terceiros a partir do Facebook ou do Messenger no iOS. A Branch has implementou uma solução para ajudar a superar essas limitações.

Links Universais, Esquemas de URI e Deep Links em 2017

O cenário do deep linking nos aplicativos móveis ainda é incrivelmente fragmentado. Ainda não estamos nem perto de ter um padrão para todo o setor. No entanto, isso não é desculpa para fornecer uma experiência ruim aos seus clientes.

Major Non-Browser Mobile Channels

Você precisa de deep links e de todos os padrões diferentes para consegui-los. Os deep links diferidos da Branch são oferecidos por esquemas de URI, Links Universais, App Links, Chrome Intents e Facebook App Links. Incluímos todos eles para que você não tenha que fazer isso.

Está interessado em implementar deep links que lidam com todos esses padrões diferentes e fornecem análises unificadas e dados de atribuição sem nenhum trabalho adicional de sua parte? Clique no botão abaixo para começar.