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 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.

  1. No Console do Firebase, crie uma nova campanha do Mensagens no app.
  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 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.