Com o iOS 14.5, a Apple exige que os desenvolvedores recebam a permissão do usuário usando o framework da Transparência no rastreamento em apps para acompanhá-los ou acessar o identificador de publicidade (IDFA, na sigla em inglês) do dispositivo. Consulte a documentação sobre Privacidade e uso de dados do usuário e Transparência no rastreamento em apps da Apple para ver mais detalhes.
Produtos do Firebase afetados
Os SDKs do Firebase não acessam o IDFA, embora alguns tenham integrações com o Google Analytics que possam envolvê-lo.
Veja na tabela abaixo os produtos do Firebase que estão disponíveis na plataforma Apple e como a funcionalidade de cada produto é afetada se o IDFA não estiver acessível.
Produto | Impacto se o IDFA não estiver acessível |
---|---|
Teste A/B | Alguns dados de segmentação, como informações demográficas, na integração do Teste A/B com o Google Analytics são derivados do IDFA. Se o app não tiver acesso ao IDFA, essa segmentação não estará disponível. |
App Check | Sem impacto |
App Distribution | Sem impacto |
Authentication | Os provedores de autenticação e de autenticação primários, como o Login do Google e a autenticação por smartphone, não serão afetados. |
Crashlytics | Sem impacto. A integração do Crashlytics com o Google Analytics que fornece navegações estruturais e dados de falhas em tempo real não depende do IDFA. |
Dynamic Links | A função de abertura de links não será afetada. Quando usada com o Google Analytics, a atribuição de eventos de conversão de links fica indisponível. |
Cloud Firestore | Sem impacto |
Cloud Functions | Sem impacto |
Mensagens no app | Sem impacto |
Instalações do Firebase | Sem impacto |
InstanceID | Sem impacto |
Cloud Messaging | Quando usado com o Google Analytics, a plataforma registra automaticamente alguns eventos de conversão relacionados ao FCM. A atribuição desses eventos requer acesso ao IDFA. |
Firebase ML | Sem impacto |
Monitoramento de desempenho | Sem impacto |
Configuração remota | Quando usado com o Google Analytics, o Configuração remota não permite o uso de propriedades do usuário criadas automaticamente para segmentação sem acesso ao IDFA. |
Realtime Database | Sem impacto |
Cloud Storage | Sem impacto |
Integrações do Firebase afetadas
Veja na tabela abaixo os produtos integrados do Firebase que serão afetados se o IDFA não estiver acessível.
Produto | Impacto se o IDFA não estiver acessível |
---|---|
Google Analytics | A geração de registros de eventos do Analytics, os relatórios de eventos e a medição de conversão não são afetados, mas a atribuição é afetada se o IDFA não estiver acessível. Saiba mais sobre a resposta do Google ao iOS 14 na postagem do blog. |
Como solicitar permissão para rastrear apps no iOS 14
Se você quiser que seu aplicativo da Apple acesse o IDFA, adicione o framework da Transparência no rastreamento em apps da Apple ao app e solicite permissão para acompanhar ou acessar o IDFA dos seus usuários.
Muitos aplicativos optam por apresentar uma tela com explicações antes de solicitar permissão. Com essa tela, é possível fornecer aos usuários mais contexto sobre como seu app usa o IDFA antes de solicitar acesso.
Se você é um editor de apps da AdMob ou do Ad Manager, considere usar o Funding Choices. Esse produto é responsável por obter o consentimento para veicular anúncios personalizados e rastrear o usuário automaticamente de acordo com as diretrizes da Apple. Consulte a página Consentimento da AdMob com mensagens do usuário para mais detalhes.
Veja no guia a seguir uma solução usando o Mensagens no app do Firebase para criar e exibir uma tela com explicações antes de solicitar o acesso de rastreamento pela Transparência no rastreamento em apps.
Adicionar o Mensagens no app ao seu aplicativo
Siga as instruções para adicionar o Mensagens no app ao seu aplicativo Apple.
Gerenciar dispensa de mensagens no app
Primeiro, evite exibir a tela de explicação em dispositivos que não podem apresentar a
caixa de diálogo de consentimento, como dispositivos que executam o iOS 13. Verifique se esse código é executado
logo após FirebaseApp.configure()
.
Swift
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
Implemente o protocolo
InAppMessagingDisplayDelegate
para gerenciar eventos quando o usuário dispensar a tela de explicação. Se o
usuário tocar em "OK", exiba o prompt do sistema com o framework da Transparência no rastreamento em apps.
Swift
// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
with action: InAppMessagingAction) {
switch action.actionText {
case "OK":
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
case _:
// do nothing
}
}
Criar uma campanha do Mensagens no app
Quando o código estiver no seu aplicativo, crie uma mensagem no app no Console do Firebase.
- No Console do Firebase, crie uma nova campanha do Mensagens no app.
- Preencha as mensagens no app com o conteúdo de sua preferência e defina a mensagem
para ser acionada no evento
app_launch
. - Na seção Segmentação, verifique se a campanha segmenta apenas a versão mais recente e as versões posteriores do app.
É possível personalizar a aparência da tela de explicação seguindo as instruções na documentação do Mensagens no app.
Opcional: Teste A/B com diferentes telas explicativas
O Mensagens no app tem uma integração padrão com o Teste A/B do Firebase. É possível usá-la para testar diferentes telas de explicação.
O Teste A/B do Firebase cria grupos experimentais automaticamente e ajuda você a visualizar como os usuários interagem com variantes diferentes do seu aplicativo.
Registrar permissões de rastreamento de apps
Se você não registrou um evento do Google Analytics ao processar a resposta de permissões de rastreamento do app, precisará fazer isso para avaliar as alterações na taxa de resposta ao executar um experimento A/B.
Swift
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
Criar um novo evento de conversão
Na seção Analytics do Console do Firebase, navegue até o menu Conversões e adicione um novo evento de conversão com o mesmo nome do evento registrado com o código de exemplo acima.
Criar um novo experimento
No menu do Mensagens no app do console, clique em Novo experimento e siga as instruções nas telas seguintes.
- Na seção Segmentação, verifique se a campanha segmenta apenas a versão mais recente e as versões posteriores do app.
- Na seção Metas, selecione o evento de conversão criado com o código de exemplo acima, além de qualquer outra métrica que você queira acompanhar.
Depois que você publicar o experimento, ele precisará coletar dados por algum tempo para poder produzir resultados conclusivos.
Leia a documentação do Teste A/B do Firebase para informações sobre como monitorar um experimento e lançar uma variante bem-sucedida.