Google Analytics версии 3 — как правильно его применять?

Я добавил Google Analytics в свое приложение с целью получения информации о ваших экранах и отправки пользовательских событий.

У меня получается дублированный контент... Также я получаю разные результаты: "com.package.app.MainScreen" - 300 просмотров и "Главный экран" - 200 просмотров

Я заинтересован в том, чтобы получать только настраиваемое имя действия, а не пакет. И в любом случае, потому что оба показывают разные результаты?

public class MainScreen extends Activity {
private static final String GA_PROPERTY_ID = "UA-12345678-9"; 
private static final String SCREEN_LABEL = "Main Screen";
Tracker mTracker;
EasyTracker easyTracker;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_screen);

    mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID);
    mTracker.set(Fields.SCREEN_NAME, SCREEN_LABEL); // For Custom Name from activity
    mTracker.send(MapBuilder.createAppView().build());

    easyTracker = EasyTracker.getInstance(this); //  Analytics Events
    ...
    easyTracker.send(MapBuilder.createEvent("MainScreen", "Play", category.get(1), null).build()); //AnalyticsEvents
    ...


}

@Override
public void onStart() {
    super.onStart();
    EasyTracker.getInstance(this).activityStart(this);
}

@Override
public void onStop() {
    super.onStop();
    EasyTracker.getInstance(this).activityStop(this);
}

}

И analytics.xml:

<?xml version="1.0" encoding="utf-8" ?>
    <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
      <!--Replace placeholder ID with your tracking ID-->
      <string name="ga_trackingId">UA-12345678-9</string>
      <!--Enable automatic activity tracking-->
      <bool name="ga_autoActivityTracking">true</bool>
      <!--Enable automatic exception tracking-->
      <bool name="ga_reportUncaughtExceptions">true</bool>
    </resources>

Руководство по Google Analytics для разработчиков


person ephramd    schedule 20.10.2013    source источник


Ответы (1)


У вас есть 3 отдельных экземпляра отслеживания, 2 в onCreate(), а также один в onStart()/onStop(). Я бы порекомендовал удалить их обоих из onCreate() и просто оставить EasyTracker в onStart()/noNstop(), чтобы вы не получали избыточных данных, но по-прежнему получали длину сеанса.

Чтобы иметь собственные имена для действий, отслеживаемых EasyTracker, вы можете задать их в своем analytics.xml, добавив следующие поля как таковые:

<-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>

<-- The screen names that will appear in reports -->
<string name="com.example.app.BaseActivity">Home</string>
<string name="com.example.app.PrefsActivity">Preferences</string>

Вот onClick(View) с EasyTracker для отправки событий пользовательского интерфейса:

@Override
public void onClick(View view) {
    String action = "";
    switch(view.getId()) {
    case R.id.btnWeb:
        getSherlockActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(sponsor.getWebsite())));
        action = "Website";
        break;
    case R.id.btnPhone:
        getSherlockActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:" + PhoneNumberUtils.stripSeparators(sponsor.getPhone()))));
        action = "Phone";
        break;
    }

      EasyTracker easyTracker = EasyTracker.getInstance(getSherlockActivity());
      if (easyTracker != null) {
          easyTracker.send(MapBuilder
              .createEvent("ui_action",
                           "sponsor_page",
                           title + ": " + sponsor.getName() + " - " + action,
                           null)
              .build()
          );
      }
}
person Tonithy    schedule 20.10.2013
comment
Но таким образом я не могу отправлять события или даже получить собственное имя для действия. - person ephramd; 21.10.2013
comment
@ephramd Тогда вы не захотите использовать EasyTracker, но все равно захотите иметь Tracker в onStart()/onStop(). Вы бы использовали другой трекер для событий на индивидуальной основе. Я опубликую код... - person Tonithy; 22.10.2013