Branch.io é uma plataforma comercial de deep linking e atribuição que fornece uma infraestrutura de links unificada para aplicativos móveis em iOS e Android. De acordo com Branch Documentation, a plataforma rastreia o ciclo completo de interação do usuário desde o clique no link até a ação alvo no aplicativo. Deep linking no Branch.io funciona em todas as plataformas com suporte a deep linking diferido e atribuição de instalações.
Pontos Principais
Branch.io é uma plataforma que combina deep linking, atribuição de instalações móveis e análise de marketing em uma única solução. Permite que desenvolvedores e profissionais de marketing criem links inteligentes que direcionam o usuário para o aplicativo ou página web dependendo da plataforma, status da instalação e outros parâmetros. Além disso, o Branch vincula automaticamente cada instalação à sua fonte de origem.
A plataforma foi fundada em 2014 e é uma das líderes no mercado de medição móvel (MMP) juntamente com AppsFlyer e Adjust. A principal vantagem do Branch é a integração completa de deep linking e atribuição em um único SDK, eliminando a necessidade de usar soluções separadas para links e análises.
Firebase Dynamic Links é um serviço gratuito com funcionalidade básica, enquanto Branch.io é uma plataforma comercial com atribuição avançada que suporta mais de 50 integrações com redes de anúncios. O Branch fornece análises completas para cada ponto de contato do usuário, incluindo modelos de atribuição de último clique, primeiro clique e multitoque.
Branch.io fornece um amplo conjunto de ferramentas para trabalhar com links móveis. As principais capacidades incluem Deepview — uma prévia do conteúdo do aplicativo no navegador web antes da instalação, geração automática de Universal Links para iOS e App Links para Android, e suporte a programas de referência com recompensas.
A plataforma também suporta Journeys — um construtor visual de funis de engajamento que mostra ao usuário um banner convidando a instalar o aplicativo ao visitar um site móvel. Journeys pode ser configurado sem programação através da interface web do Branch e suporta teste A/B de criativos.
| Função | Descrição | Aplicação |
|---|---|---|
| Deep Linking | Links inteligentes com suporte diferido | Navegar para o conteúdo |
| Attribution | Atribuição de instalações e eventos | Análise de marketing |
| Journeys | Banners web para instalação | Aquisição de usuários |
| Deepview | Prévia do aplicativo no navegador | Demonstração de conteúdo |
| Segments | Segmentação de usuários | Personalização |
A atribuição de instalações no Branch funciona vinculando o identificador de clique (click ID) ao identificador do dispositivo no primeiro lançamento do aplicativo. Quando um usuário clica em um link Branch, o sistema gera um identificador único e o armazena no navegador ou na área de transferência do sistema. Após a instalação e o primeiro lançamento, o SDK do Branch lê este identificador e vincula a instalação à fonte do clique.
O Branch suporta atribuição de acordo com vários modelos. A atribuição de último clique determina a última fonte de clique antes da instalação como a causa. A atribuição multitoque distribui o valor da instalação entre todos os pontos de contato do usuário de acordo com pesos especificados. A plataforma também suporta atribuição view-through para impressões de anúncios sem clique.
Branch integra-se com mais de 50 plataformas de publicidade, incluindo Facebook Ads, Google Ads, TikTok Ads e Snapchat. Cada integração usa os mecanismos de atribuição nativos da rede de anúncios para máxima precisão. A configuração é feita através do Dashboard do Branch sem necessidade de modificar o código do aplicativo após a integração inicial do SDK.
A integração do SDK Branch em um aplicativo iOS começa instalando o pacote via CocoaPods, SPM ou Carthage. Após a instalação, o SDK deve ser inicializado com a chave do aplicativo do Dashboard Branch no método didFinishLaunchingWithOptions do AppDelegate. O SDK registra automaticamente os Universal Links para o domínio Branch.
Para que os deep links funcionem corretamente, é necessário configurar Associated Domains nas Xcode Capabilities com uma entrada como applinks:bnc.lt. O Branch também suporta URL Scheme como fallback caso os Universal Links não funcionem em uma versão específica do iOS. Todo o processamento de links recebidos ocorre automaticamente através do SDK sem necessidade de escrever um manipulador personalizado.
Exemplo de inicialização do SDK Branch no AppDelegate com Swift. O SDK inicia uma sessão ao iniciar o aplicativo e processa automaticamente todos os deep links.
import BranchSDK
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions
launchOptions: [UIApplication
.LaunchOptionsKey: Any]?
) -> Bool {
Branch.getInstance()
.initSession(launchOptions: launchOptions)
return true
}
}
O método initSession inicia uma sessão Branch e verifica automaticamente se há um deep link recebido. O resultado é tratado através do BranchDelegate ou de um completion handler. O SDK Branch determina automaticamente se o link foi aberto a partir de uma inicialização a frio ou de um aplicativo já em execução.
No Android, a integração Branch começa adicionando a dependência no build.gradle e especificando a chave do aplicativo no AndroidManifest.xml. O Branch usa um Intent Filter para receber deep links, que é adicionado automaticamente através do plugin Gradle durante a compilação. O SDK também registra um BroadcastReceiver para obter dados de referência após a instalação e suporta o gerenciamento automático da API Install Referrer para atribuição precisa da fonte.
Para atribuição correta de instalações do Google Play, o Branch usa a API Install Referrer, que fornece informações sobre a fonte da instalação mesmo que o usuário não tenha clicado em um link. Em dispositivos sem Google Play Services, um BroadcastReceiver de referência é usado.
Exemplo de inicialização do SDK Branch no MainActivity com Kotlin e tratamento de dados recebidos de deep link.
class MainActivity : AppCompatActivity() {
override fun onStart() {
super.onStart()
Branch.getInstance()
.initSession { params, error ->
if (error == null) {
val data = params.optString(
"$deeplink_path", ""
)
navigateToScreen(data)
}
}
}
}
O completion handler no método initSession retorna um JSONObject com parâmetros do deep link e um erro. O parâmetro $deeplink_path contém o caminho alvo, e os parâmetros restantes são passados em um formato arbitrário definido ao criar o link no Dashboard Branch. O tratamento é realizado no onStart para operação correta ao reiniciar a Activity e ao fazer transição de outro aplicativo.
O Dashboard Branch fornece relatórios visuais de todas as métricas principais: cliques em links, instalações, conversões, receita e retenção. Os dados estão disponíveis em tempo real com a capacidade de exportar para CSV e integrar com sistemas de análise externos via API.
A plataforma suporta Eventos personalizados que o aplicativo envia ao Branch através do SDK. Cada evento pode conter metadados arbitrários: valor da compra, categoria do produto, nível do usuário. O Branch vincula automaticamente os eventos à fonte de instalação, permitindo avaliar o ROI de cada canal de marketing.
O Dashboard Branch inclui vários relatórios predefinidos — Summary, Sources, Cohorts e Funnels. Summary mostra uma visão geral de instalações e cliques, Sources detalha por canal, Cohorts rastreia a retenção de usuários por dia, e Funnels constrói funis de conversão com base em eventos especificados. Todos os relatórios suportam filtragem por data, plataforma, país e campanha publicitária.
Para análise mais detalhada, o Branch fornece a Export API, que permite exportar dados brutos de cliques e instalações para sistemas de análise próprios. A API suporta filtragem por intervalo de tempo, tipo de evento e fonte. A exportação está disponível nos formatos CSV e JSON com a capacidade de agendar exportações automáticas via webhook.
O Segment Builder no Dashboard Branch permite criar segmentos dinâmicos de usuários com base em qualquer conjunto de eventos e atributos. Por exemplo, pode-se criar um segmento de usuários que instalaram o aplicativo a partir de uma campanha publicitária específica e fizeram uma compra dentro de 7 dias. Os segmentos são atualizados em tempo real e estão disponíveis para exportação ou integração via API. O Branch também suporta exportações anônimas agregadas — resumos anonimizados de segmentos para enviar a redes de anúncios e otimizar a segmentação.
Perguntas Frequentes
Branch oferece um plano gratuito com limite no número de eventos por mês. Para uso comercial, estão disponíveis planos pagos com atribuição expandida, eventos ilimitados e suporte prioritário. Os preços variam de $500 a vários milhares de dólares por mês.
A principal diferença é que o Branch combina deep linking e atribuição em um único SDK, enquanto o AppsFlyer foca apenas na atribuição. O Branch também fornece Deepview e Journeys que não estão disponíveis no AppsFlyer. A escolha depende das necessidades do projeto.
Sim, o Branch fornece SDKs para React Native, Flutter, Unity, Cordova e Xamarin. Todos os SDKs multiplataforma suportam o conjunto completo de funcionalidades: deep linking, atribuição, análise de eventos e Journeys.
Branch suporta totalmente ATT no iOS 14+. O SDK solicita permissão de rastreamento através do diálogo padrão. Se o usuário recusar, Branch usa SKAdNetwork para atribuição sem IDFA, preservando a precisão ao nível da campanha.
Sim, os links Branch funcionam corretamente em navegadores web. No desktop, o link abre a URL especificada; em dispositivos móveis, abre o aplicativo ou uma página de fallback. Branch também suporta Quick Links para sites sem instalação do SDK.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também