이 개발자 가이드에서는 Android용 Google 애널리틱스 SDK v4를 사용하여 사용자 시간을 측정하는 방법을 설명합니다.
개요
사용자 시간 측정은 Google 애널리틱스에서 기간을 측정하는 기본적인 방법입니다. 이는 예를 들어 리소스 로드 시간을 측정하는 데 유용할 수 있습니다.
사용자 시간에는 다음과 같은 필드가 있습니다.
필드 이름 |
유형 |
필수 |
설명 |
카테고리 |
String
| 예 |
시간이 지정된 이벤트의 카테고리 |
값 |
long
| 예 |
밀리초 단위의 타이밍 측정 |
이름 |
String
| 예 |
시간이 지정된 이벤트의 이름 |
라벨 |
String
| 아니요 |
시간이 지정된 이벤트의 라벨 |
사용자 시간 데이터는 주로 앱 속도 사용자 시간 보고서에서 확인할 수 있습니다.
구현
사용자 시간을 Google 애널리틱스로 전송하려면 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();
}
}