如何实施新的Google Play服务(Google Analytics)?

时间:2014-04-18 10:33:47

标签: java android google-analytics

我不知道如何将新的GPS Analytics实施到我的应用中。我的问题位于正在描述的第4步here。我不知道如何使用

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
            TrackerName.APP_TRACKER);

正确。更准确地说,我需要为 AnalyticsSampleApp 撰写什么。

我的应用包名称为com.mnd.tsst

我的global_tracker.xml:

<?xml version="1.0" encoding="utf-8"?>

  300

<!-- Enable automatic Activity measurement -->
<bool name="ga_autoActivityTracking">true</bool>

<!-- The screen names that will appear in reports -->
<screenName name="com.google.android.gms.analytics.samples.mobileplayground.ScreenviewFragment">
    TimetableApp TimeTableView
</screenName>
<!--  The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-xxxxxx-5</string>

我输入了正确的属性ID,只是将其删除以在此处显示。

1 个答案:

答案 0 :(得分:4)

您需要创建一个新类,使用您想要的任何名称扩展Application类(例如,MyApp

在此课程中,您必须按照指南中的建议添加方法和字段,以添加到Application课程。

public class MyApp extends Application {
    public enum TrackerName {
        APP_TRACKER,
        GLOBAL_TRACKER,
        E_COMMERCE_TRACKER,
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
                    : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
                    : analytics.newTracker(R.xml.ecommerce_tracker);
            mTrackers.put(trackerId, t);
        }
        return mTrackers.get(trackerId);
    }
}

另外,在清单的application标记中添加以下内容:

android:name=".MyApp"

其中MyApp是您为Application班级提供的名称。

在global_tracker.xml文件中,我已经了解screenName的目的,但是,目前,您至少应该将示例包地址修改为自己活动的包名。

现在,让我们说将屏幕视图发送到Google Analytics,您只需键入任何活动内的任何位置(可能在onCreate或onResume中):

Tracker t = ((MyApp) getApplication()).getTracker(
                        TrackerName.APP_TRACKER);       // Get tracker.
t.setScreenName(ACTIVITY_NAME);     // Pass a String representing the screen name.
t.send(new HitBuilders.AppViewBuilder().build());       // Send a screen view.

同样,要发送一个事件(可能来自某个按钮的onClick)

Tracker t = ((MyApp) getActivity().getApplication()).getTracker(
                    TrackerName.APP_TRACKER);
t.send(new HitBuilders.EventBuilder()
 .setCategory(categoryString)
 .setAction(actionString)
 .setLabel(labelString)
 .build());

这应该让你有个先机。