คู่มือนักพัฒนาซอฟต์แวร์นี้จะอธิบายวิธีใช้ Google Analytics SDK v4 สำหรับ Android เพื่อวัดเหตุการณ์ในแอปของคุณ
ภาพรวม
เหตุการณ์เป็นวิธีที่มีประโยชน์ในการรวบรวมข้อมูลเกี่ยวกับการโต้ตอบของผู้ใช้กับองค์ประกอบแบบอินเทอร์แอกทีฟของแอป เช่น การกดปุ่มหรือการใช้รายการหนึ่งๆ ในเกม
เหตุการณ์ประกอบด้วยช่อง 4 ช่องที่คุณใช้อธิบายการโต้ตอบของผู้ใช้กับเนื้อหาแอปได้
ชื่อช่อง |
ประเภท |
จำเป็น |
คำอธิบาย |
หมวดหมู่ |
String |
ใช่ |
หมวดหมู่เหตุการณ์ |
การดำเนินการ |
String |
ใช่ |
การทำงานของเหตุการณ์ |
ค่ายเพลง |
String |
ไม่ได้ |
ป้ายกำกับเหตุการณ์ |
ค่า |
Long |
ไม่ได้ |
ค่าเหตุการณ์ |
การใช้งาน
หากต้องการส่งเหตุการณ์ไปยัง Google Analytics ให้ใช้ HitBuilders.EventBuilder
และส่ง Hit ดังที่แสดงในตัวอย่างนี้
// 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());
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Hit ที่ไม่มีการโต้ตอบและกรณีที่ควรใช้ Hit ได้จาก
เหตุการณ์ที่ไม่มีการโต้ตอบในศูนย์ช่วยเหลือของ Analytics
ดูข้อมูลโค้ดจากแอปพลิเคชันตัวอย่าง
ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่าง 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());
}
});
}
}