2013-04-13 2 views
5

Ho impostato una classe helper che riporta eventi e schermate a Google Analytics, tramite lo EasyTracker, per un motivo sconosciuto ogni volta che riavvio l'app, segnala tutto lo schermo e gli eventi come un nuovo utente. Ho controllato il file gaClientId, che memorizza un ID univoco. Ma ogni volta che riavvio l'app, l'ID memorizzato in questo file cambia, rispetto ad altre app in cui è rimasto lo stesso.EasyTracker (GA) ogni avvio dell'app segnalato come nuovo utente

Ecco il codice che uso nel mio classe di supporto, si noti che ho provato ad utilizzare contesto ApplicationContext come well.I provato disabilitando l'invio immediato (e sì, lo so la sua non buona pratica di segnalarlo immediatamente)

private static String mLastView = ""; 

public static void sendView(String view,Context ctx) { 

    // Don't report screen twice in a row 
    if(view.equals(mLastView)) return; 

    mLastView = view; 

    EasyTracker.getInstance().setContext(ctx); 
    EasyTracker.getTracker().sendView(view); 
    EasyTracker.getInstance().dispatch(); 
} 

public static void sendEvent(Context ctx,String category,String action,String label,long value){ 

    EasyTracker.getInstance().setContext(ctx); 
    EasyTracker.getTracker().sendEvent(category, action, label, value); 
    EasyTracker.getInstance().dispatch(); 
} 

Aggiornamento: ho provato con la classe GoogleAnalytics senza l'inseguitore facile, ma ancora non ci work.I indovinare una sorta di problema permesso di lettura (ma può scriverlo?), il file che si trova a data/data/com.my.app/files/gaClientId

Aggiornamento: Ho provato qualcosa, posso leggere il file gaClientId manualmente, nessun problema, stanco reporting con e senza classe helper, creo ancora un nuovo ClientID ogni avvio dell'app.

+0

1. quali GA SDK stai usando? 2. hai provato su altri dispositivi/emulatori? – Raanan

+0

Sì, l'ho provato nell'emulatore e su più di 10 dispositivi. Sto usando l'ultima versione di GA V2 Beta 5 –

+0

Beta 5 è stato rilasciato 8 giorni fa, hai provato a passare alla beta 4? Questo sembra un problema di env/setup, suggerirei di creare un piccolo progetto di test semplice. – Raanan

risposta

4

indovinate un po '? il file che memorizza il ClientID situato a data/data/com.my.app/files/gaClientId e il file di download dell'app in questa cartella. Ogni avvio dell'applicazione ho eseguito il controllo della cartella e cancellato il suo contenuto.quando, quando l'analisi è stata inizializzata, non è stato possibile trovare il file gaClientId, e ha creato uno nuovo che ha creato un nuovo utente

TIP non conservare nulla alla radice di files

1

Sto utilizzando il tracker facile e non ho avuto questo problema. Ecco come lo faccio: Nel onCreate() della vostra attività appena messo:

gaInstance = GoogleAnalytics.getInstance(this); 
    tracker = gaInstance.getDefaultTracker() 

gaInstance & inseguitore sono campi globali.

Poi nella onStart() è sufficiente chiamare piace:

tracker.sendView("/youractivity"); 

che per la vista. L'evento così è solo una:

  tracker.sendEvent("String", 
        "String", 
        "String", 
        "long"); 

L'ultima cosa da fare è modificare il valore predefinito per il timeout della sessione nel file analytics.xml. Per impostazione predefinita è di 30 secondi, nell'esempio seguente è di 30 minuti

<integer name="ga_sessionTimeout">1800</integer>