Compatibilidad con iOS 14

Con iOS 14.5, Apple requiere que los desarrolladores reciban el permiso del usuario mediante el framework App Tracking Transparency para realizar un seguimiento de ellos o acceder al identificador de publicidad (IDFA) de sus dispositivos. Consulta la documentación de Apple sobre el uso de datos y la privacidad de los usuarios y App Tracking Transparency para obtener más detalles.

Productos de Firebase afectados

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

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

Producto Impacto si no se puede acceder al IDFA
A/B Testing Algunos datos de segmentación (como los datos demográficos) de la integración de A/B Testing con Google Analytics se obtienen a partir del IDFA. En las apps que no tienen acceso al IDFA, esta segmentación no está disponible.
App Check No hubo impacto.
App Distribution No hubo impacto.
Authentication No hay impacto en Authentication ni en los proveedores propios de Authentication, como el Acceso con Google y la autenticación telefónica.
Crashlytics No hay impacto. La integración de Crashlytics en Google Analytics que proporciona datos de fallas y rutas de navegación en tiempo real no depende del IDFA.
Dynamic Links No hay impacto en la función de apertura de vínculos. Cuando se usa con Google Analytics, no está disponible la atribución de los eventos de conversión de vínculos.
Cloud Firestore No hubo impacto.
Cloud Functions No hubo impacto.
In-App Messaging No hubo impacto.
Instalaciones Firebase No hubo impacto.
InstanceID No hubo impacto.
Cloud Messaging 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 al IDFA.
Firebase ML No hubo impacto.
Performance Monitoring No hubo impacto.
Remote Config Cuando se usa con Google Analytics, Remote Config no permite seleccionar propiedades del usuario creadas automáticamente para la segmentación cuando no hay acceso al IDFA.
Realtime Database No hubo impacto.
Cloud Storage No hubo impacto.
Vertex AI in Firebase No hubo impacto.

Integraciones de Firebase afectadas

En la siguiente tabla, se enumeran los productos integrados en Firebase que se ven afectados si no se puede acceder al IDFA.

Producto Impacto si no se puede acceder al IDFA
Google Analytics El registro y los informes de eventos, así como la medición de conversiones de Analytics, no se ven afectados, pero la atribución se ve afectada si no se puede acceder al IDFA. Para obtener más información sobre la respuesta de Google a iOS 14, consulta nuestra entrada de blog.

Solicita el permiso de seguimiento de apps en iOS 14

Si quieres que tu aplicación para Apple pueda acceder al IDFA, puedes agregar el framework App Tracking Transparency de Apple a tu app y solicitar permiso para hacer un seguimiento del IDFA de los usuarios o acceder a él.

Muchas aplicaciones optan por presentar la pantalla de preparación o explicación antes de solicitar el permiso. La pantalla de explicación te permite brindarles a los usuarios más contexto sobre cómo tu app usa el IDFA antes de solicitar acceso.

Si eres publicador de apps de AdMob o Ad Manager, considera usar Funding Choices, que controla automáticamente la obtención de consentimiento para publicar anuncios personalizados y para hacer un seguimiento del usuario según los lineamientos de Apple. Consulta cómo obtener consentimiento para AdMob con mensajería de usuarios a fin de obtener más detalles.

En la siguiente guía, se proporciona una solución que usa Firebase In-App Messaging para crear y mostrar una pantalla de explicación antes de solicitar acceso de seguimiento mediante App Tracking Transparency.

Agrega In-App Messaging a tu app

Sigue las instrucciones para agregar In-App Messaging a tu aplicación para Apple.

Controla el rechazo de mensajes desde la app

Primero, evita mostrar la pantalla de explicación en dispositivos en los que no se puede mostrar el cuadro de diálogo de consentimiento, como aquellos que ejecutan iOS 13. Asegúrate de que este código se ejecute inmediatamente después de FirebaseApp.configure().

Swift

if NSClassFromString("ATTrackingManager") == nil {
  // Avoid showing the App Tracking Transparency explainer if the
  // framework is not linked.
  InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}

Implementa el protocolo InAppMessagingDisplayDelegate para controlar los eventos cuando el usuario descarta la pantalla de explicación. Si el usuario presiona Aceptar, muestra la solicitud del sistema mediante el framework App Tracking Transparency.

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

Crea una campaña de In-App Messaging

Una vez que implementes el código en tu aplicación, crea un mensaje desde la app en Firebase console.

  1. En la Firebase console, crea una campaña de In-App Messaging nueva.
  2. Propaga los mensajes en la app con el contenido que deseas y configura el mensaje para que se active en el evento app_launch.
  3. En la sección Segmentación, asegúrate de que la campaña esté segmentada solo a la versión más reciente de tu app y a versiones posteriores.

Puedes personalizar la apariencia de la pantalla de explicación mediante las instrucciones de la documentación de In-App Messaging.

Opcional: Haz pruebas A/B con diferentes pantallas de explicación

In-App Messaging tiene una integración con Firebase A/B Testing, que puedes usar para experimentar con diferentes pantallas de explicación.

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

Registra permisos de seguimiento de apps

Si no registras un evento de Google Analytics cuando controlas la respuesta de permisos de seguimiento de apps, deberás hacerlo para medir los cambios del porcentaje de respuesta cuando realices un 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.
  }
}

Crea un nuevo evento de conversión

En la sección Analytics de Firebase console, navega al menú Conversiones y, luego, agrega un nuevo evento de conversión que tenga el mismo nombre que el evento registrado con el código de muestra anterior.

Crea un nuevo experimento

En el menú In-App Messaging de la consola, haz clic en Experimento nuevo y, luego, sigue las instrucciones que aparecen en las pantallas posteriores.

  • En la sección Segmentación, asegúrate de que la campaña esté segmentada solo a la versión más reciente de tu app y a versiones posteriores.
  • En la sección Objetivos, selecciona el evento de conversión que creaste con el código de muestra anterior y cualquier otra métrica que quieras supervisar.

Una vez que publiques tu experimento, este deberá recopilar datos por algún tiempo antes de generar resultados concluyentes.

Lee la documentación de Firebase A/B Testing si necesitas información para supervisar un experimento y lanzar una variante exitosa.