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.
Firebase AI Logic 1 Sem impacto
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.
Cloud Firestore Sem impacto
Cloud Functions 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.
Cloud Storage Sem impacto
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.
In-App Messaging Sem impacto
Instalações Firebase Sem impacto
InstanceID Sem impacto
Firebase ML Sem impacto
Performance Monitoring Sem impacto
Realtime Database 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.

1 Firebase AI Logic era chamado de "Vertex AI in Firebase".

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 exemplo de código 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.