Panduan developer ini menjelaskan cara mengukur waktu pengguna dengan Google Analytics SDK v4 untuk Android.
Ringkasan
Mengukur waktu pengguna menyediakan cara native untuk mengukur jangka waktu di
Google Analytics. Hal ini dapat berguna, misalnya untuk mengukur waktu pemuatan resource.
Waktu pengguna memiliki kolom berikut:
Nama Kolom |
Jenis |
Wajib |
Deskripsi |
Kategori |
String
| Ya |
Kategori peristiwa dengan waktu |
Nilai |
long
| Ya |
Pengukuran pengaturan waktu dalam milidetik |
Nama |
String
| Ya |
Nama peristiwa dengan waktu |
Label |
String
| Tidak |
Label peristiwa dengan waktu |
Data waktu pengguna dapat ditemukan terutama di laporan Waktu Pengguna Kecepatan Aplikasi.
Penerapan
Untuk mengirim waktu pengguna ke Google Analytics, buat
TimingBuilder
dan gunakan Tracker
untuk mengirimnya.
// 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());
Lihat
Konfigurasi Lanjutan untuk detail tentang metode getTracker
.
Melihat Cuplikan Kode dari Aplikasi Contoh
Cuplikan berikut menunjukkan contoh Fragment
yang mengirim
waktu pengguna:
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();
}
}