【发布时间】:2015-02-13 18:11:39
【问题描述】:
我想在基于 Android 服务的应用程序中实施 Google Analytics。该应用程序有一个主屏幕小部件,我想跟踪某些使用趋势。如大多数示例所示,我是否必须使用应用程序?我不能只使用一个静态变量来保存跟踪器并使用它将信息“发送”到谷歌分析吗?如果没有 reportActivityStart 和 reportActivityStop 调用,Analytics 服务是否无法工作?我已经尝试了我所描述的,我可以看到 GAV4 logcat 输出并且一切似乎都正常工作 - 根本没有错误(并且没有设置 DryMode)但我在 Google Analytics 网站上看不到任何信息。
这是处理日志记录的类的代码:
public class AnalyticsHelper {
private static final String PROPERTY_ID = "UA-xxxxxx-xx";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER // Tracker used by all the apps from a company. eg: roll-up tracking.
}
static HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
synchronized private static Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(WidgetHelper.context);
analytics.setDryRun(false);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker) : analytics.newTracker(PROPERTY_ID);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
public static void sendView(String screenName) {
Tracker t = getTracker(TrackerName.APP_TRACKER);
if (t != null) {
t.setScreenName(screenName);
t.send(new HitBuilders.AppViewBuilder().build());
}
}
public static void sendAction(String category, String action, String label, int value) {
Tracker t = getTracker(TrackerName.APP_TRACKER);
if (t != null) {
t.send(new HitBuilders.EventBuilder()
.setCategory(category)
.setAction(action)
.setLabel(label)
.setValue(value)
.build());
}
}
}
以下是从主屏幕服务调用类以记录操作或页面视图:
AnalyticsHelper.sendAction("Service", "Update", "", 0);
...
AnalyticsHelper.sendView("Settings");
【问题讨论】:
-
您可以发布您尝试向 GA 发送信息的代码吗?
-
我已经用代码更新了我的问题。与此同时,我注意到大约 24 小时后,我可以在 Google Analytics 网站上看到一些统计数据。数据出现需要那么长时间吗?如果是这样,那么实时功能呢?它总是显示 0 个活跃用户(请注意,我是唯一使用该应用程序的用户,所以我应该看到 1 而不是 0)。
-
如果您有新帐户,是的,大约需要 24 小时才能开始使用,而实时数据至少需要 1 分钟才能显示