Есть ли какой-либо код, необходимый для 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.