Ferramentas de desenvolvimentoGoogleTécnico

A Branch é uma subsituição do Firebase Dynamic Links?

By outubro 30, 2017 No Comments

Se você já tentou criar algo além de um aplicativo muito básico, você provavelmente sentiu a necessidade de um backend. Você provavelmente descobriu, então, que projetar e manter um backend não é uma tarefa fácil. Aí entram as plataformas BaaS (Backend as a Service, ou backend como serviço) como o Firebase e o Parse , que mudam o cenário para os desenvolvedores que querem se concentrar em criar um aplicativo.

Google adquiriu o Firebase em 2014 e, desde então, ele evoluiu de um simples fornecedor de BaaS para uma plataforma completa de App as a Service, ou aplicativo como serviço, com um pacote de novas ferramentas para criar e fazer o aplicativo crescer. Para os desenvolvedores, isso é uma notícia fantástica: agora é mais fácil do que nunca fazer o MVP funcionar. Como muitos de nós da equipe Branch somos engenheiros para dispositivos móveis, achamos muito empolgante o potencial do conjunto de ferramentas do Firebase, e recomendamos altamente olhar para ele como uma maneira de dar impulso aos novos projetos.

Claro, também há um lado negativo: essas novas ferramentas estão competindo em verticais de serviços que já viram mais de quatro anos de inovação e avanço de produto. Acreditamos que o Google teve os olhos maiores que a barriga ao tentar lançar quase uma dúzia ao mesmo tempo. O resultado é que muitos desses novos componentes são casos clássicos de parece ser muita coisa, mas na verdade não é nada. Pode ser difícil saber quando você cresceu o suficiente para precisar de algo mais poderoso, e as falhas podem não ser muito óbvias até que seja tarde, depois de você já ter criado a parte principal de seu aplicativo no topo da plataforma.

Na Branch, resolver o problema de descoberta do aplicativo por meio de melhores links é nosso foco há três anos, o que significa que lidamos com mais deep links de aplicativos do que qualquer outra pessoa no mundo (300 milhões por dia, em dezembro de 2016). Com isso em mente, vamos dar uma olhada mais de perto no módulo Firebase Dynamic Links e ver como ele se compara com a plataforma de links da Branch. Também vamos mostrar como é fácil implementar Branch em vez do Dynamic Links, caso você precise de mais potência, enquanto ainda utiliza o restante das ferramentas do Firebase.

Firebase Dynamic Links

A equipe do Firebase escreveu uma publicação no blog sobre Dynamic Links que resume o problema central que estão tentando resolver: fazer links com o conteúdo dentro dos aplicativos é difícil. A publicação continua identificando alguns dos requisitos chave que se aplicam a qualquer sistema de links para aplicativos móveis:

  • Inicie o aplicativo, caso esteja instalado, e leve os usuários diretamente para o conteúdo
  • Faça o roteamento para a App/Play Store se não estiver instalado e leve os usuários para o conteúdo após o download
  • Capture os dados de análise e de rastreamento

O Dynamic Links cumpre esses requisitos básicos. Ou pelo menos um número suficiente deles para lhe dar uma ideia do potencial do deep linking. No entanto, este é um dos componentes Firebase mais novos e menos desenvolvidos, e você rapidamente ficará sem bateria se quiser fazer qualquer coisa mais avançada.

Dynamic Links != Links hospedados pela Branch

Os requisitos acima são os mesmos que identificamos quando começamos a criar a Branch em 2014. Eles são o centro de um serviço de deep link de sucesso e a base de tudo o que a Branch criou, à medida que nos tornamos a infraestrutura de links para os melhores aplicativos do mundo. Mas o problema está nos detalhes. Como desenvolvedor, o que você pode fazer, de fato, com esses links?

 

Dynamic Links Branch
Gerar links dentro do aplicativo X X
Gerar links usando um dashboard online X X
URLs de link sem spam X
Parâmetros de dados personalizados e flexíveis por link   X* X
Fazer o roteamento para conteúdo específico, mesmo se o aplicativo não estiver instalado X X
Resposta de dados de link padronizados em formato JSON   X
Atribuição de instalação pela primeira vez   X
Garantir precisão de correspondência durante a primeira instalação   X
Identificar os usuários exclusivos (para indicações, etc.)   X
Suporte técnico líder do setor apoiado por SLA X
Tratamento abrangente de casos extremos (incluindo Facebook e e-mail) X


* Deve ser codificado manualmente como parte do URL do link

Um exemplo prático

Parece bom na teoria, mas e se quisermos implementar uma funcionalidade de deep link equivalente em um simples aplicativo do iOS, como nosso aplicativo Branch Room Maps app? Vamos comparar os códigos diretamente.

Primeiro, precisamos iniciar uma sessão e gerenciar os links recebidos. Usando o Firebase é assim:

E o mesmo acontece implementando com a Branch:

Como você pode ver, bem parecido até agora. A maioria das coisas são um pouco mais simples do lado da Branch, mas nada com que um bom programador não saiba lidar..

Em seguida, vamos criar alguns links. Primeiro o Firebase:

Agora com a Branch:

Repetindo, um pouco mais de trabalho manual no código para o Firebase, apesar de a real diferença ser os URLs do link em si (links marcados realmente importam).

Mas, mais importante, o que você pode fazer, de fato, com esses links, quando eles são usados? Aqui estão os dados obtidos das declarações de despejo no AppDelegate:

Firebase:

url: https://branch.io/room?roomID=PineCone

Branch:

+click_timestamp: 1482541476
+clicked_branch_link: 1
+is_first_session: 0
+match_guaranteed: 1
+referrer: https://www.google.com/
+phone_number: //only returned when link is SMSed from desktop to mobile
~creation_source: 3
~referring_link: https://branchmaps.app.link/D1PpymBZlz
~feature: sharing
~channel: Pasteboard
~id: 341010052121261919
$one_time_use: 0
$og_title: Pine Cone
$identity_id: 339834809826614244
$canonical_identifier: room/PineCone
$publicly_indexable: 1
$exp_date: 0
room_name: Pine Cone

Aqui, as duas plataformas não são nem próximas. A Branch lhe dá uma longa lista de parâmetros contextuais úteis, incluindo a detecção de instalação (+is_first_session) e precisão de correspondência (+match_guaranteed). A detecção de instalação é crítica para experiências de criação, como onboarding personalizado, e precisão de correspondência permite que o deep linking personalize o conteúdo com a confiança de que você tem o usuário correto, o que a Branch faz melhor do que ninguém no ecossistema.

Na verdade, alguns dos clientes confiam tanto em nossa precisão que usam links Branch para conectar os usuários automaticamente na primeira vez em que abrem o aplicativo.

O Firebase retorna um URL simples bruto.

E é aqui que o Dynamic Links termina. Eles enviam os seus usuários para onde você quer (na maioria das vezes, se você não encontrar muitos casos extremos) e rastreiam os cliques, mas não muito mais que isso. Por outro lado, a Branch está apenas começando. Para nós, um sistema sólido de deep link é apenas a estrutura na qual se deve construir todo o restante:

  • Banners inteligentes Journeys: o banner inteligente de aplicativos flexível mais poderoso disponível.
  • Deepviews: aumente a conversão dando aos usuários uma prévia do conteúdo dentro de seu aplicativo antes do download.
  • E-mail com deep link: adicione deep links automaticamente aos seus e-mails de marketing.
  • Indicações: rastreie indicações e dê créditos aos seus usuários.
  • Integrações de dados: automaticamente envia os dados de análise do seu link para ferramentas externas.
  • Me envie o aplicativo por mensagem: permita que os visitantes em computadores desktop enviem a si mesmos um link de download via SMS.
  • Análise abrangente: rastreie os cliques no seu link, instalações, conteúdo com melhor desempenho, usuários mais valiosos e mais.

Além disso, já que também somos desenvolvedores de aplicativos e programadores, entendemos como é importante obter ajuda quando você precisa. Monitoramos todas as perguntas no StackOverflow com a tag Branch.io, e nossa equipe de integrações oferece suporte gratuito e ilimitado para TODOS os parceiros.

Como conseguir o melhor dos dois mundos

A melhor parte é a seguinte: você não tem que escolher. O Firebase é implementado como uma série de SDKs independentes e modulares. Você tem que adicionar outro SDK para implementar Dynamic Links de qualquer forma, então é tão fácil quanto usar a Branch. Na verdade, provavelmente é mais fácil! Você pode ter todos os benefícios da plataforma AssA do Firebase, e a flexibilidade e poder do sistema de deep linking móvel mais avançado do mundo.