8

Zaimplementowałem Firebase Analytics. Działa dobrze. Chcę również korzystać z Google Analytics. Na podstawie dyskusji here mam włączone poniższy obiekt w Google services.jsonDodawanie Firebase Analytics i Google Analytics w aplikacji Android

"analytics_service": { 
     "status": 2, 
     "analytics_property": { 
     "tracking_id": "<your tracking id>" 
     } 
    }, 

Google Analytics, mam Tracker Class

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; 
} 

}

Wykorzystanie

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); 

} 

Scenariusz błędu

Jeśli nie zamieściłem poniższego obiektu google analytics w google-services.json, wówczas Fire Base działa poprawnie.

"analytics_service": { 
    "status": 2, 
    "analytics_property": { 
    "tracking_id": "<your tracking id>" 
    } 
}, 

Kiedy to obiekt w Google Analytics Google services.json, następnie otrzymuję ten błąd poniżej

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 

Pytanie 1. Czy muszę usunąć ecommerce_tracker.xml i global_tracker.xml? Używa go już klasa PuzzleGamesTracker. Jak przezwyciężyć? 2. Proszę prowadź mnie tak, że mogę mieć zarówno realizację FA i GA udaną

+1

dlaczego wdrażasz dwie takie same rzeczy? – johnrao07

+0

To nie to samo. Nie jestem OP, ale mam ten sam problem. Jeden z moich klientów poprosił mnie o dodanie analityki FireBase, gdy już mają Google Analytics w aplikacji. Mają swoje biznesowe powody i obydwaj powinni mieć możliwość pracy obok siebie, skoro wszyscy są również produktami Google. – breakline

Odpowiedz

7

Wreszcie znalazłem odpowiedź na dodawanie zarówno Ga i FA

Krok 1. Usunięte pliki xml R.xml.global_tracker

Krok 2. Zastąpiono mTracker = analytics.newTracker (R.xml.global_tracker); z mTracker = analytics.newTracker (PROPERTY_ID);

Krok 3. Dodaj następujące w pliku json "analytics_service": { "status" : 2, "analytics_property": { "TRACKING_ID": "" } }

+0

Co powiesz na identyfikator aplikacji w google-services.json? czy mogę zapytać, jak również tworzysz swój projekt bazy ogniowej? Czytałem odpowiedź z innego pytania SO na ten temat. http://stackoverflow.com/a/39323887/510577 który wymaga IMPORTUJ APLIKACJĘ GA zamiast tworzyć nową aplikację. Czy to twoja sprawa? –

+0

Potrzebujesz identyfikatora Google Analytics, jest to inny identyfikator niż identyfikator projektu Firebase. Utwórz nowy projekt na stronie Analytics, aby uzyskać identyfikator "UA-XXXXXXXX-XX". – Pelanes

0

wygląda świetnie , ale co z identyfikatorem aplikacji, czy nie potrzebujemy identyfikatora aplikacji do śledzenia zdarzeń w Google i Firebase Analytics

+0

Czy powinna to być odpowiedź czy komentarz? – hering

+0

To powinien być komentarz, ale nie mam uprawnień do pisania komentarzy na temat innych postów! –