EasyTracker(GA)每次推出的应用都会报告为新用户

时间:2013-04-13 07:49:50

标签: android google-analytics easytracker

我设置了一个帮助类,通过Google AnalyticsEasyTracker报告事件和屏幕,原因不明,每次重新启动应用时,它会将所有屏幕和事件报告为新用户。我检查了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。

2 个答案:

答案 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>