이 개발자 가이드에서는 Android용 Google 애널리틱스 SDK v4를 사용하여 앱의 이벤트를 측정하는 방법을 설명합니다.
개요
이벤트는 버튼 누르기 또는 게임에서 특정 항목 사용과 같은 앱의 양방향 구성요소와 사용자의 상호작용에 관한 데이터를 수집하는 유용한 방법입니다.
이벤트는 사용자와 앱 콘텐츠의 상호작용을 설명하는 데 사용할 수 있는 다음 4가지 필드로 구성됩니다.
필드 이름 |
유형 |
필수 |
설명 |
카테고리 |
String |
예 |
이벤트 카테고리입니다. |
작업 |
String |
예 |
이벤트 액션입니다. |
라벨 |
String |
아니요 |
이벤트 라벨입니다. |
값 |
Long |
아니요 |
이벤트 값입니다. |
구현
Google 애널리틱스로 이벤트를 전송하려면 다음 예와 같이 HitBuilders.EventBuilder
를 사용하고 조회를 전송합니다.
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send an Event.
t.send(new HitBuilders.EventBuilder()
.setCategory(getString(categoryId))
.setAction(getString(actionId))
.setLabel(getString(labelId))
.build());
getTracker
메서드에 대한 자세한 내용은
고급 구성을 참조하세요.
비상호작용 이벤트
경우에 따라 이벤트를
비상호작용 이벤트로 전송해야 할 수도 있습니다. 이렇게 하려면 true
를
setNonInteraction
에 전달합니다.
t.send(new HitBuilders.EventBuilder()
.setCategory(getString(categoryId))
.setAction(getString(actionId))
.setNonInteraction(true)
.build());
비상호작용 조회와 이를 사용해야 하는 경우에 대한 자세한 내용은 애널리틱스 고객센터의
비상호작용 이벤트를 참고하세요.
샘플 애플리케이션의 코드 스니펫 보기
다음 스니펫은 이벤트를 전송하는 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 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 Event hits.
*/
public class EventFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.event, container, false);
setupEvent(view, R.id.video1Play, R.string.videoCategory, R.string.videoPlay, R.string.video1);
setupEvent(view, R.id.video1Pause, R.string.videoCategory, R.string.videoPause,
R.string.video1);
setupEvent(view, R.id.video2Play, R.string.videoCategory, R.string.videoPlay, R.string.video2);
setupEvent(view, R.id.video2Pause, R.string.videoCategory, R.string.videoPause,
R.string.video2);
setupEvent(view, R.id.book1View, R.string.bookCategory, R.string.bookView, R.string.book1);
setupEvent(view, R.id.book1Share, R.string.bookCategory, R.string.bookShare, R.string.book1);
final Button dispatchButton = (Button) view.findViewById(R.id.eventDispatch);
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().getApplicationContext()).dispatchLocalHits();
}
});
return view;
}
private void setupEvent(View v, int buttonId, final int categoryId, final int actionId,
final int labelId) {
final Button pageviewButton = (Button) v.findViewById(buttonId);
pageviewButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send an Event.
t.send(new HitBuilders.EventBuilder()
.setCategory(getString(categoryId))
.setAction(getString(actionId))
.setLabel(getString(labelId))
.build());
}
});
}
}