In diesem Entwicklerleitfaden wird beschrieben, wie Sie das Nutzertiming mit dem Google Analytics SDK Version 4 für Android messen.
Überblick
Das Messen des Nutzertimings bietet eine native Möglichkeit, einen Zeitraum in Google Analytics zu messen. Dies kann nützlich sein, um beispielsweise die Ladezeiten von Ressourcen zu messen.
Für Nutzertimings gibt es die folgenden Felder:
Feldname |
Typ |
Erforderlich |
Beschreibung |
Kategorie |
String
| Ja |
Die Kategorie des zeitgesteuerten Ereignisses |
Wert |
long
| Ja |
Zeitmessung in Millisekunden |
Name |
String
| Ja |
Der Name des zeitgesteuerten Ereignisses. |
Label |
String
| Nein |
Das Label des zeitgesteuerten Ereignisses |
Die Daten zum Nutzertiming finden Sie hauptsächlich im Bericht „Nutzertimings der App-Geschwindigkeit“.
Implementierung
Wenn du ein Nutzertiming an Google Analytics senden möchtest, musst du ein TimingBuilder
erstellen und mit Tracker
senden.
// 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());
Weitere Informationen zur Methode getTracker
finden Sie unter
Erweiterte Konfiguration.
Code-Snippet aus der Beispielanwendung ansehen
Das folgende Snippet zeigt ein Beispiel für Fragment
, das ein Nutzertiming sendet:
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();
}
}