安卓谷歌分析 v3:"服务不可用"

19
在这里按照简单的指南进行操作: https://developers.google.com/analytics/devguides/collection/android/v3/ 当我运行我的应用程序时,我得到了以下结果:
10-28 18:01:17.973  27022-27069/com.foo.bar W/GAV3﹕ Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
10-28 18:01:17.973  27022-27069/com.foo.bar I/GAV3﹕ Thread[GAThread,5,main]: No campaign data found.
10-28 18:01:17.973      525-865/system_process W/ActivityManager﹕ Unable to start service Intent { act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService (has extras) } U=0: not found

从调试信息来看,代码正在尝试启动一个不存在的服务。看起来我需要在我的清单文件中定义该服务,但是指南中没有任何说明。

我已经将analytics.xml放置在我的res/values文件夹中,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<resources
    xmlns:tools="https://schemas.android.com/tools"
    tools:ignore="TypographyDashes">

  <string name="ga_trackingId">UA-XXX-1</string>
  <bool name="ga_autoActivityTracking">true</bool>
  <bool name="ga_reportUncaughtExceptions">true</bool>
  <integer name="ga_dispatchPeriod">1</integer>
  <bool name="ga_debug">true</bool>
</resources>

我完全被卡住了,因为这个指南如此简单。如果有任何区别(不应该有),我是用Android Studio / Gradle构建,并像这样添加依赖项:

compile files('libs/libGoogleAnalyticsServices.jar')

编辑:我有一个想法……这个设备不运行Google服务。 Google Analytics库是否依赖于安装Google服务APK?

是的,您必须在移动应用程序中包含GA SDK。您还必须将UA-XXX-1更改为您的GA UA ID。该属性ID必须属于移动应用程序属性。 - Alison S
这里有类似的问题。稍微不同的角度,因为我正在遵循这个指南:https://developers.google.com/analytics/solutions/testing-play-campaigns。我已经将jar添加到导出库中,但仍然收到I/GAV3(21698):Thread[GAThread,5,main]:Campaign found [GOOD!]:utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign,[然后BAD]: W/ActivityManager(376):无法启动服务Intent {act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService(具有extras)} - mm2001
可能相关:https://code.google.com/p/analytics-issues/issues/detail?id=294 - mm2001
@AlisonS 是的,我已经包含了库。是的,我只是为了公开消费而掩盖了我的ID。 - Jeffrey Blattman
4个回答

14
你现在可以忽略那个警告。 来自Google移动应用分析小组:
The SDK is simply attempting to connect to a global dispatch service, which is unavailable on your device.  The hits are still being generated and sent to GA normally.

GA开发者网站很快将提供更多信息。

小组链接:https://groups.google.com/forum/#!forum/ga-mobile-app-analytics


1

我也遇到了同样的问题,你可能忘记初始化跟踪器了。

GA3网站的“下一步”中,它指出:“在测量任何数据之前,您必须通过提供上下文和Google Analytics属性ID通过GoogleAnalytics单例初始化至少一个跟踪器:”

只需将此代码插入到主活动的onCreate方法中:

// Initialize a tracker using a Google Analytics property ID.
GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y")

你可能会认为他们会在主页面上提到这一点,但我猜他们只是希望你对高级设置感到好奇。


不要认为这是问题。它确实记录数据。我相信系统会根据“analytics.xml”文件获取跟踪器ID并进行初始化。 - Jeffrey Blattman

1

0

我认为你可以使用

GAServiceManager.getInstance().setLocalDispatchPeriod(10);

在这行之后,它似乎能够正常工作并发送事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接