Wysyłanie

W tym dokumencie opisujemy, jak zarządzać przesyłaniem danych do Google Analytics za pomocą pakietu SDK Google Analytics w wersji 4 na Androida.

Przegląd

Dane zbierane za pomocą pakietu SDK Google Analytics w wersji 4 na Androida są przechowywane lokalnie, a następnie wysyłane w oddzielnym wątku do Google Analytics.

Dane należy wysłać i odebrać do 4:00 następnego dnia w lokalnej strefie czasowej każdego widoku. Dane odebrane później nie będą widoczne w raportach. Jeśli np. działanie jest umieszczone w kolejce o godzinie 23:59, musi zostać wysłane w ciągu 4 godzin, do 3:59, by pojawiło się w raportach. Z drugiej strony, aby trafienie trafiło do kolejki o 00:00, musi zostać wysłane w ciągu 28 godzin, tj. 3:59 następnego dnia, aby mogło się pojawić w raportach.

Okresowa dostawa

Domyślnie w przypadku Androida dane są wysyłane co 30 minut z pakietu SDK Google Analytics w wersji 4.

Aby ustawić okres dostawy automatycznie:

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

Aby ustawić okres wysyłki w pliku konfiguracji XML:

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

Ustawienie wartości zerowej lub ujemnej spowoduje wyłączenie okresowej wysyłki, co będzie wymagało użycia wysyłki ręcznej, jeśli chcesz wysyłać dane do Google Analytics.

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

Jeśli użytkownik utraci dostęp do sieci lub zamknie aplikację, gdy są jeszcze działania oczekujące na wysłanie, te działania zostaną zachowane w pamięci lokalnej. Zostaną one wysłane przy następnym uruchomieniu aplikacji i wywołaniu metody wysyłania.

Wysyłanie ręczne

Aby ręcznie wysyłać działania, np. gdy wiesz, że radio urządzenia jest już używane do wysyłania innych danych:

GoogleAnalytics.getInstance(this).dispatchLocalHits();

Przesyłanie w tle

Aby włączyć wysyłanie w tle w przypadku aplikacji działających na urządzeniach spoza Google Play, w pliku konfiguracji ApplicationManifest.xml:

  • Uzyskaj uprawnienie WAKE_LOCK.
  • Zarejestruj domenę AnalyticsReceiver.
  • Zarejestruj domenę AnalyticsService.

Na przykład:

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