يوضِّح دليل المطوِّر هذا كيفية استخدام الإصدار 4 من حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google" لنظام التشغيل Android لقياس الأحداث في تطبيقك.
نظرة عامة
الأحداث هي طريقة مفيدة لجمع البيانات حول تفاعل المستخدم مع
المكوّنات التفاعلية لتطبيقك، مثل الضغطات على الأزرار أو استخدام
عنصر معيّن في إحدى الألعاب.
يتألف الحدث من أربعة حقول يمكنك استخدامها لوصف تفاعل المستخدم مع محتوى تطبيقك:
اسم الحقل |
النوع |
مطلوبة |
الوصف |
الفئة |
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());
للحصول على مزيد من المعلومات عن النتائج غير التفاعلية وحالات استخدامها، اطّلع على
الأحداث غير التفاعلية في مركز مساعدة "إحصاءات Google".
الاطّلاع على مقتطف رمز من نموذج التطبيق
يعرض المقتطف التالي مثالاً
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());
}
});
}
}