Suporte ao iOS 14

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.

  1. No console do Firebase, crie uma nova campanha In-App Messaging.
  2. Preencha as mensagens no app com o conteúdo de sua preferência e defina a mensagem para ser acionada no evento app_launch.
  3. 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.