Questa guida per gli sviluppatori descrive come misurare i tempi utente con
l'SDK Google Analytics v4 per Android.
Panoramica
La misurazione dei tempi utente fornisce un modo nativo per misurare un periodo di tempo in Google Analytics. Questo può essere utile, ad esempio,
per misurare i tempi di caricamento delle risorse.
I Tempi utente hanno i seguenti campi:
Nome campo |
Tipo |
Obbligatorio |
Descrizione |
Categoria |
String
| Sì |
La categoria dell'evento a tempo |
Valore |
long
| Sì |
La misurazione dei tempi in millisecondi |
Nome |
String
| Sì |
Il nome dell'evento a tempo |
Etichetta |
String
| No |
L'etichetta dell'evento a tempo |
I dati relativi al tempo utente sono disponibili principalmente nel report Tempi utenti velocità applicazione.
Implementazione
Per inviare un timestamp utente a Google Analytics, crea un
TimingBuilder
e utilizza un Tracker
per inviarlo.
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send timing.
t.send(new HitBuilders.TimingBuilder()
.setCategory(getTimingCategory())
.setValue(getTimingInterval())
.setVariable(getTimingName())
.setLabel(getTimingLabel())
.build());
Per maggiori dettagli sul metodo getTracker
, consulta
Configurazione avanzata.
Visualizza uno snippet di codice dall'applicazione di esempio
Lo snippet seguente mostra un esempio Fragment
che invia
un tempo utente:
package com.google.android.apps.mobileplayground;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.apps.mobileplayground.AnalyticsSampleApp.TrackerName;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
/**
* Class to exercise Timing hits.
*/
public class TimingFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.timing, container, false);
final Button sendButton = (Button) view.findViewById(R.id.timingSend);
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send timing.
t.send(new HitBuilders.TimingBuilder()
.setCategory(getTimingCategory())
.setValue(getTimingInterval())
.setVariable(getTimingName())
.setLabel(getTimingLabel())
.build());
}
});
final Button dispatchButton = (Button) view.findViewById(R.id.timingDispatch);
dispatchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Manually start a dispatch (Unnecessary if the tracker has a dispatch interval)
GoogleAnalytics.getInstance(getActivity().getBaseContext()).dispatchLocalHits();
}
});
return view;
}
private String getTimingCategory() {
return ((EditText) getView().findViewById(R.id.editTimingCategory)).getText().toString().trim();
}
private long getTimingInterval() {
String value =
((EditText) getView().findViewById(R.id.editTimingInterval)).getText().toString().trim();
if (value.length() == 0) {
return 0;
}
return Long.valueOf(value);
}
private String getTimingName() {
return ((EditText) getView().findViewById(R.id.editTimingName)).getText().toString().trim();
}
private String getTimingLabel() {
return ((EditText) getView().findViewById(R.id.editTimingLabel)).getText().toString().trim();
}
}