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