Envios

Este documento descreve como você pode gerenciar o envio de dados ao Google Analytics por meio do SDK do Google Analytics v4 para Android.

Visão geral

Os dados coletados por meio do SDK v4 do Google Analytics para Android são armazenados localmente antes de serem enviados em uma sequência diferente ao Google Analytics.

Os dados precisam ser enviados e recebidos até as 4h do dia seguinte, no fuso horário local de cada Vista. Todos os dados recebidos após esse horário não serão exibidos nos relatórios. Por exemplo, se um hit entrar na fila localmente às 23h59, ele precisará ser enviado em até 4 horas, até às 3h59, para ser exibido nos relatórios. Por outro lado, um hit que entrar na fila às 12h precisará ser enviado em até 28 horas, ou seja, até às 3h59 do dia seguinte para ser exibido nos relatórios.

Envios periódicos

Por padrão, os dados são enviados do SDK v4 do Google Analytics para Android a cada 30 minutos.

Para definir o período de envio programaticamente:

// Set the dispatch period to 90 seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);

Para definir o período de envio no arquivo de configuração XML:

<integer name="ga_dispatchPeriod">30</integer>

A definição de um valor negativo desativa o envio periódico, o que exige que você use o envio manual se quiser enviar dados ao Google Analytics.

// Disable periodic dispatch by setting dispatch period to a value less than 1.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);

Se um usuário perder acesso à rede ou sair do aplicativo enquanto ainda houver hits aguardando o envio, esses hits permanecerão no armazenamento local. Eles serão enviados na próxima vez que seu aplicativo for executado e que o envio for chamado.

Envios manuais

Para enviar hits manualmente, por exemplo, quando você sabe que o rádio do dispositivo já está sendo usado para enviar outros dados:

GoogleAnalytics.getInstance(this).dispatchLocalHits();

Envios em segundo plano

Para ativar os envios em segundo plano em apps executados em dispositivos que não usam o Google Play, no arquivo de configuração ApplicationManifest.xml:

  • Acesse a permissão WAKE_LOCK.
  • Registre AnalyticsReceiver.
  • Registre AnalyticsService.

Exemplo:

<manifest>
  <!-- ... -->

  <!-- Get permission for reliable local dispatching on non-Google Play devices. -->
  <uses-permission android:name="android.permission.WAKE_LOCK" />

  <application name="com.example.MyApp">
    <!-- Register AnalyticsReceiver and AnalyticsService to support background
         dispatching on non-Google Play devices. -->
    <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
      android:enabled="true">
      <intent-filter>
        <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
      </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.AnalyticsService"
      android:enabled="true"
      android:exported="false"/>

    <!-- ... -->
  </application>
</manifest>