App Center Analytics (Android)

App Center Analytics ajuda você a entender o comportamento do usuário e o envolvimento do cliente para melhorar seu aplicativo. O SDK captura automaticamente a contagem de sessão e as propriedades do dispositivo, como modelo, versão do sistema operacional etc. Você pode definir seus próprios eventos personalizados para medir as coisas importantes para você. Todas as informações capturadas estão disponíveis no portal App Center para você analisar os dados.

Siga a seção De início do SDK se você ainda não tiver definido o SDK em seu aplicativo.

Informações sobre a sessão e o dispositivo

Depois de adicionar App Center Analytics ao seu aplicativo e iniciar o SDK, ele acompanhará automaticamente sessões e propriedades do dispositivo, como Versão do sistema operacional, modelo etc. sem escrever nenhum código adicional.

Eventos personalizados

Você pode acompanhar seus próprios eventos personalizados com até 20 propriedades para entender a interação entre os usuários e o aplicativo.

Depois de iniciar o SDK, use o método trackEvent() para acompanhar seus eventos com propriedades. Você pode enviar até 200 nomes de evento distintos. Além disso, há limites máximos de caracteres:

  • 256 caracteres por event name .
  • 125 caracteres por event property name & 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)

As propriedades de eventos são totalmente opcionais – se você quiser apenas acompanhar um evento, use este exemplo em vez disso:

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

Prioridade e persistência do evento

Você pode acompanhar eventos comercialmente críticos que têm maior importância do que outros eventos.

  • Os desenvolvedores podem definir a prioridade de eventos como Normal ( na Flags.NORMAL API) ou Crítico ( Flags.CRITICAL na API).
  • Eventos com prioridade definida como Crítico serão recuperados do armazenamento primeiro e enviados antes dos eventos Normais.
  • Quando o armazenamento local está cheio e novos eventos precisam ser armazenados, os eventos mais antigos com a prioridade mais baixa são excluídos primeiro.
  • Se o armazenamento estiver cheio de logs com prioridade crítica , o rastreamento de um evento com prioridade normal falhará, pois o SDK não poderá liberar espaço nesse caso.
  • Se você também usar o serviço de falhas , os logs de falha serão definidos como críticos e compartilharão o mesmo armazenamento que os eventos.
  • O intervalo de transmissão só será aplicado a eventos normais , os eventos críticos serão enviados após 3 segundos.

Você pode usar a seguinte API para acompanhar um 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 e continuar enviando logs

Pausar a transmissão de eventos pode ser útil em cenários quando o aplicativo precisa controlar a largura de banda da rede para obter mais necessidades críticas de negócios. Você pode pausar o envio de logs para o back-end App Center. Quando em pausa, os eventos ainda podem ser rastreados e salvos, mas não são enviados imediatamente. Todos os eventos que seu aplicativo rastreia enquanto estiverem em pausa só serão enviados quando você chamar resume .

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

Habilitar ou desabilitar a análise de App Center em tempo de execução

Você pode habilitar e desabilitar a análise de App Center em tempo de execução. Se você desabilitá-lo, o SDK não coletará mais informações de análise para o aplicativo.

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

Para habilitar o App Center Analytics novamente, use a mesma API, mas passe true como um parâmetro.

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

O estado é persistido no armazenamento do dispositivo entre as inicializações do aplicativo.

Essa API é assíncrona, você pode ler mais sobre isso em nosso guia App Center APIs assíncronas.

Observação

Este método deve ser usado somente depois que o Analytics tiver sido iniciado.

Verificar se a análise de App Center está habilitada

Você também pode verificar se App Center Analytics está habilitada ou não.

Analytics.isEnabled();
Analytics.isEnabled()

Essa API é assíncrona, você pode ler mais sobre isso em nosso guia App Center APIs assíncronas.

Observação

Esse método deve ser usado somente após Analytics ter sido iniciado, sempre será retornado false antes do início.

Tamanho do armazenamento local

Por padrão, o SDK armazena todos os logs de eventos de até 10 MB. Os desenvolvedores podem usar uma API para aumentar o tamanho do armazenamento e o SDK continuará armazenando os logs até que o armazenamento esteja cheio.

Sem acesso à Internet

Quando não há conectividade de rede, o SDK salva até 10 MB de logs no armazenamento local. Quando o armazenamento está cheio, o SDK começa a descartar logs antigos para dar espaço aos novos logs. Depois que a conectividade de rede retorna, o SDK envia logs no lote de 50 ou depois a cada 3 segundos (por padrão).

Observação

Os logs com mais de 25 dias não serão aceitos pelo back-end.

Logs de eventos de lote

O App Center SDK carrega logs em um lote de 50 e, se o SDK não tiver 50 logs para enviar, ele ainda enviará logs após 3 segundos (por padrão). Pode haver um máximo de três lotes enviados em paralelo. O intervalo de transmissão pode ser alterado:

// Change transmission interval to 10 minutes.
Analytics.setTransmissionInterval(600);
// Change transmission interval to 10 minutes.
Analytics.setTransmissionInterval(600)

O valor do intervalo de transmissão deve estar entre 3 segundos e 86400 segundos (um dia) e esse método deve ser chamado antes que o serviço seja iniciado.

Lógica de retry e back-off

App Center SDK dá suporte a recuperações de back-off em erros de rede recuperáveis. Abaixo está a lógica de repetir:

  • 3 tenta o máximo por solicitação.
  • Cada solicitação tem seu próprio computador de estado de nova tentativa.
  • Todos os canais de transmissão são desabilitados (até o próximo processo do aplicativo) depois que uma solicitação esgota todas as suas recuperações.

Lógica de back-off

  • 50% de randomização, primeiro tente entre 5 e 10 segundos, tente entre 2,5 e 5 minutos e tente pela última vez entre 10 e 20 minutos.
  • Se a rede mudar de desligado para on (ou de wi-fi para dispositivo móvel), os estados de repetir serão redefinidos e as solicitações serão recuperadas imediatamente.