根据适用于Android的Google Analytics电子商务指南,我需要使用该Tracker.sendTransaction方法来跟踪购买情况.所需的三条信息是购买价格,总税金和运费(所有多头).但是,通过进行应用内购买提供的响应不会提供这些数据.
我错过了什么吗?这些信息实际上是否已归还?我在哪里可以找到他们设置它们?
谷歌分析版本3的谷歌文档对于EasyTracker普通Tracker类和普通类之间的差异非常混乱,我真的不确定我应该使用哪一个.在这个页面上,他们讨论了如何设置EasyTracker,使用analytics.xml文件来设置您的ID,然后在下一页上他们讨论设置常规跟踪器并将其传递给您的ID:
// Initialize a tracker using a Google Analytics property ID.
GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y")
Run Code Online (Sandbox Code Playgroud)
这两个跟踪器有什么区别?一个人有比另一个更多的功能吗?我认为,EasyTracker如果您只想要活动跟踪,则设置起来会更简单,但如果我想要使用Google Analytics中可用的所有功能,我是否仍然可以使用该功能EasyTracker,或者我是否需要切换到经常Tracker?
我有一个带有重用活动的应用程序(它用于不同的目的,所以只跟踪活动名称对我没有帮助,这就是为什么我想在仍然使用EasyTracker时手动定义屏幕名称.我的代码如下所示:
EasyTracker t = EasyTracker.getInstance(this);
t.set(Fields.SCREEN_NAME, screenName);
// MapBuilder map = MapBuilder.createAppView();
// map.set(Fields.SCREEN_NAME, screenName);
// t.send(map.build());
t.activityStart(this);
Run Code Online (Sandbox Code Playgroud)
我从https://developers.google.com/analytics/devguides/collection/android/v3/screens获取了这些信息
我不想在没有EasyTracker的情况下这样做,因为我没有找到任何信息,在easy tracker的方法activityStart()和activityStop()中究竟发生了什么,所以我不能用自定义跟踪器重现这种行为,我认为其中的信息是在activityStart()方法中收集除了屏幕名称也非常有用.那么有人在轻松跟踪器中定义自定义值的经验吗?是这样做的好方法还是有更好的解决方案?
我在每个活动中都使用这个:
@Override
public void onStart() {
    super.onStart();
    EasyTracker.getInstance().activityStart(this);
}
@Override
public void onStop() {
    super.onStop();
    EasyTracker.getInstance().activityStop(this);
}
Run Code Online (Sandbox Code Playgroud)
并通过这个文档
我发现:
使用EasyTracker 
要使用EasyTracker
    自动跟踪应用程序中所有未捕获的异常,请将此行添加到您的analytics.xml文件中:
<bool name="ga_reportUncaughtExceptions">true</bool>
Run Code Online (Sandbox Code Playgroud)
使用自动异常跟踪跟踪异常后,EasyTracker会将异常传递给Thread的默认异常处理程序.
使用自动异常跟踪时,请注意以下事项:
但是当我收到UncaughtException并且应用程序崩溃时,在Google Analytics描述中,它只显示:
An error occured while executing doInBackground()
Run Code Online (Sandbox Code Playgroud)
不是上面提到的堆栈跟踪.什么东西需要添加?
谢谢
我设置了一个帮助类Google Analytics,通过EasyTracker每次重新启动应用程序时的事件和屏幕报告事件和屏幕,它将所有屏幕和事件报告为新用户.我检查了gaClientId存储唯一ID 的文件.但每次重新启动应用程序时,与其他保持相同的应用程序相比,存储在此文件中的ID会发生变化.
这是我在我的帮助器类中使用的代码,请注意我也尝试过使用ApplicationContext上下文.我试过禁用即时调度(是的,我知道它不是很好的做法,立即报告)
private static String mLastView = "";
public static void sendView(String view,Context ctx) {
    // Don't report screen twice in a row
    if(view.equals(mLastView)) return;
    mLastView = view;
    EasyTracker.getInstance().setContext(ctx);
    EasyTracker.getTracker().sendView(view);
    EasyTracker.getInstance().dispatch();
}
public static void sendEvent(Context ctx,String category,String action,String label,long value){
    EasyTracker.getInstance().setContext(ctx);
    EasyTracker.getTracker().sendEvent(category, action, label, value);
    EasyTracker.getInstance().dispatch();
}
Run Code Online (Sandbox Code Playgroud)
更新: 
我尝试使用没有简单跟踪器的GoogleAnalytics类,但仍然无法正常工作.我猜有某种读取权限问题(但是可以写吗?),该文件位于data/data/com.my.app/files/gaClientId
更新: 
我已经尝试了任何东西,我可以gaClientId手动读取文件,没有任何问题,厌倦报告有和没有助手类,仍然创建一个新的ClientID每次启动的应用程序.
我在Android应用程序中使用EasyTracker(Google Analytics 2.5)并且无法使其运行.
这是logcat日志(用于GAV2标签)
Thread[main,5,main]: Need to call initialize() and be in fallback mode to start dispatch.
................
Thread[GAThread,5,main]: connecting to Analytics service
Thread[GAThread,5,main]: connect: bindService returned true for Intent { act=com.google.android.gms.analytics.service.START (has extras) }
Thread[GAThread,5,main]: No campaign data found.
Thread[GAThread,5,main]: putHit called
Thread[Failed Connect,5,main]: falling back to local store
Thread[GAThread,5,main]: Sending hit to store
...............
Thread[GAThread,5,main]: sent 1 of 1 hits
Run Code Online (Sandbox Code Playgroud)
Google Analytics网站显示该应用的零事件和零用户(数周内).
第一个logcat错误"需要调用初始化"不清楚,因为EasyTracker类中没有初始化方法,并且因为其他EasyTracker方法似乎没有受到第一个错误的阻碍.
第二个logcat错误"回到本地存储"似乎表明问题,但我不知道如何调试问题.ga_trackingId是正确的,我已经验证了id使用短划线(xml文件有工具:ignore ="TypographyDashes和Eclipse首选项设置为忽略TypographyDashes问题)
fwiw我注意到Google发布了该版本的V3版本(在本地版本中)我也尝试过使用该库.对于V3,我没有看到任何logcat条目,除了一个GAV3标记条目"Thread [GAThread,5,main]:没有找到广告系列数据".(此条目是预期的,因为我没有跟踪任何广告系列)
在这两种情况下(2.5和3),使用EasyTracker.getInstance(this).activityStart(this),代码相当简单; 在onStart,onStop中的activityStop,只调用tracker.send(V3)或tracker.sendEvent(V2.5).analytics.xml也很简单,所以我不知道错误在哪里.
有人有任何调试建议吗?