این راهنمای توسعهدهنده نحوه اندازهگیری زمانبندی کاربر با Google Analytics SDK v4 برای Android را شرح میدهد.
بررسی اجمالی
اندازهگیری زمانبندی کاربران روشی طبیعی برای اندازهگیری یک دوره زمانی در Google Analytics ارائه میکند. به عنوان مثال، این می تواند برای اندازه گیری زمان بارگذاری منابع مفید باشد.
زمان بندی کاربر دارای فیلدهای زیر است:
نام زمینه | تایپ کنید | ضروری | شرح |
---|
دسته بندی | String | آره | دسته رویداد زمان بندی شده |
ارزش | long | آره | اندازه گیری زمان بر حسب میلی ثانیه |
نام | String | آره | نام رویداد زمان بندی شده |
برچسب | String | خیر | برچسب رویداد زمان بندی شده |
دادههای زمانبندی کاربر را میتوان در درجه اول در گزارش زمانبندی کاربر سرعت برنامه یافت.
پیاده سازی
برای ارسال زمانبندی کاربر به Google Analytics، یک TimingBuilder
ایجاد کنید و از یک Tracker
برای ارسال آن استفاده کنید.
// 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
به تنظیمات پیشرفته مراجعه کنید.
یک قطعه کد از نمونه برنامه را ببینید
قطعه زیر نمونه ای از Fragment
را نشان می دهد که زمان بندی کاربر را ارسال می کند:
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();
}
}