Есть ли какой-либо код, необходимый для Activity, чтобы ga_autoActivityTracking = true работал в Google Analytics V4
В Google Analytics v3 для автоматического отслеживания Activity
нам нужно иметь
-
ga_autoActivityTracking
флаг в manifest.xml.
- код GA в
onStart
и onStop
SDK для Google Analytics для Android v3
public class myTrackedActivity extends Activity {
@Override
public void onStart() {
super.onStart();
... // The rest of your onStart() code.
EasyTracker.getInstance(this).activityStart(this); // Add this method.
}
@Override
public void onStop() {
super.onStop();
... // The rest of your onStop() code.
EasyTracker.getInstance(this).activityStop(this); // Add this method.
}
}
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!--Replace placeholder ID with your tracking ID-->
<string name="ga_trackingId">UA-XXXX-Y</string>
<!--Enable automatic activity tracking-->
<bool name="ga_autoActivityTracking">true</bool>
<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
Однако, когда приходит к новой версии Google Analytics v4, (https://developers.google.com/analytics/devguides/collection/android/v4/), я не вижу, чтобы какой-либо код должен был быть добавлен в Activity
. Из приведенной выше документации кажется, что нам нужно только
-
ga_autoActivityTracking
флаг в manifest.xml.
SDK Google Analytics v4
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The screen names that will appear in reports -->
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.ScreenviewFragment">
AnalyticsSampleApp ScreenView
</screenName>
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.EcommerceFragment">
AnalyticsSampleApp EcommerceView
</screenName>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-XXXXXXX-Y</string>
</resources>
Однако после тестирования кажется, что никакой информации отслеживания не отправляется автоматически из Activity
.
Не хватает ли документации для Google Analytics V4?
Ответы
Ответ 1
Шаг 1
Добавить app_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-00000000-1</string>
<!-- catch and report uncaught exceptions from the app -->
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_sessionTimeout">300</integer>
<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- The screen names that will appear in reports -->
<screenName name="com.mypackage.NameActivity">Name Activity</screenName>
</resources>
Шаг 2
Добавлен getTracker
public static Tracker getTracker() {
if (false == isGooglePlayServicesAvailable()) {
return null;
}
if (tracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(MyApplication.instance());
tracker = analytics.newTracker(R.xml.app_tracker);
}
return tracker;
}
Шаг 3
Включить GA во время запуска активности
public class MyFragmentActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Utils.getTracker();
Ответ 2
Да, в GAV4 есть ошибка. См. Ответы здесь и здесь.
Для устройств, на которых запущен API v14 (Ice Cream Sandwich), или позже вам нужно позвонить enableAutoActivityReports
в дополнение к настройке ga_autoActivityTracking
на true в файле конфигурации трекера. Я подтвердил, что это работает (то есть, просмотры экрана сообщаются в консоли Google Analytics) на устройстве post v14.
Если вы хотите, чтобы ваше приложение поддерживало устройства, работающие с pre-API 14, вам также нужно добавить вызовы reportActivityStart
и reportActivityStop
в onStart
и onStop
для всех действий, которые вы хотите отслеживать. Я подтвердил, что это работает на устройстве pre v14.
Я только пробовал это с действиями, а не с фрагментами, и, с одной из вышеперечисленных ссылок, похоже, что автоматическое отслеживание экрана не работает с фрагментами.
Ответ 3
Вам необходимо добавить следующий код, упомянутый в шаге 4 ссылки, размещенной вами в вашем коде Activity/Fragment:
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Set screen name.
// Where path is a String representing the screen name.
t.setScreenName(path);
// Send a screen view.
t.send(new HitBuilders.AppViewBuilder().build());
Если вы посмотрите на ссылку: https://developers.google.com/analytics/devguides/collection/android/v4/screens#implementation, там также будет показан фрагмент фрагмента.
ИЗМЕНИТЬ:
К сожалению, вышеуказанная информация была предназначена для ручного отслеживания.
По этой ссылке: https://developers.google.com/analytics/devguides/collection/android/v4/screens#automatic,
если вы включите автоматическое отслеживание вида экрана в своей конфигурации XML, вам нужно выполнить только два шага:
- Задайте параметр ga_autoActivityTracking в вашей конфигурации XML
файл.
- Дайте каждой вашей деятельности имя экрана в файле конфигурации XML.