O Firebase é uma plataforma, e a analítica é uma parte dela. A maior parte dos textos sobre "substituir o Firebase" quer dizer em silêncio substituir a coisa toda, que é uma decisão diferente e muito maior. Este é apenas sobre a parte da analítica: o que muda se tirares o Google Analytics for Firebase de uma aplicação, o que deves manter, e o que genuinamente não tem substituto.

Porque é que alguém vai à procura

Medir uma aplicação não devia obrigar a concordar com uma plataforma de publicidade. O Firebase Analytics guarda um identificador de instância da aplicação no dispositivo e é feito para funcionar com os identificadores de publicidade das plataformas (o identificador de publicidade do Android, o IDFA da Apple) porque a atribuição a campanhas de anúncios é grande parte daquilo para que serve. Se não fazes publicidade, andas a carregar a maquinaria à mesma.

Consentimento. Um identificador no dispositivo traz consigo um requisito de consentimento no EEE e no Reino Unido, e uma aplicação que pergunta no primeiro arranque perde uma fatia dos próprios utilizadores dos próprios números. O mesmo argumento do aviso de cookies num sítio, com uma primeira impressão pior.

O modelo de eventos. O Firebase Analytics é um sistema de eventos e parâmetros. Recompensa uma equipa que modela os eventos com cuidado e dá muito pouco a uma que não o faz, que é a maior parte das equipas durante a maior parte da vida de um produto.

Um fornecedor, uma relação. Há organizações que pura e simplesmente não podem enviar a utilização de uma aplicação para a Google. É um facto de aquisições e não um argumento, e é a razão por que uma boa parte de quem está a ler isto está a lê-lo.

O que um SDK de aplicação que põe a privacidade primeiro envia em vez disso

A pergunta útil não é "é privado" mas "o que vai na carga". Os SDK de aplicação da Skomi enviam:

  • o nome de ecrã que lhe deste, as tuas propriedades, e se abriu a sessão
  • a plataforma, a versão do sistema operativo, e se o dispositivo é móvel ou de secretária
  • a versão da aplicação que passaste, e que versão do SDK a enviou
  • quando aconteceu segundo o relógio do dispositivo, e quando o lote foi despejado
  • uma identidade: um UUID aleatório que a instalação gera para si própria

Mais nada. Nenhum identificador de publicidade, nenhum identificador de dispositivo, nenhuma localização, nenhuma conta, nenhuns contactos, e portanto nenhuma permissão em execução em plataforma nenhuma para além do acesso à internet, porque nada do que precisaria de uma está a ser pedido.

A troca é esta numa linha: deixas de conseguir juntar a utilização da aplicação a uma campanha de anúncios, e deixas de ter de pedir autorização a alguém para os contar.

Fica com o teu relator de falhas

É esta a parte em que as pessoas se enganam, e a documentação dos SDK da Skomi di-lo com todas as letras em vez de te deixar descobrir.

Um SDK de analítica de aplicações consegue reportar os erros que o teu código lhe entrega e os que a framework levanta. Não consegue reportar uma falha nativa (um segfault no C++ de um plugin, uma morte por falta de memória, uma NSException vinda de um canal de plataforma) porque o processo que faria o relato já se foi.

Portanto o Crashlytics, o Sentry ou o relatório da própria loja ficam. O que ganhas do lado da analítica é uma taxa sem falhas ao lado dos números das tuas versões, que responde a uma pergunta diferente: não "o que se partiu" mas "esta versão é pior do que a anterior". Vale a pena saber: essa taxa peca por pessimismo, porque uma sessão que estoirou antes do primeiro ecrã conta como estoirada e não como sessão, que é o sentido seguro em que estar errado.

Também não há envio de ficheiros de mapeamento, portanto uma pilha de uma versão minificada chega tal como foi lançada. Mais uma razão para o relator de falhas ficar.

O que não tem substituto

Sendo honestos quanto ao resto da plataforma, porque "alternativa ao Firebase" é muitas vezes um atalho para muito mais do que analítica:

  • Remote Config, testes A/B, Cloud Messaging, Authentication, Firestore: nada disto é analítica e nada disto é substituído por uma ferramenta de analítica.
  • Audiências e atribuição de anúncios. Construir uma audiência no Firebase e usá-la no Google Ads é a integração para a qual o Firebase Analytics existe. Tira o identificador de publicidade e isso vai atrás, por construção.
  • Exportação de eventos em bruto. O Firebase consegue transmitir todos os eventos para o BigQuery. A API de aplicações da Skomi responde com agregados (resumos, séries temporais, desagregações) e não com uma tabela de eventos para modelares tu.

Se alguma dessas três te sustenta o edifício, esta não é uma troca que queiras fazer.

O que ganhas e o Firebase não te dá

  • Os mesmos relatórios para o teu sítio e para a tua aplicação, numa conta. Uma versão e uma campanha de marketing na mesma semana são duas linhas na mesma página em vez de dois produtos e um palpite. Vê medir uma aplicação e um sítio no mesmo lugar.
  • Uma fila para quando não há rede que não conta a dobrar. Todos os ecrãs trazem um identificador cunhado uma só vez, portanto um lote reenviado ao fim de quinze dias sem sinal é reconhecido em vez de contado outra vez.
  • Um interruptor de consentimento que é a sério. Com Enabled = false não se grava nada e não se envia nada, portanto o SDK pode existir desde o arranque e começar só quando alguém concordar.

O resumo honesto

Se usas o Firebase para autenticação, mensagens e uma base de dados, isto substitui um componente dele e ficas com o resto, incluindo o Crashlytics.

Se acrescentaste o Firebase a uma aplicação para saber quantas pessoas a abriram e a que ecrãs chegaram, andas a carregar uma plataforma de publicidade para responder a uma pergunta que não precisa de nenhuma, e tirá-la é uma mudança pequena com um efeito desproporcionado sobre o que tens de divulgar.

Instalar leva uma chamada: Flutter, .NET MAUI, ou qualquer um dos oito SDK.

O que chega depois de reportar está na página do App analytics: ecrãs, sessões, versões e a taxa sem falhas. O resto do campo, incluindo os produtos que nos batem no preço, está exposto em alternativas ao Firebase.