Compartir a través de


Análisis de App Center (Android)

Importante

Visual Studio App Center se retiró el 31 de marzo de 2025, excepto las características de análisis y diagnóstico, que seguirán siendo compatibles hasta el 30 de junio de 2026. Más información.

App Center Analytics le ayuda a comprender el comportamiento del usuario y la interacción del cliente para mejorar la aplicación. El SDK captura automáticamente el recuento de sesiones y las propiedades del dispositivo, como el modelo, la versión del sistema operativo, etc. Puede definir sus propios eventos personalizados para medir las cosas que le importan. Toda la información capturada está disponible en el portal de App Center para analizar los datos.

Siga la sección Introducción del SDK si aún no ha configurado el SDK en la aplicación.

Información de sesión y dispositivo

Una vez que agregue App Center Analytics a la aplicación e inicie el SDK, realizará un seguimiento automático de las sesiones y las propiedades del dispositivo, como la versión del sistema operativo, el modelo, etc. sin escribir código adicional.

Código de país

El SDK notifica automáticamente el código de país de un usuario si el dispositivo tiene instalado un módem de datos móviles y una tarjeta SIM. Los dispositivos solo WiFi no notificarán un código de país de forma predeterminada. Para establecer el código de país de esos usuarios, debe recuperar la ubicación del usuario usted mismo y usar el setCountryCode: método en el SDK:

AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")

Nota:

Para que el código de país se muestre en las sesiones de Analytics, AppCenter.setCountryCode se debe llamar antes de llamar a AppCenter.start.

Eventos personalizados

Puede realizar un seguimiento de sus propios eventos personalizados con hasta 20 propiedades para comprender la interacción entre los usuarios y la aplicación.

Una vez que haya iniciado el SDK, use el método trackEvent() para realizar seguimiento de los eventos con propiedades. Puede enviar hasta 200 nombres de evento distintos. Además, hay límites máximos de caracteres:

  • 256 caracteres por event name.
  • 125 caracteres por event property name y event property value.
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)

Las propiedades de los eventos son completamente opcionales: si solo desea realizar un seguimiento de un evento, use este ejemplo en su lugar:

Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")

Prioridad del evento y persistencia

Puede realizar un seguimiento de los eventos críticos para la empresa que tienen mayor importancia que otros eventos.

  • Los desarrolladores pueden establecer la prioridad de los eventos como Normal (Flags.NORMAL en la API) o Crítico (Flags.CRITICAL en la API).
  • Los eventos con prioridad establecida como Crítico se recuperarán del almacenamiento primero y se enviarán antes de los eventos Normal .
  • Cuando el almacenamiento local está lleno y es necesario almacenar nuevos eventos, primero se eliminan los eventos más antiguos con la prioridad más baja.
  • Si el almacenamiento está lleno de registros con prioridad crítica , se producirá un error en el seguimiento de un evento con prioridad normal , ya que el SDK no puede hacer espacio en ese caso.
  • Si también utiliza el servicio Crashes, los informes de bloqueo se establecen como Crítico y comparten el mismo almacenamiento que los eventos.
  • El intervalo de transmisión solo se aplica a eventos normales , los eventos críticos se enviarán después de 3 segundos.

Puede usar la SIGUIENTE API para realizar un seguimiento de un evento como Crítico:

Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("eventName", properties, Flags.CRITICAL);

// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)

// If you're using name only, you can pass null as properties.

Pausar y reanudar el envío de registros

Pausar la transmisión de eventos puede ser útil en escenarios en los que la aplicación necesita controlar el ancho de banda de red para necesidades más críticas para la empresa. Puede pausar el envío de registros al back-end de App Center. Cuando se pausa, los eventos se pueden seguir y guardar, pero no se envían inmediatamente. Los eventos que sigue la aplicación cuando está pausada solo se enviarán cuando llames a resume.

Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()

Habilitación o deshabilitación de App Center Analytics en tiempo de ejecución

Puede habilitar y deshabilitar App Center Analytics en tiempo de ejecución. Si la deshabilita, el SDK no recopilará más información de análisis para la aplicación.

Analytics.setEnabled(false);
Analytics.setEnabled(false)

Para volver a habilitar App Center Analytics, use la misma API, pero pase true como parámetro.

Analytics.setEnabled(true);
Analytics.setEnabled(true)

El estado se conserva en el almacenamiento del dispositivo en los inicios de la aplicación.

Esta API es asincrónica, puede leer más sobre eso en nuestra guía de API asincrónicas de App Center .

Nota:

Este método solo se debe usar después de que Analytics se haya iniciado.

Comprobación de si App Center Analytics está habilitado

También puede comprobar si App Center Analytics está habilitado o no.

Analytics.isEnabled();
Analytics.isEnabled()

Esta API es asincrónica, puede leer más sobre eso en nuestra guía de API asincrónicas de App Center .

Nota:

Este método solo se debe usar después de que Analytics haya comenzado; antes de empezar, siempre devolverá false.

Administración de la sesión de inicio

De forma predeterminada, el identificador de sesión depende del ciclo de vida de la aplicación. Si desea controlar manualmente el inicio de una nueva sesión, siga los pasos siguientes:

Nota:

Preste atención a que cada llamada de Analytics.StartSession() API generará una nueva sesión. Si en el modo manual de seguimiento de sesión, no se llamará a esta API, todos los registros de envío tendrán un valor de sesión null.

Nota:

Preste atención a que después del lanzamiento de una nueva aplicación, el identificador de sesión se volverá a generar.

  • Llame al método siguiente antes de iniciar el SDK:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
  • A continuación, puede usar la startSession API después de AppCenter.start:
Analytics.startSession();
Analytics.startSession()

Tamaño del almacenamiento local

De forma predeterminada, el SDK almacena todos los registros de eventos hasta 10 MB. Los desarrolladores pueden usar una API para aumentar el tamaño de almacenamiento y el SDK seguirá almacenando registros hasta que el almacenamiento esté lleno.

Sin acceso a Internet

Cuando no hay conectividad de red, el SDK guarda hasta 10 MB de registros en el almacenamiento local. Una vez que el almacenamiento está lleno, el SDK comienza a descartar los registros antiguos para dejar espacio a los nuevos registros. Una vez que se devuelve la conectividad de red, el SDK envía registros en el lote de 50 o después de cada 6 segundos (de forma predeterminada).

Nota:

El back-end no aceptará los registros anteriores a 25 días.

Registros de eventos de procesamiento por lotes

El SDK de App Center carga registros en un lote de 50 y, si el SDK no tiene 50 registros para enviar, seguirá enviando registros después de 6 segundos (de forma predeterminada). Puede haber un máximo de tres lotes enviados en paralelo. El intervalo de transmisión se puede cambiar:

// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)

El valor del intervalo de transmisión debe estar entre 6 segundos y 86400 segundos (un día) y se debe llamar a este método antes de iniciar el servicio.

Lógica de reintento y retroceso

El SDK de App Center admite reintentos de retroceso en errores de red recuperables. A continuación se muestra la lógica de reintento:

  • 3 intentos máximos por solicitud.
  • Cada solicitud tiene su propio sistema de gestión de reintentos.
  • Todos los canales de transmisión están deshabilitados (hasta el siguiente proceso de la aplicación) después de que una solicitud agote todos sus intentos de reintento.

Lógica de retroceso

  • 50% selección aleatoria, primero reintenta entre 5 y 10 segundos, después pruebe entre 2,5 y 5 minutos, por última vez entre 10 y 20 minutos.
  • Si la red cambia de apagado a activado (o de wi-fi a móvil), los estados de reintento se restablecen y las solicitudes se reintentan inmediatamente.