Check out what’s new from Firebase at Google I/O 2022. Learn more

Compatibilidad con iOS 14

Con iOS 14.5, Apple requiere que los desarrolladores reciban el permiso del usuario a través del marco de transparencia de seguimiento de aplicaciones para rastrearlos o acceder al identificador de publicidad de su dispositivo (IDFA). Consulte la documentación de Privacidad y uso de datos del usuario de Apple y Transparencia de seguimiento de aplicaciones de Apple para obtener más detalles.

Productos de Firebase afectados

Los SDK de Firebase no acceden a IDFA, aunque algunos tienen integraciones con Google Analytics que pueden implicar el acceso a IDFA.

La siguiente tabla enumera los productos de Firebase que están disponibles en las plataformas de Apple y describe cómo se ve afectada la funcionalidad de cada producto si no se puede acceder a IDFA.

Producto Impacto si IDFA no es accesible
Pruebas A/B Algunos datos de orientación (como datos demográficos) en la integración de pruebas A/B con Google Analytics se derivan del IDFA. En aplicaciones sin acceso al IDFA, esta orientación no está disponible.
Comprobación de la aplicación Sin impacto
Distribución de aplicaciones Sin impacto
Autenticación Sin impacto en la autenticación y los proveedores de autenticación propios, como el inicio de sesión de Google y la autenticación telefónica.
Crashlytics Sin impacto. La integración de Crashlytics con Google Analytics que proporciona datos de fallas y migas de pan en tiempo real no depende del IDFA.
Enlaces dinámicos Sin impacto para la funcionalidad de apertura de enlaces. Cuando se utiliza con Google Analytics, la atribución de eventos de conversión de enlaces no está disponible.
Tienda de fuego en la nube Sin impacto
Funciones en la nube Sin impacto
Mensajería en la aplicación Sin impacto
Instalaciones de base de fuego Sin impacto
Id. de instancia Sin impacto
Mensajería en la nube Cuando se usa con Google Analytics, Google Analytics registrará automáticamente algunos eventos de conversión relacionados con FCM. La atribución de estos eventos requiere acceso IDFA.
Base de fuego ML Sin impacto
Supervisión del rendimiento Sin impacto
Configuración remota Cuando se usa con Google Analytics, Remote Config no permite que las propiedades de usuario creadas automáticamente se orienten sin acceso IDFA.
Base de datos en tiempo real Sin impacto
Almacenamiento en la nube Sin impacto

Integraciones de Firebase afectadas

La siguiente tabla enumera los productos integrados con Firebase que se ven afectados si no se puede acceder a IDFA.

Producto Impacto si IDFA no es accesible
Google analitico El registro de eventos analíticos, los informes de eventos y la medición de conversiones no se ven afectados, pero la atribución se ve afectada si no se puede acceder a IDFA. Para obtener más información sobre la respuesta de Google a iOS 14, consulte nuestra publicación de blog .

Solicitud de permiso de seguimiento de aplicaciones en iOS 14

Si desea que su aplicación de Apple pueda acceder a IDFA, puede agregar el marco de Transparencia de seguimiento de aplicaciones de Apple a su aplicación y solicitar permiso para rastrear o acceder a IDFA de sus usuarios.

Muchas aplicaciones optan por presentar una pantalla de calentamiento o explicativa antes de pedir permiso. La pantalla explicativa le permite dar a los usuarios más contexto sobre cómo su aplicación usa IDFA antes de solicitar acceso.

Si es un editor de aplicaciones de AdMob o Ad Manager, considere usar Funding Choices , que se encarga de obtener el consentimiento para publicar anuncios personalizados, así como el consentimiento para rastrear al usuario de acuerdo con las pautas de Apple automáticamente. Consulte la página Consentimiento de AdMob con mensajes de usuario para obtener más detalles.

La siguiente guía brinda una solución que utiliza Firebase In-App Messaging para crear y mostrar una pantalla explicativa antes de solicitar acceso de seguimiento a través de App Tracking Transparency.

Agregue mensajería en la aplicación a su aplicación

Siga las instrucciones para agregar In-App Messaging a su aplicación de Apple .

Manejar el rechazo de mensajes en la aplicación

En primer lugar, evite mostrar la pantalla explicativa en dispositivos que no pueden presentar el cuadro de diálogo de consentimiento, como los dispositivos que ejecutan iOS 13. Asegúrese de que este código se ejecute inmediatamente después de 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 el protocolo InAppMessagingDisplayDelegate para manejar eventos cuando el usuario cierra la pantalla explicativa. Si el usuario toca Aceptar, muestra el aviso del sistema a través del marco de Transparencia de seguimiento de aplicaciones.

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

Crear una campaña de mensajería en la aplicación

Una vez que el código esté en su aplicación, cree un mensaje en la aplicación en la consola de Firebase.

  1. En Firebase console , cree una nueva campaña de mensajería en la aplicación.
  2. Complete los mensajes en la aplicación con el contenido deseado y configure el mensaje para que se active en el evento app_launch .
  3. En la sección Orientación , asegúrese de que la campaña se oriente solo a la versión más reciente de su aplicación y superior.

Puede personalizar la apariencia de la pantalla explicativa siguiendo las instrucciones en la documentación de mensajería en la aplicación .

Opcional: Prueba A/B en diferentes pantallas explicativas

In-App Messaging tiene una integración integrada con Firebase A/B Testing , que puede usar para experimentar con diferentes pantallas explicativas.

Firebase A/B Testing crea automáticamente grupos de experimentos y lo ayuda a visualizar cómo interactúan los usuarios con diferentes variantes de su aplicación.

Grabar permisos de seguimiento de aplicaciones

Si no registró un evento de Google Analytics al manejar la respuesta de los permisos de seguimiento de la aplicación, deberá hacerlo para medir los cambios en la tasa de respuesta al ejecutar un experimento 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.
  }
}

Crear un nuevo evento de conversión

En la sección Análisis de la consola de Firebase, navegue hasta el menú Conversiones , luego agregue un nuevo evento de conversión con el mismo nombre que el evento registrado con el código de muestra anterior.

Crear un nuevo experimento

En el menú Mensajería en la aplicación de la consola, haga clic en Nuevo experimento y luego siga las instrucciones en las pantallas resultantes.

  • En la sección Orientación , asegúrese de que la campaña se oriente solo a la versión más reciente de su aplicación y superior.
  • En la sección Objetivos , seleccione el evento de conversión que creó con el código de muestra anterior, así como cualquier otra métrica de la que desee realizar un seguimiento.

Una vez que haya publicado su experimento, deberá recopilar datos durante algún tiempo antes de que pueda producir resultados concluyentes.

Lea la documentación de Pruebas A/B de Firebase para obtener información sobre cómo monitorear un experimento e implementar una variante exitosa.