Bu geliştirici kılavuzunda, Android için Google Analytics SDK v4 ile kullanıcı zamanlamalarının nasıl ölçüleceği açıklanmaktadır.
Genel bakış
Kullanıcı zamanlamalarını ölçmek, Google Analytics'te belirli bir süreyi ölçmek için yerel bir yol sağlar. Bu, örneğin kaynak yükleme sürelerini ölçmek için yararlı olabilir.
Kullanıcı zamanlamaları aşağıdaki alanları içerir:
Alan adı |
Tür |
Gerekli |
Açıklama |
Kategori |
String
| Evet |
Zamanlanmış etkinliğin kategorisi |
Değer |
long
| Evet |
Milisaniye cinsinden zamanlama ölçümü |
Ad |
String
| Evet |
Zamanlanmış etkinliğin adı |
Şirket |
String
| Hayır |
Zamanlanmış etkinliğin etiketi |
Kullanıcı zamanlaması verileri, öncelikli olarak Uygulama Hızı Kullanıcı Zamanlamaları raporunda bulunabilir.
Uygulama
Google Analytics'e kullanıcı zamanlaması göndermek için TimingBuilder
oluşturup Tracker
kullanarak gönderin.
// 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());
getTracker
yöntemi ile ilgili ayrıntılar için
Gelişmiş Yapılandırma bölümüne bakın.
Örnek Uygulamadan bir Kod Snippet'ine bakın
Aşağıdaki snippet'te, kullanıcı zamanlaması gönderen bir Fragment
örneği gösterilmektedir:
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();
}
}