Ce guide du développeur explique comment mesurer les temps utilisateur avec le SDK Google Analytics v4 pour Android.
Présentation
Mesurer le temps utilisateur est un moyen natif de mesurer une période dans Google Analytics. Cela peut être utile pour mesurer les temps de chargement des ressources, par exemple.
Les temps utilisateur comportent les champs suivants:
Nom du champ |
Type |
Obligatoire |
Description |
Catégorie |
String
| Oui |
Catégorie de l'événement programmé |
Valeur |
long
| Oui |
Mesure de la durée en millisecondes |
Nom |
String
| Oui |
Nom de l'événement programmé |
Étiquette |
String
| Non |
Libellé de l'événement programmé |
Ces données se trouvent principalement dans le rapport "Vitesse de l'application" sur le temps utilisateur.
Implémentation
Pour envoyer un temps utilisateur à Google Analytics, créez un TimingBuilder
et utilisez un Tracker
pour l'envoyer.
// 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());
Pour en savoir plus sur la méthode getTracker
, consultez la section
Configuration avancée.
Afficher un extrait de code de l'exemple d'application
L'extrait de code suivant présente un exemple de Fragment
qui envoie un temps utilisateur:
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();
}
}