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 Google Analytics que possam envolver o acesso ao IDFA.
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 |
---|---|
A/B Testing | Alguns dados de segmentação, como informações demográficas, na integração do A/B Testing 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 | Não há impacto em Authentication e provedores de Authentication próprios, como o Login do Google e a autenticação por smartphone. |
Crashlytics | Sem impacto. A integração do Crashlytics com o Google Analytics que fornece dados de falhas e navegações estruturais em tempo real não depende do IDFA. |
Dynamic Links | A função de abertura de links não será afetada. Quando usada com Google Analytics, a atribuição de eventos de conversão de links fica indisponível. |
Cloud Firestore | Sem impacto |
Cloud Functions | Sem impacto |
In-App Messaging | Sem impacto |
Instalações Firebase | Sem impacto |
InstanceID | Sem impacto |
Cloud Messaging | Quando usado com Google Analytics, o Google Analytics registra automaticamente alguns eventos de conversão relacionados a FCM. A atribuição desses eventos requer acesso ao IDFA. |
Firebase ML | Sem impacto |
Performance Monitoring | Sem impacto |
Remote Config | Quando usado com Google Analytics, o Remote Config 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 |
Vertex AI in Firebase | 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árioAdMob para mais detalhes.
O guia a seguir oferece uma solução usando o Firebase In-App Messaging 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 In-App Messaging ao app
Siga as instruções para adicionar In-App Messaging 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 de In-App Messaging
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 In-App Messaging.
- 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 In-App Messaging.
Opcional: Teste A/B com diferentes telas explicativas
O In-App Messaging tem uma integração integrada com o Firebase A/B Testing, que pode ser usado para testar diferentes telas de explicação.
O Firebase A/B Testing 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 In-App Messaging do console, clique em Novo experimento e siga as instruções nas telas resultantes.
- 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 Firebase A/B Testing para informações sobre como monitorar um experimento e lançar uma variante bem-sucedida.