이 문서에서는 Android용 Google 애널리틱스 SDK v4를 사용하여 Google 애널리틱스로 데이터를 전달하는 방법을 설명합니다.
개요
Android용 Google 애널리틱스 SDK v4를 사용하여 수집된 데이터는 Google 애널리틱스에 별도의 스레드로 전달되기 전에 로컬로 저장됩니다.
데이터는 각 뷰의 현지 시간대를 기준으로 다음 날 오전 4시까지 전달 및 수신되어야 합니다. 그 이후에 수신된 데이터는 보고서에 표시되지 않습니다. 예를 들어 조회가 오후 11시 59분에 로컬에서 큐에 추가된 경우 4시간 내에 오전 3시 59분까지 전달되어야 보고서에 표시됩니다. 반면 오전 12시에 큐에 추가된 조회는 28시간 이내(즉, 다음 날 오전 3시 59분)에 전달되어야 보고서에 표시됩니다.
주기적인 전달
기본적으로 Android용 Google 애널리틱스 SDK v4에서 30분마다 데이터가 전달됩니다.
프로그래매틱 방식으로 디스패치 기간을 설정하려면 다음 안내를 따르세요.
// Set the dispatch period to 90 seconds. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);
XML 구성 파일에서 전달 기간을 설정하려면 다음 안내를 따르세요.
<integer name="ga_dispatchPeriod">30</integer>
0 또는 음수 값을 설정하면 주기적 전달이 사용 중지되므로 Google 애널리틱스로 데이터를 전송하려는 경우 수동 디스패치를 사용해야 합니다.
// Disable periodic dispatch by setting dispatch period to a value less than 1. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);
전달 대기 중인 조회가 있는 동안 사용자가 네트워크 액세스 권한을 상실하거나 앱을 종료하는 경우 해당 조회는 로컬 저장소에 보존됩니다. 이 동작은 다음에 앱이 실행되고 디스패치가 호출될 때 전달됩니다.
수동 디스패치
기기 무선이 다른 데이터를 전송하는 데 이미 사용 중임을 알 수 있는 경우, 조회를 수동으로 전달하려면 다음을 수행합니다.
GoogleAnalytics.getInstance(this).dispatchLocalHits();
백그라운드 전달
Google Play 이외의 기기에서 실행되는 앱에서 백그라운드 전송을 사용 설정하려면 구성 파일 ApplicationManifest.xml
을 사용합니다.
WAKE_LOCK
권한을 가져옵니다.AnalyticsReceiver
등록AnalyticsService
등록
예를 들면 다음과 같습니다.
<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>