Firebase Analytics vs. AppsFlyer: Qual Escolher para Seu Aplicativo?
Firebase é telemetria de produto; AppsFlyer é MMP. Quando só o primeiro basta, quando o híbrido paga UA multi-canal — e por que DAU nunca bate.
Contexto
Growth pergunta: “a gente precisa de AppsFlyer ou o Firebase já cobre?” Eng responde que o SDK do Google já está no app. Mídia olha o Meta e o TikTok e vê instalação “orgânica” no GA4. Produto abre o funil in-app e o MMP não tem a tela de onboarding.
Não é empate de features. São dois jobs. Firebase Analytics (GA4 for Apps) mede o que acontece dentro do produto. AppsFlyer — e outros MMPs — mede de onde veio o usuário pago, com regras que as redes aceitam como auditoria. Tratar um como substituto do outro é o atalho que deixa ROAS cego ou o warehouse vazio.
O cenário também mudou: ATT e o fim do identificador fácil no iOS; Privacy Sandbox no Android; e os Firebase Dynamic Links encerrados em agosto de 2025. Deep link “de graça no Firebase” não é mais opção. Este guia é a regra de decisão para PM/Growth — e o mapa que mídia e eng precisam assinar juntos.
Dois paradigmas (não um ranking)
Firebase Analytics é product analytics first-party. Eventos e user properties, retenção, integração com Remote Config, A/B e FCM. Export contínuo para BigQuery sem taxa de licença do Analytics em si. Atribuição nativa forte no Google Ads; fora disso, Meta/TikTok/Apple Search Ads costumam aparecer genéricos ou incham orgânico.
AppsFlyer é Mobile Measurement Partner. Clique/impressão → install → evento pós-install em dezenas de redes, com janelas e modelos que UA usa para CPA/ROAS. Protect360 tenta barrar fraude (TTI anômalo, hijack, farms) antes de você pagar o install. OneLink cobre deep link direto e deferred (contexto depois da loja) — o buraco que o FDL deixou.
Outros MMPs (Adjust, Branch, etc.) ocupam o mesmo assento de atribuição. A comparação aqui é Firebase vs AppsFlyer porque é o par que mais aparece na mesa brasileira: “já temos Firebase, será que precisa pagar MMP?”
O que o Firebase faz bem
- Instrumentação inicial barata:
first_open, telas,engagement_time_msec, versão do app. - Funil de produto: tutorial, paywall,
purchasein-app — no mesmo modelo de evento do GA4. - Warehouse: evento cru no BigQuery para coorte, churn, LTV se você tiver engenharia de dados.
- Operação do app: Remote Config e mensagens no mesmo ecossistema Google.
Limites que doem em UA:
- Atribuição multi-canal opaca.
- Relatórios da consola rasos até você declarar dimensão custom ou ir ao SQL.
- Sem suíte de fraude de mídia nem OneLink.
- Links dinâmicos nativos: serviço morto (FDL retorna 404). Quem ainda aponta campanha para
*.page.linkestá quebrado.
SDK no Application.onCreate() sem gate de consentimento continua sendo problema de LGPD e telemetria — Firebase “grátis” não isenta o controlador.
O que o AppsFlyer faz bem
- Fonte única de verdade para install pago em Meta, Google, TikTok, ASA, afiliados.
- Antifraude (Protect360) como linha de defesa do budget, não como “relatório depois”.
- OneLink: um URL, app instalado ou não; deferred deep link depois que o FDL sumiu.
- Export log-level (API, webhook, ETL) para cruzar com o resto do stack.
O que ele não substitui: mapa fino de telas, Remote Config, export BigQuery gratuito do Firebase, nem o modelo mental de produto. Usar só MMP e “ver o app pelo dashboard de mídia” deixa growth cego no meio do funil. Em React Native e Flutter, tela automática do Firebase mente — instrumentação no router: tagueamento RN e Flutter.
Custo: planos por conversão e contrato enterprise — consulte o vendor; não trate um preço de blog como tabela oficial.
Por que DAU e install nunca batem
Reunião clássica: AppsFlyer mostra mais usuários ativos que o Firebase (às vezes a diferença é grande). Quase nunca é “SDK mal instalado”.
- Foreground: Firebase conta ativo se houve evento com a UI visível. Init em background (push silencioso, sync) não entra. O MMP costuma contar no boot do SDK, tela ou não.
- Reinstall: MMP pode reatribuir (janela de inatividade) como nova conversão paga. Firebase reconhece returning / não dispara
first_opende novo. - Fuso e janela de atribuição diferentes entre painéis e redes.
Não force os dois números a coincidir. Defina qual ferramenta é a fonte para cada KPI: install/ROAS no MMP; DAU de produto e retenção no Firebase (ou no BQ).
Arquitetura híbrida (o padrão com UA paga)
- Clique/OneLink → AppsFlyer atribui e filtra fraude.
- No primeiro open, o app lê metadados (rede, campanha, adset, criativo) e grava user properties / parâmetros de sessão no Firebase.
- Daí em diante, telemetria de produto (onboarding, feature, receita) já nasce com canal.
- BigQuery junta evento Firebase enriquecido → LTV e retenção por campanha, sem pedir isso ao dashboard do MMP.
Sem o passo 2, você tem dois silos: mídia otimiza install; produto otimiza tela; ninguém fecha o ciclo.
Como decidir
Só Firebase faz sentido se:
- early stage, budget apertado;
- crescimento orgânico / ASO / Google Ads como canal dominante;
- prioridade é product-market fit e funil in-app, não auditoria multi-rede.
Firebase + MMP (AppsFlyer ou equivalente) quando:
- spend relevante em Meta, TikTok, ASA, afiliados;
- você precisa de ROAS auditável e antifraude;
- deep/deferred link é jornada real (e o FDL não volta).
ATT, SKAN e AdAttributionKit mudam a precisão no iOS — implementação (conversion value, postbacks, S2S) está em tracking pós-ATT. O recado de privacidade: não desenhe UA como se IDFA fosse o default; ver anonimização e privacidade.
Checklist
- Job documentado: produto no Firebase; atribuição paga no MMP (se houver UA multi-canal).
- Ninguém usa FDL /
page.linkem campanha viva. - Se há MMP: canal/campanha fluem para user properties no Firebase no primeiro open.
- KPI de DAU tem uma fonte; discrepância explicada (foreground vs init), não “bug”.
- Consent/ATT antes de ads ID e auto-collect — telemetria no app.
- BigQuery ligado se vocês vão cruzar LTV × campanha.
- Fraude: se o install pago escala, Protect360 (ou equivalente) não é “nice to have”.
- Preço do MMP revisado no contrato, não copiado de comparativo antigo.
Próximo passo
A escolha errada não é “pagar AppsFlyer”. É achar que o Firebase atribui TikTok, ou que o MMP substitui o funil de produto. Com UA paga, o desenho é híbrido; com orgânico e Google, Firebase aguenta o começo.
Se o app já tem os dois SDKs e os números brigam toda segunda, o trabalho é mapa de ownership + passagem de campanha para o Firebase — não mais um dashboard.
Se quiser, partimos do seu stack (Firebase só vs Firebase + MMP) e fechamos: o que cada time olha, o que para de ser “orgânico misterioso” e o que precisa de evento in-app de verdade. Mapa de eventos para AEO/VO nas redes: eventos in-app para campanhas de install.