我不知道如何将新的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,只是将其删除以在此处显示。
答案 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());
这应该让你有个先机。