1

我一直在尝试几种使用 Google Analytics 库 v2 发送事件的实现,但没有一个将数据发送到我的 Analytics 仪表板。

应该工作的最简单的实现是

EasyTracker.getTracker().sendEvent("Social", "Opened Share App", "Clicked", (long) 1);
EasyTracker.getInstance().dispatch();

活动和屏幕等其他内容也可以很好地跟踪。

我也尝试过使用:

mGaInstance = GoogleAnalytics.getInstance(this);
mGaTracker = mGaInstance.getTracker("UA-XXXXXX-X");

然后使用该跟踪器发送事件,但这也不发送数据。我还阅读了有关需要超过 24 小时才能注册的事件。这看起来真的很奇怪,因为分析中的其他所有内容基本上都是即时的,但这是真的吗?我没有找到任何确认。

在 analytics.xml 中打开调试后,logcat 中会显示以下内容

putHit called
Sending hit to store
PowerSaveMode terminated.
Thread[GAThread,5,main]: dispatch running...
User-Agent: GoogleAnalytics/2.0 (Linux; U; Android 4.1.1; nl-nl; HTC One X Build/JRO03C)
Host: ssl.google-analytics.com
GET /collect?ul=nl-nl&ev=1&ht=1370875183876&sr=720x1280&a=72697680&aid=com.package.android&ea=Opened+Share+App&cid=8e7dc0b4-d03c-4ccb-8bed-f549f16a1b1d&ec=Social&av=0.1.1&v=1&t=event&el=Clicked&an=My+App&tid=UA-XXXXXX-X&_u=.C&_v=ma1b5&cd=com.package.android.ActivityAbout&qt=39&z=103 HTTP/1.1

所以它似乎发送得很好,对吧?

4

3 回答 3

6

正如我已经评论过的,我们让 EasyTracker 处理数据发送问题。这不是解决方法,而是解决方法。

文档:EasyTracker 参数

我在 res/values 中创建了 analytics.xml 文件。我的 analytics.xml 文件是这样的:

<resources>
  <!--Replace placeholder ID with your tracking ID-->
  <string name="ga_trackingId">UA-********-*</string>
  <!--Enable automatic activity tracking-->
  <bool name="ga_autoActivityTracking">true</bool>

  <!--Enable automatic exception tracking-->
  <bool name="ga_reportUncaughtExceptions">true</bool>

  <!--  dispatch period in seconds.
    Default value is 30 minutes, should set about 5 minutes in release mode.
  <bool name="ga_debug">true</bool>
  <integer name="ga_dispatchPeriod">3</integer>
   -->

  <integer name="ga_dispatchPeriod">300</integer>
</resources>

ga_dispatchPeriod 值以秒为单位。我们使用 3 秒进行调试,300 秒用于发布模式。ga_dispatchPeriod 的默认值为 30 分钟。

于 2013-06-10T17:35:11.763 回答
3

好的,所以答案很愚蠢。我在 23:45 左右回到修复这个问题,但仍在努力寻找答案。然后时钟转到 00:07,我神清气爽... Tadaa,前一天弹出了 73 个事件...

分析中的事件

所以是的,如果其他人有同样的问题。我问题中的第一段代码工作得很好。

EasyTracker.getTracker().sendEvent("Social", "Opened Share App", "Clicked", (long) 1);
EasyTracker.getInstance().dispatch();

调用 dispatch 方法并不是真正需要的,它也无助于更早地显示任何内容。只需使用默认值,或者您可以在此处了解更多信息。

于 2013-06-10T22:23:44.463 回答
0

使用 Google Analytics 社交互动 API

Tracker tracker = EasyTracker.getInstance(getActivity()
                    .getApplicationContext());

tracker.send(MapBuilder.createSocial("Twitter", "Tweet",
                    "https://developers.google.com/analytics").build());

Google Analtyics 社交互动 - Android SDK

于 2014-01-22T08:25:01.950 回答