Suportando iOS 14

Com o iOS 14.5, a Apple exige que os desenvolvedores recebam a permissão do usuário por meio da estrutura App Tracking Transparency para rastreá-los ou acessar o identificador de publicidade de seu dispositivo (IDFA). Consulte a documentação Privacidade do usuário e uso de dados da Apple e Transparência de rastreamento de aplicativos da Apple para obter mais detalhes.

Produtos Firebase afetados

Os SDKs do Firebase não acessam o IDFA, embora alguns tenham integrações com o Google Analytics que podem envolver acesso ao IDFA.

A tabela abaixo lista os produtos do Firebase disponíveis nas plataformas Apple e descreve como a funcionalidade de cada produto será afetada se o IDFA não estiver acessível.

produtos Impacto se o IDFA não estiver acessível
Teste A/B Alguns dados de segmentação (como dados demográficos) na integração do teste A/B com o Google Analytics são derivados do IDFA. Em aplicativos sem acesso ao IDFA, essa segmentação não está disponível.
Verificação de aplicativo Sem impacto
Distribuição de aplicativos Sem impacto
Autenticação Nenhum impacto nos provedores de autenticação e de autenticação primários, como Google Sign-In e Phone Authentication.
Crashlytics Nenhum impacto. A integração do Crashlytics com o Google Analytics, que fornece dados de falhas e localização atual em tempo real, não depende do IDFA.
Links Dinâmicos Nenhum impacto na funcionalidade de abertura de link. Quando usado com o Google Analytics, a atribuição para eventos de conversão de link fica indisponível.
Cloud Fire Store Sem impacto
Funções de nuvem Sem impacto
Mensagens no aplicativo Sem impacto
Instalações do Firebase Sem impacto
ID da instância Sem impacto
Mensagens na nuvem Quando usado com o Google Analytics, o Google Analytics registrará automaticamente alguns eventos de conversão relacionados ao FCM. A atribuição para esses eventos requer acesso ao IDFA.
FirebaseML Sem impacto
Monitoramento de desempenho Sem impacto
Configuração remota Quando usado com o Google Analytics, o Configuração remota não permite propriedades de usuário criadas automaticamente para segmentação sem acesso ao IDFA.
Banco de dados em tempo real Sem impacto
Armazenamento na núvem Sem impacto

Integrações afetadas do Firebase

A tabela abaixo lista os produtos integrados ao Firebase que serão afetados se o IDFA não estiver acessível.

produtos Impacto se o IDFA não estiver acessível
Google Analytics O registro de eventos do Analytics, os relatórios de eventos e a medição de conversões não são afetados, mas a atribuição será afetada se o IDFA não estiver acessível. Para saber mais sobre a resposta do Google ao iOS 14, consulte nossa postagem no blog .

Solicitando permissão de rastreamento de aplicativos no iOS 14

Se desejar que seu aplicativo Apple possa acessar o IDFA, você pode adicionar a estrutura App Tracking Transparency da Apple ao seu aplicativo e solicitar permissão para rastrear ou acessar o IDFA de seus usuários.

Muitos aplicativos optam por apresentar uma tela de aquecimento ou explicação antes de pedir permissão. A tela explicativa permite que você forneça aos usuários mais contexto sobre como seu aplicativo usa o IDFA antes de solicitar acesso.

Se você for um editor de aplicativos da AdMob ou do Ad Manager, considere usar o Funding Choices , que gerencia automaticamente a obtenção de consentimento para veicular anúncios personalizados, bem como o consentimento para rastrear o usuário de acordo com as diretrizes da Apple. Consulte a página Consentimento da AdMob com mensagens do usuário para obter mais detalhes.

O guia a seguir fornece uma solução usando o Firebase In-App Messaging para criar e exibir uma tela explicativa antes de solicitar acesso de rastreamento por meio do App Tracking Transparency.

Adicione mensagens no aplicativo ao seu aplicativo

Siga as instruções para adicionar mensagens no aplicativo ao seu aplicativo Apple .

Lidar com a dispensa de mensagens no aplicativo

Primeiro, evite exibir a tela explicativa em dispositivos que não podem apresentar a caixa de diálogo de consentimento, como dispositivos que executam o iOS 13. Certifique-se de que esse código seja executado imediatamente após FirebaseApp.configure() .

Rápido

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 lidar com eventos quando o usuário descarta a tela explicativa. Se o usuário tocar em OK, exiba o prompt do sistema por meio da estrutura App Tracking Transparency.

Rápido

// 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
  }
}

Crie uma campanha de mensagens no aplicativo

Assim que o código estiver instalado em seu aplicativo, crie uma mensagem no aplicativo no console do Firebase.

  1. No console do Firebase , crie uma nova campanha de mensagens no aplicativo.
  2. Preencha as mensagens no aplicativo com o conteúdo desejado e defina a mensagem para ser acionada no evento app_launch .
  3. Na seção Segmentação , certifique-se de que a campanha segmente apenas a versão mais recente do seu aplicativo e superior.

Você pode personalizar a aparência da tela explicativa seguindo as instruções na documentação do In-App Messaging .

Opcional: teste A/B em diferentes telas explicativas

O In-App Messaging tem uma integração integrada com o Firebase A/B Testing , que você pode usar para experimentar diferentes telas explicativas.

O Firebase A/B Testing cria automaticamente grupos de experimentos e ajuda a visualizar como os usuários interagem com diferentes variantes do seu aplicativo.

Registrar permissões de rastreamento de aplicativos

Se você não registrou um evento do Google Analytics ao processar a resposta de permissões de rastreamento de aplicativos, será necessário fazer isso para medir as alterações na taxa de resposta ao executar uma experiência A/B.

Rápido

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

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

Crie um novo experimento

No menu Mensagens no aplicativo do console, clique em Nova experiência e siga as instruções nas telas resultantes.

  • Na seção Segmentação , certifique-se de que a campanha segmente apenas a versão mais recente do seu aplicativo e superior.
  • Na seção Metas , selecione o evento de conversão que você criou com o código de exemplo acima, bem como quaisquer outras métricas que você gostaria de acompanhar.

Depois de publicar seu experimento, ele precisará coletar dados por algum tempo antes de produzir resultados conclusivos.

Leia a documentação do Firebase A/B Testing para obter informações sobre como monitorar um experimento e implementar uma variante bem-sucedida.