Я реализовал Firebase Analytics. Он работает нормально. Я также хочу использовать Google Analytics. На основе обсуждения here я включил ниже объект в Google-services.jsonДобавление Firebase Analytics и Google Analytics в приложение для Android
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "<your tracking id>"
}
},
для Google Analytics, у меня есть трекер класса
public class PuzzleGamesTracker extends Application {
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "<your tracking id>";
private Tracker mTracker;
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
/**
* Gets the default {@link Tracker} for this {@link Application}.
* @return tracker
*/
synchronized public Tracker getDefaultTracker() {
if (mTracker == null) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
// To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG
mTracker = analytics.newTracker(R.xml.global_tracker);
}
return mTracker;
}
}
Использование
public void sendToGoogleAnalytics(String arg) {
// TODO Auto-generated method stub
sendToFireBase();
PuzzleGamesTracker application = (PuzzleGamesTracker) getApplication();
Tracker mTracker = application.getDefaultTracker();
mTracker.setScreenName(arg);
mTracker.send(new HitBuilders.AppViewBuilder().build());
}
public void sendToFireBase() {
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item 1A");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name 1A");
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 1");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item B");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name B");
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 1");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test_Item 2A");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test_Name 2A");
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test_Image 2");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
}
Сценарий ошибок
Если я не включил нижеуказанный объект Google Analytics в google-services.json, тогда Fire Base работает правильно.
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": "<your tracking id>"
}
},
Когда я включаю Google Analytics объект в Google-services.json, то я получаю эту ошибку ниже
Error:Execution failed for task ':android:mergeReleaseResources'.
> [xml/global_tracker] C:\Users\android\build\generated\res\google- services\release\xml\global_tracker.xml [xml/global_tracker] C:\Users\android\res\xml\global_tracker.xml: Error: Duplicate resources
Вопрос 1. Нужно ли мне удалить ecommerce_tracker.xml и global_tracker.xml? Он уже использует класс PuzzleGamesTracker. Как его преодолеть? 2. Пожалуйста, наставит меня, так что я мог бы иметь как FA и GA успешной реализации
Почему вы реализуете две одинаковые вещи? – johnrao07
Это не одно и то же. Я не ОП, но имею ту же проблему. Один из моих клиентов попросил меня добавить аналитику FireBase, пока у них уже есть Google Analytics в приложении. У них есть свои бизнес-причины, и они должны работать бок о бок, ведь оба являются продуктами Google. – breakline