Google Analytics enableAutoActivityTracking не работает

У меня возникла та же проблема, что и в этом вопросе:

enableAutoActivityTracking не отслеживает действия автоматически?

Проблема в том, что автоматическое отслеживание не работает с помощью 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>

In the application class:

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());

person Yonatan Nir    schedule 10.05.2015    source источник


Ответы (1)


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

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 документации, это потребуется, если вы хотите автоматически отслеживать активность для API ниже 14:

public void reportActivityStart (Activity activity)

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

person hidro    schedule 10.05.2015
comment
ОК, кажется, работает. Но если мне нужно добавить код в каждое действие, чтобы включить отчетность, то где же автоматизированная часть в автоматизированных отчетах о просмотре экрана? И почему я должен прекратить репортаж? Разве отчет не отправляется на сервер GA только один раз, что позволяет мне узнать, что кто-то просматривает экран, и все? - person Yonatan Nir; 10.05.2015
comment
Я думаю, что это может быть какая-то устаревшая проблема, которая мешает этому работать с API до 14? - person hidro; 10.05.2015
comment
а по поводу второго вопроса - зачем мне прекращать репортаж? Разве отчет не отправляется на сервер GA только один раз, что позволяет мне узнать, что кто-то просматривает экран, и все? - person Yonatan Nir; 10.05.2015
comment
Я считаю, что это для дифференциации сеансов. - person hidro; 10.05.2015