이 개발자 가이드에서는 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());
}
});
}
}