我设置了一个帮助类,通过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();
}
更新
我已经尝试使用GoogleAnalytics类没有简单的跟踪器,但仍然无法正常工作。我猜有某种读取权限问题(但可以写吗?),该文件位于data/data/com.my.app/files/gaClientId
更新
我已经尝试了任何东西,我可以手动阅读gaClientId
文件,没有任何问题,无论是否有帮助类,报告都很累,每次启动应用程序时都会创建一个新的ClientID。
答案 0 :(得分:4)
猜猜是什么?存储位于data/data/com.my.app/files/gaClientId
的ClientID的文件,以及应用程序下载文件到此文件夹..每次启动我在该文件夹上运行的应用程序删除了它的内容。当分析被启动时,它找不到gaClientId文件,并创建了一个创建新用户的新文件
提示请勿在{{1}}
的根目录中存储任何内容答案 1 :(得分:1)
我正在使用简单的跟踪器,但我没有遇到这个问题。 我是这样做的: 在您的活动的onCreate()中放入:
gaInstance = GoogleAnalytics.getInstance(this);
tracker = gaInstance.getDefaultTracker()
gaInstance&跟踪器是全球领域。
然后在onStart()中你只需称它为:
tracker.sendView("/youractivity");
对于观点而言。 该事件也只是一个:
tracker.sendEvent("String",
"String",
"String",
"long");
最后要做的是更改analytics.xml文件中会话超时的默认值。默认为30秒,在下面的示例中为30分钟
<integer name="ga_sessionTimeout">1800</integer>