GoogleAnalytics 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 или по-високо, този метод ще бъде noop.

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