8

Ho implementato Firebase Analytics. Funziona bene. Desidero utilizzare anche Google Analytics. Sulla base della discussione here ho inserito l'oggetto di seguito nella google-services.jsonAggiunta di Firebase Analytics e Google Analytics nell'app per Android

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

Per Google Analytics, ho il Tracker Classe

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

}

Uso

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

} 

Scenario di errore

Se non ho incluso l'oggetto di analisi google sottostante in google-services.json, la Base di sicurezza funziona correttamente.

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

Quando includo Google Analytics oggetto in google-services.json, quindi sto ottenendo questo errore sotto

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 

Domanda 1. Ho bisogno di rimuovere l'ecommerce_tracker.xml e global_tracker.xml? La classe PuzzleGamesTracker lo sta già utilizzando. Come superarlo? 2. Vi prego di guidare in modo che potessi avere sia implementazione FA e GA successo

+1

perché si stanno implementando due stesse cose? – johnrao07

+0

Non sono la stessa cosa. Non sono OP ma ho lo stesso problema. Uno dei miei clienti mi ha chiesto di aggiungere l'analisi FireBase mentre hanno già Google Analytics nell'app. Hanno i loro motivi di lavoro e i due dovrebbero essere in grado di lavorare fianco a fianco, dopotutto sono entrambi prodotti Google. – breakline

risposta

7

Infine, ho trovato una risposta per l'aggiunta sia

Fase 1. Rimosso i file XML GA e FA R.xml.global_tracker

Passaggio 2. Sostituito mTracker = analytics.newTracker (R.xml.global_tracker); con mTracker = analytics.newTracker (PROPERTY_ID);

Punto 3. Aggiungere il seguente in un file JSON "analytics_service": { "status" : 2, "analytics_property": { "tracking_id": "" }} ,

+0

come circa l'id app in google-services.json? posso chiederti come crei anche il tuo progetto Firebase? Ho letto una risposta da un'altra domanda SO su questo. http://stackoverflow.com/a/39323887/510577 che richiede di IMPORTARE GA APP invece di creare una nuova app. È il tuo caso? –

+0

Hai bisogno di un ID di Google Analytics, questo è un ID diverso dall'ID del progetto Firebase. Crea un nuovo progetto nel sito web di Analytics per ottenere l'ID "UA-XXXXXXXX-XX". – Pelanes

0

sembra freddo , ma per quanto riguarda l'ID app, non è necessario l'ID app per il monitoraggio degli eventi su Google e Firebase Analytics

+0

Questa dovrebbe essere una risposta o un commento? – hering

+0

Questo dovrebbe essere un commento, ma non ho ancora i permessi per scrivere commenti su altri post !! –