2015-05-10 2 views
1

меня та же проблема, что и в этом вопросе:GoogleAnalytics enableAutoActivityTracking не работает

enableAutoActivityTracking not automatically tracking activities?

Проблема заключается в том, что автоматизированное слежение не работает с помощью Google Analytics.

Однако, вызов enableAutoActivityReports не работает в моем случае.

Это конфигурация XML-файл:

<?xml version="1.0" encoding="utf-8"?> 

<!-- Google Analytucs property id. --> 

<integer name="ga_sessionTimeout">300</integer> 

<!-- catch and report uncaught exceptions from the app --> 
<bool name="ga_reportUncaughtExceptions">true</bool> 

<!-- Enable automatic Activity measurement --> 
<bool name="ga_autoActivityTracking">true</bool> 

<!-- The screen names that will appear in reports --> 
<screenName name=".LoginActivity"> 
    Login Activity 
</screenName> 

</resources> 

В классе приложения:

private Tracker googleAnalyticsTracker; 

public synchronized Tracker getGoogleAnalyticsTracker() 
{ 
    if (googleAnalyticsTracker == null) 
    { 
     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     analytics.enableAutoActivityReports(this); 
     googleAnalyticsTracker = analytics.newTracker(R.xml.global_tracker); 
    } 
    return googleAnalyticsTracker; 
} 

В данный вид деятельности onCreate: ((MyApplication) getApplication()).getGoogleAnalyticsTracker();

Однако в том же действии, если я поместил ручную передачу экрана, я посмотрю его в консоли GA. Я делаю это вот так:

Tracker t = ((MyApplication) getApplication()).getGoogleAnalyticsTracker(); 
       t.setScreenName("Login Screen"); 
       t.send(new HitBuilders.ScreenViewBuilder().build()); 

ответ

2

Необходимо сообщить о начале и прекращении каждого вида деятельности.

public abstract class TrackableActivity extends AppCompatActivity { 
    @Override 
    protected void onStart() { 
     super.onStart(); 
     GoogleAnalytics.getInstance(this).reportActivityStart(this); 
    } 

    @Override 
    protected void onStop() { 
     GoogleAnalytics.getInstance(this).reportActivityStop(this); 
     super.onStop(); 
    } 
} 

Не удалось найти документацию, которая больше всего это задает. Я помню, что я следовал этому. Во всяком случае, от API documentation, это будет необходимо, если вы хотите автоматически отслеживать активность по API ниже 14:

public void reportActivityStart (Activity activity)

Если отчеты автоматической активности включены (см enableAutoActivityReports(Application)) на устройстве под управлением уровня 14 API или выше, этот метод будет noop.

+0

OK похоже работа. Но если мне нужно добавить код в каждое действие, чтобы включить отчет, тогда где «автоматизированная» часть в «отчетах по автоматическому просмотру экрана»? И почему я должен прекратить отчет? Разве это не сообщение, которое он отправляет только на сервер GA, который позволяет мне знать, что кто-то просматривает экран и все? –

+0

Я думаю, что это может быть какая-то давняя проблема, которая мешает этому работать для API до 14? – hidro

+0

и относительно второго вопроса - почему я должен прекратить отчет? Разве это не сообщение, которое он отправляет только на сервер GA, который позволяет мне знать, что кто-то просматривает экран и все? –

Смежные вопросы