En esta guía para desarrolladores, se describe cómo medir los tiempos de los usuarios con el
SDK de Google Analytics versión 4 para Android.
Descripción general
La medición de los tiempos de los usuarios proporciona una forma nativa de medir un período en Google Analytics. Esto puede ser útil para medir los tiempos de carga de los recursos, por ejemplo.
Los tiempos de los usuarios tienen los siguientes campos:
Nombre del campo |
Tipo |
Obligatorio |
Descripción |
Categoría |
String
| Sí |
La categoría del evento con horario |
Valor |
long
| Sí |
La medición de tiempo en milisegundos |
Nombre |
String
| Sí |
El nombre del evento programado |
Etiqueta |
String
| No |
La etiqueta del evento programado |
Los datos sobre los tiempos del usuario se pueden encontrar principalmente en el informe Tiempos del usuario de velocidad de la app.
Implementación
Para enviar el tiempo de un usuario a Google Analytics, crea un TimingBuilder
y usa un Tracker
para enviarlo.
// 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());
Consulta
Configuración avanzada para obtener detalles sobre el método getTracker
.
Cómo ver un fragmento de código de la aplicación de ejemplo
En el siguiente fragmento, se muestra un Fragment
de ejemplo que envía el tiempo de un usuario:
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();
}
}