このデベロッパー ガイドでは、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());
}
});
}
}