Hướng dẫn cho nhà phát triển này mô tả cách đo lường thời gian người dùng bằng
Google Analytics SDK phiên bản 4 dành cho Android.
Tổng quan
Việc đo lường thời gian người dùng cung cấp một cách thức riêng để đo lường một khoảng thời gian trong
Google Analytics. Ví dụ: thành phần này có thể hữu ích khi đo lường thời gian tải tài nguyên.
Thời gian người dùng có các trường sau:
Tên trường |
Loại |
Bắt buộc |
Nội dung mô tả |
Danh mục |
String
| Có |
Danh mục sự kiện có tính giờ |
Giá trị |
long
| Có |
Đo thời gian tính bằng mili giây |
Tên |
String
| Có |
Tên của sự kiện được tính giờ |
Hãng nhạc |
String
| Không |
Nhãn của sự kiện đã xác định thời gian |
Bạn có thể tìm thấy dữ liệu thời gian của người dùng chủ yếu trong báo cáo Thời gian người dùng với tốc độ của ứng dụng.
Triển khai
Để gửi thời gian của người dùng đến Google Analytics, hãy tạo
TimingBuilder
và sử dụng Tracker
để gửi thời gian đó.
// 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());
Xem phần
Cấu hình nâng cao để biết thông tin chi tiết về phương thức getTracker
.
Xem đoạn mã từ ứng dụng mẫu
Đoạn mã sau đây cho thấy một ví dụ về Fragment
gửi thời gian của người dùng:
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();
}
}