API Google Analytics v4 для Android НЕ ОТКРЫВАЕТ СЕТКИ

Я установил все для google analytics api v4, как он упоминается здесь:
https://developers.google.com/analytics/devguides/collection/android/v4/
и здесь: http://www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html


Я могу видеть данные в реальном времени, но я не мог видеть Экраны, Активные пользователи, Новые пользователи и Лучшие модели устройств в определенный период времени, например "Все время".

Аналитик не отправляет просмотры экрана.


Вот мой global_tracker.xml

    <string name="ga_trackingId">UA-XXXXXXXX-Y</string>

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

    <bool name="ga_autoActivityTracking">true</bool>

    <bool name="ga_reportUncaughtExceptions">true</bool>

    <screenName name="com.org.ScreenActivity1">Screen 1</screenName>
    <screenName name="com.org.ScreenActivity2">Screen 2</screenName>


Вот мой AndroidManifest.xml

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker"/>


Вот мой Analytics.java

public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER // Tracker used by all the apps from a company. eg: roll-up tracking.
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    public Analytics() {
        super();
    }

    public synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

            if (trackerId == TrackerName.GLOBAL_TRACKER) {
                mTrackers.put(trackerId, analytics.newTracker(R.xml.global_tracker));
            }

        }

        return mTrackers.get(trackerId);
    }


Вот мой класс активности:

protected void onCreate(Bundle bundle){
//......................

Tracker tracker = ((Analytics) getApplication()).getTracker(Analytics.TrackerName.GLOBAL_TRACKER);
        tracker.setScreenName("Main Activity");
        tracker.send(new HitBuilders.AppViewBuilder().build());

//......................

}

    @Override
    protected void onStart() {
        super.onStart();
        GoogleAnalytics.getInstance(this).reportActivityStart(this);
    }

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

Ответы

Ответ 1

Проблема в соответствии с ответом @stkent заключается в том, что AppViewBuilder() устарел, поэтому вы можете исправить свою проблему, удалив эту строку кода, что вам нужно в вашем случае И чтобы помочь людям, которые имеют такую ​​же проблему, после this удалите эту строку кода

 tracker.send(new HitBuilders.AppViewBuilder().build());

и добавьте это вместо

  @Override
protected void onStart() {
    super.onStart();
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

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

в каждом действии, которое вы хотите отслеживать

Дополнительная информация из google doc о тех двух методах

reportActivityStop
reportActivityStart

используя это с автоматическим отслеживанием, является noop, поэтому вы можете отключить его

исходный ответ для @skent в этом сообщении

Ответ 2

Я потерял один день. Пробовал все, от документации до интернет-кодов, ничего не делало, чтобы показывать мне общие просмотры экрана. Наконец, после полуночи сегодня они появились.

Я думаю, что если данные Google в режиме реального времени (отправка Tracker in onCreate или аналогичный метод) работают на вас, то просто подождите один день, эти данные будут обрабатываться где-то на серверах Google и будут готовы через некоторое время на аналитической панели.

пс. не слушайте Тони, его проблема не такая, как эта. Но у stkent есть неплохие сведения о проблеме Google Analytics не показывает активного пользователя в режиме реального времени

Ответ 3

добавление

<application
android:name="mypackagename.MyApplication"
... >

в файле манифеста, делает трюк.

Ответ 4

@tony прав, класс HitBuilders.AppViewBuilder устарел, но нет необходимости реализовывать методы onStart/Stop, если вы этого не хотите. Как указано в учебнике GA V4 (раздел 4), вы можете заменить класс AppViewBuilder на HitBuilders.ScreenViewBuilder(), и вы получите желаемый результат во всех платформы.

Подробнее о API-интерфейсе классов см. здесь: https://developer.android.com/reference/com/google/android/gms/analytics/HitBuilders.ScreenViewBuilder.html